Dobby is !free/Intern 🐣

인턴일지🥕 MIMIC-III .1 Data Generation 을 해보자

컴공생 C 2021. 4. 9. 19:44
반응형

따라한 코드는 github.com/YerevaNN/mimic3-benchmarks

 

YerevaNN/mimic3-benchmarks

Python suite to construct benchmark machine learning datasets from the MIMIC-III clinical database. - YerevaNN/mimic3-benchmarks

github.com

1. git clone

2. MIMIC-III CSV에서 각 SUBJECT_ID 별로 폴더 생성해 파일로 저장.

  •  ICU stay information: data/{SUBJECT_ID}/stays.csv
  • diagnoses : data/{SUBJECT_ID}/diagnoses.csv
  • events : data/{SUBJECT_ID}/events.csv 
더보기
OverflowError: Overflow in int64 addition

 

mimic3csv.py 파일의 stays['AGE'] 부분을 아래와 같이 수정

def add_age_to_icustays(stays):
	#기존 stays['AGE'] = (stays.INTIME - stays.DOB) - 대신 subtract로 수정
    #60. 으로 되어있어서 60.0으로 수정
    stays['AGE'] = (stays.INTIME.subtract(stays.DOB)).apply(lambda s: s / np.timedelta64(1, 's')) / 60.0/60/24/365
    stays.loc[stays.AGE < 0, 'AGE'] = 90
    return stays
  • 실행결과 (약 1시간 정도 소요된다고 써있다)

딱 한시간 정도가 걸렸고 data/root 하위폴더가 생성되었다.

3. ICU stay ID 가 없는 에러를 수정. 빠진 정보가 있는 이벤트는 삭제.

  • 수정 에러 목록

대략 80% 정도의 이벤트만 결과적으로 남게 됨. mimic3benchmark/scripts/more_on_validating_events.md).

  • 실행결과
  •  

4. 각 실험대상의 데이터를 각각의 에피소드로 나눔.

  • 각 이벤트의 time series는 {SUBJECT_ID}/episode{#}_timeseries.csv (#: 에피소드의 개수 ) 에 저장
  • episode-level information (patient age, gender, ethnicity, height, weight) 과 outcomes (mortality, length of stay, diagnoses) 은{SUBJECT_ID}/episode{#}.csv 에 저장. 
  • event ITEMIDs 을 clinical variables 과 연결해주는 파일, clinical variables (for detecting outliers, etc.)의 유효성을 정의하는 파일 총 2개가 필요. Outlier detection is disabled in the current version.

참고자료

github.com/YerevaNN/mimic3-benchmarks/issues/102

 

Datetime issues with preprocessing · Issue #102 · YerevaNN/mimic3-benchmarks

If you do a fresh download of MIMIC3 and then clone this repo and then run the very first script: python -m mimic3benchmark.scripts.extract_subjects ../../physionet.org/files/mimiciii/1.4/ data/roo...

github.com

 

반응형