์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- r
- SQL
- ML
- kt aivle school
- KT AIVLE
- ์์ด๋ธ๋ฌ
- ํ๋ก๊ทธ๋๋จธ์ค
- ETRI
- ํ๋ก
- ๋น ๋ถ๊ธฐ
- python
- ggplot2
- ๋ฅ๋ฌ๋
- Eda
- Ai
- matplot
- ๋ค๋ณ๋๋ถ์
- dx
- SQLD
- httr
- ๊ธฐ๊ณํ์ต
- ์ง๋ํ์ต
- ์์ด๋ธ์ค์ฟจ
- ๋น ๋ฐ์ดํฐ๋ถ์๊ธฐ์ฌ
- ์ํธ๋ฆฌ ์ธํด
- ๋จธ์ ๋ฌ๋
- arima
- ๊ฐ๋๋ค์
- ์๊ณ์ด
- ํ๊ณ์ธํด
- ์นํฌ๋กค๋ง
- KT ์์ด๋ธ์ค์ฟจ
- ํ๊ตญ์ ์ํต์ ์ฐ๊ตฌ์ ์ธํด
- ์๊ฐํ
- ํ๊ตญ์ ์ํต์ ์ฐ๊ตฌ์
- ์ํ
- kaggle
- ์์ ๋คํธ์ํฌ๋ถ์
- cnn
- hadoop
- Today
- Total
์ํ์ง
[ML] MIMIC-II ๋ฐ์ดํฐ ๊ธฐ๋ฐ ํจํ์ฆ ํ์ ๋ถ๋ฅ ๋ณธ๋ฌธ
๐ฉ๐ป๐ป ๋ฐ์ดํฐ ์๊ฐ
MIMIC-II ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋?
- 2001๋ ~2008๋ ์ฌ์ด์ ์คํ์์ค(ICU)์์ ์์ง๋ ํ์ ์์ฒด ์ ํธ ๋ฐ์ดํฐ
- ํ์์ฐจํธ๋ฐ์ดํฐ(chartevents) ํ์ผ์๋ ํ์์ ๋ํ ๋ชจ๋ ์ฐจํธํ ๋ฐ์ดํฐ๋ฅผ ํฌํจ
- ์ ๋ฐ์ดํฐ์ ์๋ Primary Key๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ค๋ฅธ ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ์ ๊ทผ ํ ์ ์์
- ์์ฒด ์ ํธ ๋ฐ์ดํฐ์๋ Heart Rate, Respiratory Rate, Blood Pressure, Boby Temperature ๋ฑ์ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์์
- ๊ธฐ์กด ์ฐ๊ตฌ ์๋ฃ์์๋ ์ ํ์ ์ฐจํธ ๋ฐ์ดํฐ๋ฅผ ์ค์ ์ ์ผ๋ก ์ฌ์ฉํ๋ฉฐ ํ๋ ฅ ์งํ ์ฝ๋๋ฅผ ์ถ์ถ ํ์ผ๋ฏ๋ก, ๋ถ์๊ณผ ๋ฅ๋ฌ๋ ์์ธก์ ์ค์ํ ๋ฐ์ดํฐ๋ก ํ๋จํจ
๐จ๐ปโ๏ธ ํจํ์ฆ ๋ถ๋ฅ๋ฅผ ์ํ Feature ์ ์
๊ทธ๋ฆผ1. ํจํ์ฆ ์ง๋จ์ ํ์ํ ์์ฒด์ ํธ ๋ฐ์ดํฐ
- ํจํ์ฆ์ ํน์ด์ ์ธ ์ง๋จ๋ฒ์ด ์์ง ์์
- ํต์์ ์ผ๋ก ํจํ์ฆ์ ์์ธ์ด ๋๋ ์์๋ฅผ feature๋ก ์ ์
๐ ์ ์ฒ๋ฆฌ ๊ณผ์
๊ทธ๋ฆผ2. MIMIC-II ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๊ณ๋
- ๐ subject_id(Primary Key) ๊ธฐ์ค์ผ๋ก ๋ชจ๋ ๋ฐ์ดํฐ ๋ฒ ์ด์ค๊ฐ ์ฐ๊ฒฐ๋์ด ์์
๊ทธ๋ฆผ3. SUBJECT_ID ๊ธฐ์ค์ผ๋ก ์กฐ์ธํ ์ ์๋ ๋ฐ์ดํฐ ํ ์ด๋ธ
๊ทธ๋ฆผ4. ํ์ํ ๋ฐ์ดํฐ๋ง ์ถ์ถํ CHARTEVENTS
- chartevents ๋ฐ์ดํฐ ๋ฒ ์ด์ค์์ ํจํ์ฆ ํ์ ๋ถ๋ฅ์ ํ์ํ feature๋ง ์ถ์ถํจ
- itemid๋ฅผ ๊ธฐ์ค์ผ๋ก ์ฐพ๊ณ ์ ํ๋ value ๊ฐ์ ์ป์ ์ ์์
- itemid์์ ํ๋์ ์ฆ์์ ๋ค์ํ ์ฝ๋๊ฐ ์กด์ฌ
- ๋์ผํ ์ง๋ณ์ N๊ฐ์ itemid๊ฐ ์์ผ๋ฉด ๋ฐ์ดํฐ ์๊ฐ ๊ฐ์ฅ ๋ง์ ์ฝ๋๋ฅผ ์ฌ์ฉ(๋๋ถ๋ถ ํ ์ฝ๋์ ๋ฐ์ดํฐ๊ฐ ๋ชฐ๋ ค์์)
- ๋๋ฌธ์ ํ์์ ์ง๋ณ์ฐจํธ๋ฅผ ์๊ฐ์์ผ๋ก ์ ๋ ฌํ๊ธฐ ์ํด ๋ฐ์ดํฐ ์๊ฐ ๋ง์ 1๊ฐ์ ์ฝ๋๋ฅผ ์ฌ์ฉํจ.
๊ทธ๋ฆผ5. ICD9 ํ ์ด๋ธ์ DESCRIPTION์ ๊ธฐ๋ฐ์ผ๋ก ํจํ์ฆ ์ ๋ฌด ํด๋์ค ์์ฑ
- DESCRIPTION์ ์ ๋ฌธ์๊ฐ ํ์๋ฅผ ์ง๋จํ ๋ฐ์ดํฐ
- ์ํ์ฉ์ด๋ก ๋ถ๋ฅ๋๋ ํจํ์ฆ ‘SEPTICEMIA’ ๋จ์ด ํฌํจ์ฌ๋ถ๋ก ํด๋์ค ์์ฑ
icd9$Class=ifelse(str_detect(icd9$description,'SEPTICEMIA')==TRUE, 1, 0)
๊ทธ๋ฆผ6. ์ ์์๊ฐ์ ๊ธฐ์ค์ผ๋ก ํ์ ์ ๋ณด๋ฅผ ์ ๋ ฌํ ํ ์ด๋ธ
- ์ ์ ์๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๊ธฐ ์ํด ICD9์ ADMISSION ํ ์ด๋ธ์ ๋ ๊ฐ์ ํค๋ฅผ ๊ธฐ์ค์ผ๋ก ์กฐ์ธ
data_1 = merge(icd9, admissions, by=c('subject_id', 'hadm_id'))
data_2 = data_1 %>% select('subject_id', 'hadm_id', 'code', 'Class', 'admit_dt')
time_1 = data_2 %>% select('subject_id', 'admit_dt')
๊ทธ๋ฆผ7. ์ต์ข ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์ต์ข ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํ์๋ณ ์ง๋ฃ ์์๋๋ก ์ ๋ ฌ
- ํจํ์ฆ ์ง๋จ์ ํ์ํ ์ต์ข ์์ฒด์ ํธ ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ฅผ ๋ง๋ฆ
- ๊ฐ feature๋ฅผ ์ ์ ์์น ๋ฒ์๋ก ๋ง๋ค๊ธฐ ์ํด ์ด์์น ์ ๊ฑฐ
๐ ๋ชจ๋ธ ๊ตฌ์ถ
๊ทธ๋ฆผ8. ์ต์ข ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ฑ๋ณ์ ๊ธฐ์ค์ผ๋ก 2๊ฐ ํ ์ด๋ธ๋ก ๋ถ๋ฆฌ
ML
๊ทธ๋ฆผ9. ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ(NN, DT) ์ ํ๋ ๋น๊ต
- Train๊ณผ Test set์ 7:3 ๋น์จ๋ก ๋๋๊ณ NN ๋ชจ๋ธ๊ณผ DT ๋ชจ๋ธ์ ์ ์ฉ
- ๋จ์ฑ โก๏ธ accuracy 0.7284365
- ์ฌ์ฑ โก๏ธ accuracy 0.7553052
- ๋ฐ๋ผ์ ํ์๋ณ ์ง๋ฃ ์์๋๋ก ์ ๋ ฌ๋ ์์ฒด ์ ํธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํ์ตํ๊ณ , ํจํ์ฆ์ ํ์ง ๋ฐ์ Class๋ก ๋ถ๋ฅํ ๊ฒฐ๊ณผ ๋ ํ ์ด๋ธ ๋ชจ๋ 70% ์ด์์ผ๋ก ๊ด์ฐฎ์ ์ฑ๋ฅ์ ๋ณด์ฌ์ฃผ์์.
result_F$Class <- as.factor(result_F$Class)
result_F$hospital_expire_flg <- as.factor(result_F$hospital_expire_flg)
set.seed(1234)
model_F <- result_F[1:nrow(result_F), ]
trainData_F <- model_F[1:(nrow(model_F)*0.7),]
testData_F <- model_F[((nrow(model_F)*0.7)+1):nrow(model_F),]
nrow(trainData_F)
nrow(testData_F)
table(trainData_F$Class)
# NN model
nn.restult_F <- nnet(Class~., data=trainData_F, size=2, rang=0.1, decay=5e-4,maxit=200)
# Decision Tree
dt.restult_F <- rpart(Class~., data=trainData_F)
DL
๊ทธ๋ฆผ10-1. ๋ฅ๋ฌ๋ DNN ๋ชจ๋ธ ์ ํ๋
๊ทธ๋ฆผ10-2. ๋ฅ๋ฌ๋ DNN ๋ชจ๋ธ ์ ํ๋
- ML ๋ชจ๋ธ๊ณผ ๋์ผํ๊ฒ Train๊ณผ Test set์ 7:3 ๋น์จ๋ก ๋๋๊ณ , DNN ๋ฅ๋ฌ๋ ๋ชจ๋ธ ์ ์ฉ
- ์ฌ์ฑepochs = 100, batch_size = 5 โก๏ธ accuracy 0.7335
- ์ฌ์ฑ epochs = 200, batch_size = 3 โก๏ธ accuracy 0.7327
- ๋จ์ฑ epochs = 200, batch_size = 3 โก๏ธ accuracy 0.6944
model %>% fit(
dnn_train_x,
dnn_train_y,
epochs = 100,
batch_size = 5,
validation_split = 0.2)
model %>% fit(
dnn_train_x,
dnn_train_y,
epochs = 200,
batch_size = 3,
validation_split = 0.2)
๐ ๊ฒฐ๋ก
ML ๋ชจ๋ธ
- ๋จ์ฑ โก๏ธ accuracy 0.7284365
- ์ฌ์ฑ โก๏ธ accuracy 0.7553052
DL ๋ชจ๋ธ
- ์ฌ์ฑ epochs = 100, batch_size = 5 โก๏ธ accuracy 0.7335
- ์ฌ์ฑ epochs = 200, batch_size = 3 โก๏ธ accuracy 0.7327
- ๋จ์ฑ epochs = 200, batch_size = 5 โก๏ธ accuracy 0.6944
- ML ๋ชจ๋ธ์ ์ฑ๋ฅ์ด DL ๋ชจ๋ธ ์ฑ๋ฅ๋ณด๋ค ๋์
- DNN ๋ชจ๋ธ ํน์ฑ์ feature์ ๊ฐ์๊ฐ ๋ง์ ์๋ก hidden layer์ ์ธต์ด ๊น์ด์ ธ ์ ํ๋๊ฐ ๋์์ง๋ ํน์ฑ์ ๊ณ ๋ คํด ์ถํ feature ๊ฐ์๋ฅผ ๋ค์ํ๊ฒ ์ถ์ถํ๋ค๋ฉด ์ ํ๋ ์์น์ด ๋์์ง๊ฑฐ๋ผ ์์๋จ.
CODE
https://www.notion.so/dayeong1021/code-976f47c41c42431bad95f7ddffd82646
'AI' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ ธ๋ ฅํ ์๋ก ์ด์ด ์ข์์ง๋ค (0) | 2022.10.21 |
---|---|
[python] XGBosst warning ํด๊ฒฐ๋ฐฉ๋ฒ, jupyter GPU ์ก๊ธฐ (0) | 2022.09.25 |
[ML] MIMIC -III ์คํ์์ค ๋น ๋ฐ์ดํฐ DEMO (0) | 2022.09.17 |
[ML] A Motion Sensor Data - User Activity ๋ง์ถ๊ธฐ (1) | 2022.05.17 |
[DL] Reinforcement Learning (Q-learning, Q-network..) (0) | 2021.11.12 |