현재 사용하려는 데이터셋은 크게 세 가지 데이터로 이루어져 있다
데이터 내 결측치는 7(응답거부), 8(문항 비해당), 9(모름) 총 3가지로 구성되어 있으며 이중 7과 9는 중앙값으로 대체하였으며 8은 0으로 대체하여 문항에 대해 값이 없는 것으로 인식할 수 있게끔 처리했다.
df.describe()로 데이터의 최소값과 최대값을 확인했을 때에 주중 평균 수면시간, 주말 평균 수면시간의 최대값과 최소값에 상식적으로 판단했을 때에 이상치로 간주될만한 데이터가 있어 IQR을 활용하여 이상치를 중앙값으로 대체했다.
명목형, 연속형, 순서형 데이터는 각자 범위가 다 다르지만 트리 기반 모델이기 때문에 스케일링은 불필요하다.
트리 기반 모델은 특정 변수의 절대적인 크기보다 데이터 분할 시(노드 분할 시) 정보 획득량을 최대화하는 상대적인 조건에 따라서 의사 결정을 내리기 때문에 변수들의 스케일이 서로 다르더라도 모델의 성능에는 큰 영향을 미치지 않는다.
또한 분할 과정에서 범주 간의 순서 정보를 활용할 수 있기 때문에 별도의 one-hot encoding도 불필요하다.
one-hot encoding이 트리 기반 모델의 성능을 저하시키는 이유
트리 기반 모델에서의 특성의 스케일링이나 일반화가 필요하지 않은 이유는?
가구가중치?
표본설계의 표본추출과정을 고려한 가구추출률, 조사 적격 가구율, 주택 유형별
가구비율을 반영한 가중치
개인가중치?
가구가중치에 개인응답률을 반영한 가중치
- 이 두가지 값은 예측 모델 생성시 수집하기 어려우며 지역사회건강조사에서만 필요한 데이터이기 때문에 변수에서 제거
2024년도 지역사회건강조사 데이터 기반 ML 모델링
스트레스, 우울감이 인지장애 컬럼과 유의미한 상관관계가 있어보여서 진행했으나 트리 기반 모델의 성능이 높지 않아,
전체 컬럼을 활용하여 학습 및 평가 진행해봄
2차 결과
{
"classifier": "LightGBM",
"n_estimators": 148,
"learning_rate": 0.03970016549453845,
"max_depth": 19,
"num_leaves": 89,
"subsample": 0.711017812844031,
"colsample_bytree": 0.6364124383087355,
"threshold": 0.35527371406289066
}
| 지표 | 값 |
|---|---|
| Accuracy | 0.7575 |
| Precision | 0.5611 |
| Recall | 0.6061 |
| F1 Score | 0.5827 |
| ROC AUC | 0.7804 |
| 실제 0 (정상) | 실제 1 (인지장애 경험) | |
|---|---|---|
| 예측 0 | 1101 | 248 |
| 예측 1 | 206 | 317 |
| 클래스 | Precision | Recall | F1-Score | Support |
|---|---|---|---|---|
| 0 (정상) | 0.8424 | 0.8162 | 0.8291 | 1349 |
| 1 (인지장애) | 0.5611 | 0.6061 | 0.5827 | 523 |
| Macro Avg | 0.7017 | 0.7111 | 0.7059 | 1872 |
| Weighted Avg | 0.7638 | 0.7575 | 0.7602 | 1872 |
{
"classifier": "RandomForest",
"n_estimators": 113,
"max_depth": 14,
"min_samples_split": 9,
"max_features": "sqrt",
"criterion": "log_loss",
"threshold": 0.37463927217206133
}
| 지표 | 값 |
|---|---|
| Accuracy | 0.7286 |
| Precision | 0.5129 |
| Recall | 0.6088 |
| F1 Score | 0.5567 |
| ROC AUC | 0.7626 |
| 실제 0 (정상) | 실제 1 (인지장애 경험) | |
|---|---|---|
| 예측 0 | 1045 | 303 |
| 예측 1 | 205 | 319 |
| 클래스 | Precision | Recall | F1-Score | Support |
|---|---|---|---|---|
| 0 (정상) | 0.836 | 0.7752 | 0.8045 | 1348 |
| 1 (인지장애) | 0.5129 | 0.6088 | 0.5567 | 524 |
| Macro Avg | 0.6744 | 0.6920 | 0.6806 | 1872 |
| Weighted Avg | 0.7455 | 0.7286 | 0.7351 | 1872 |
성능이 크게 향상되지 않았기 때문에 추가적인 데이터 전처리 진행
