[Kaggle] Playground Series Season 3, Episode 2 리뷰
Kaggle의 PSS3E2에 참여했다. 이런거 있는줄 어제앎...😅
매주 화요일부터 일주일마다 하는 것 같으니 실력이 늘 때까지 꾸준히 참여하고 싶다.
Public, Private 리더보드를 비교했을 때 내 score는 Private 리더보드에서 0.01포인트 정도 더 올랐지만 오히려 등수는 더 떨어짐!
더더욱 신기한 점은 private과 public 리더보드 간 상위 랭커들 등수가 엄청 차이난다는 점
개선할 점
1. 데이터에 대한 이해 부족
데이터셋에 대한 이해가 부족했던 것 같다. stroke가 뭔지도 몰랐고,,,😑
대충 의료 분야 관련 데이터셋이고, target이 stroke feature인 이진분류, 평가는 ROC값이라는 정도의 생각밖에 없었다.
시작하기 전 Competition의 Data 항목을 잘 읽어보기!
몰랐는데 데이터셋에 대한 세부적인 설명 페이지로 들어가는 링크가 있었다.
stroke는 뇌졸증, 즉 이 competiton은 성별, 연령, 다양한 질병 및 흡연 상태와 같은 입력 매개변수를 기반으로 환자가 뇌졸중에 걸릴 가능성이 있는지 예측하는 분류 competition이었던 것이었던 것이었다!!
2. 데이터 전처리 측면에서의 개선할 점
2.1 EDA 진행시 target값인 stroke feature의 불균형을 확인했었다.
>> stratifiedKFold를 이용한 cross-validation 수행하기
cf. stratifiedKFold
target의 속성값을 동일하게 가져감으로서 KFold 수행시의 데이터 몰림을 방지한 방식
2.1 numerical, categorical, target feature 구분하여 분석하기
numerical feature의 경우
- 나이가 들수록 뇌졸중에 걸릴 확률이 높아집니다. 이는 40세 이후에 더 두드러지며, 더 낮은 값을 잘라서 전처리 단계로 사용할 수 있습니다.
- 뇌졸중과 포도당 수준 사이에는 명확한 관계가 있습니다.
- BMI와 뇌졸중 사이의 관계는 BMI > 40일 때 유지되지 않습니다. 이는 모순되며 해당 저장소에 많은 샘플이 없기 때문일 수 있습니다. 과체중(비만 전단계) 및 높은 BMI는 뇌졸중에 걸릴 가능성이 더 높습니다.
- train 데이터 세트는 인구가 40~50명인 테스트보다 20세 미만의 사람이 더 많습니다.
categorical feature의 경우
- 뇌졸중은 사람들이 고혈압, 심장 마비가 있거나 흡연 기록이 있을 때 발생할 가능성이 높습니다.
- trainset과 testset은 동일합니다.
- 우리는 somking==unknown을 누락된 값으로 위협하고 다른 전가 전략을 시도할 수 있습니다. 이 직관은 그 범주가 뇌졸중의 확률이 낮고 과거에 담배를 피운 사람들이 있을 수 있기 때문입니다.
2.2 feature correlation 분석
기차와 SPD 사이의 상관 행렬은 다릅니다. 이것은 이전 플롯에서 분포 차이가 분명하다는 점에서 결코 놀라운 일이 아닙니다. 연속-연속 쌍에 대한 강한 상관 관계가 없으며 선형 모델에 대한 기능을 삭제할 필요가 없습니다.
2.3 smoking_status의 'Unknown' 카테고리의 처리
EDA시 Unknown 카테고리의 뇌졸증 확률이 가장 낮았으므로 'Unknown'을 '흡연하지 않음'으로 변경하여 처리
2.4 RecursiveFeatureElimanation을 이용해 feature selection 수행
RecursiveFeatureElimanation(RFE)
- Feature selection의 가장 단순한 방법
- 모든 features로부터 feature를 하나하나 제거하면서 원하는 개수의 feature만 남을 때까지 반복
- feature importance를 구해 상위 n개의 feature만을 최종적으로 선택
RecursiveFeatureElimanation with CrossValidation (RFECV)
- RFE 진행시 사용자는 원하는 feature 개수를 직접 정의해야 함
- 그러한 단점을 극복하기 위해 RFECV가 등장.
- 모든 features로부터 feature를 하나하나 제거하면서 각 개수의 feature마다 cross validation을 수행해 모델 성능 도출
- 도출한 각 feature 개수별 성능 평균중 가장 높은 성능을 갖는 feature 개수를 최종적으로 선택
3. 모델 선택 측면에서의 개선할 점: XGBoost?
이걸 몰라? 절대적으로 공부부족
참고한 노트북
https://www.kaggle.com/code/jcaliz/ps-s03e02-eda-baseline
https://www.kaggle.com/code/kirkdco/xgboost-plays03e02-first-place
https://www.kaggle.com/competitions/playground-series-s3e2/discussion/378780
'Kaggle' 카테고리의 다른 글
[ICR] Probability Calibration Techniques (0) | 2023.05.21 |
---|---|
kaggle competition notebook 만들기 (0) | 2022.08.12 |
캐글 구글 코랩에서 사용하기 (0) | 2022.07.11 |
[Kaggle] 캐글 자동완성 기능 사용 방법 (0) | 2022.05.22 |
[캐글 번역 | Intro to Machine Learning] 4. Model Validation (0) | 2022.05.18 |