- nan을 모두 knn으로 채우기보다 시각화로 확인한 것들을 proportionally하게 채우기 + 나머지는 knn 사용이 더 높은 성능을 보임. (knn으로 채웠을 때 lightgbm 최고 성능: 0.4892 -> proportionally + knn으로 채웠을 때 lightgbm 최고 성능: 0.5067)

- categorical variable을 str으로 바꾼 다음에 세분화하여 stepwise method로 feature selection하는 것보다 그냥 categorical을 하나의 변수로 보는 것이 더 좋은 성능이 나옴. (0.5019 -> 0.5068)
- 총 세 가지 방법으로 데이터셋을 만듦
1. nan까지 처리한 데이터에 standardization 적용한 데이터셋.
- zero-centering & divide it w/ standard deviation
2. PCA 적용한 데이터셋.
- 본 데이터셋은 변수의 개수가 20개로, 상당히 많고 변수 간의 상관관계를 파악하기 까다로웠음. 따라서 PCA를 적용한 데이터셋을 이용했음. 변수의 개수를 늘릴수록 성능은 개선됨. (12개: 0.4914 -> 18개: 0.5047) 그러나, pca는 변수의 개수는 많지만 실질적으로 주요한 요소는 소수일 때 유용함. 즉, 소수의 변수가 대부분의 분산을 차지할 때 유리함. 그러나 본 데이터셋에서 component의 개수에 따른 explained variance를 확인했을 때 1st principal component의 explained variance가 약 0.22 정도로 낮았다. 이 데이터의 경우엔 mean을 빼서 zero-centering만 해줬을 때 정상적으로 작동함. standard deviation으로 나누면 성능이 0.0으로 저하됨.
3. stepwise feature selection으로 특징 추출한 데이터셋.
- forward selection과 backward elimination을 합친 feature selection method. feature의 계수인 p-value를 이용해 어떤 feature를 고를지 결정. stepwise method는 가장 좋은 성능을 내지만 매 스텝마다 선택되는 feature가 달라짐.
- 이후 두 가지 방법으로 모델을 튜닝함. (Bayesian Optimization)
1. oversampling
2. assign weights
- 테스트 코드 점검하여 제대로 된 성능이 나오도록 수정.
'머신러닝' 카테고리의 다른 글
| [선형 대수] 기저 (basis), 랭크 (rank) (0) | 2025.01.18 |
|---|---|
| [데이터 사이언스] 개선 (0) | 2025.01.10 |
| [패턴 인식 코드 개선] Bayesian Optimization (0) | 2025.01.06 |
| [머신 러닝] PCA (Principal Component Analysis) (0) | 2024.12.26 |
| [머신 러닝] SVM (Support Vector Machine) (0) | 2024.12.24 |