본문 바로가기

python·Data Science

[캐글 메달리스트가 알려주는 캐글 노하우] Instant gratification

728x90

Instant gratification 대회는 2019년 6월 캐글에서 자체적으로 주체.

Code Competition 방식을 적용하기 앞서 대회가 원활하게 진행되는지 테스트하고, 참가자들의 피드백을 받기 위해 만들어진 대회

이 대회의 평가 지표는 AUC(Area Under the Curve). ROC 곡선의 밑 면적을 의미.

 

EDA(Exploratory Data Analysis)

다양한 각도에서 데이터를 관찰하고 이해하는 과정

데이터가 어떤 형식으로 이루어져있는지 확인

정답 값의 비율을 확인. 정답의 불균형 여부 확인해 추후 이 점을 고려해 모델 구성

정답 값에 누출이 없는지 확인. 

NULL 값을 확인. NULL 값을 무조건 채우기 보다는 NULL이 왜 생성됐고, 어떤 의미인지 먼저 파악하는 것이 좋음

범주형 변수(Categorical Variable)와 수치형 변수(umerical Variable)를 분리해서 살펴봐야 함.

 

스태킹(Stacking)

여러 알고리즘이 예측한 결과를 입력 받아 재학습하여 결과를 도출하는 방법

학습에 필요한 데이터를 구성하고 그 데이터를 모델에 넣어 예측 값을 얻는다.

학습과 테스트로 예측한 값을 2단계 모델의 입력으로 사용한다. 

팀으로 대회를 진행할 때 OOF(Out of Fold) 결과를 모아달라고 하기도 하는데... 학습, 테스트 예측 결과를 전달해 달하는 뜻이다. OFF는 사이킷런의 Kfold를 사용할 때 K값에 따라 여러 폴드가 만들어지는데 이를 예측한 결과를 말한다.

 

<스태킹 성능을 올리는 방법>

- 모델이 들어가는 피처를 다르게 하여 다양성을 추가

- 같은 모델이라도 파라미타를 다르게 함

- 다양한 모델을 추가

- 2단계 모델의 입력에는 1단계 모델의 예측 값뿐만 아니라 원본 피처의 일부를 추가할 수 있음

- 2단계 모델을 다양하게 시도해보고 여러 모델이 결과를 다시 스태킹하거나 평균 값을 취할 수 있음

 

솔루션은 대회에 참가한 뒤에 보는 것이 참가하지 않고 보는 것보다 훨씬 도움이 됨

대회에 참가할 때는 단순히 점수를 올리는데 급급하기 보다는 문제를 푼다는 마음가짐으로 접근하는 것이 좋음

반응형