본문 바로가기

Kaggle

[Kaggle] Playground Series Season 3, Episode 2 리뷰

[Kaggle] Playground Series Season 3, Episode 2 리뷰

 

Kaggle의 PSS3E2에 참여했다. 이런거 있는줄 어제앎...😅

매주 화요일부터 일주일마다 하는 것 같으니 실력이 늘 때까지 꾸준히 참여하고 싶다.

 

Public, Private 리더보드를 비교했을 때 내 score는 Private 리더보드에서 0.01포인트 정도 더 올랐지만 오히려 등수는 더 떨어짐! 

 

더더욱 신기한 점은 private과 public 리더보드 간 상위 랭커들 등수가 엄청 차이난다는 점 

kaggle [Kaggle] Playground Series Season 3, Episode 2의 private 리더보드
private leaderboard의 등수.

 

개선할 점

1. 데이터에 대한 이해 부족

kaggle [Kaggle] Playground Series Season 3, Episode 2의 traindataset 일부
train.csv

데이터셋에 대한 이해가 부족했던 것 같다. stroke가 뭔지도 몰랐고,,,😑

대충 의료 분야 관련 데이터셋이고, target이 stroke feature인 이진분류, 평가는 ROC값이라는 정도의 생각밖에 없었다. 

 

시작하기 전 Competition의 Data 항목을 잘 읽어보기!

몰랐는데 데이터셋에 대한 세부적인 설명 페이지로 들어가는 링크가 있었다.

 

 

Stroke Prediction Dataset

11 clinical features for predicting stroke events

www.kaggle.com

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

 

PS S03E02: EDA + Baseline ⭐️⭐️⭐️

Explore and run machine learning code with Kaggle Notebooks | Using data from multiple data sources

www.kaggle.com

https://www.kaggle.com/code/kirkdco/xgboost-plays03e02-first-place

 

XGBoost PlayS03E02 First Place

Explore and run machine learning code with Kaggle Notebooks | Using data from multiple data sources

www.kaggle.com

https://www.kaggle.com/competitions/playground-series-s3e2/discussion/378780

 

Playground Series Season 3, Episode 2 | Kaggle

 

www.kaggle.com