캐글(Kaggle) 대회 리뷰 : Porto Seguro’s Safe Driver Prediction
- 이 대회는 2년전에 진행한 대회로 총 5,163 개의 Team이 참가한 매우 큰 대회였다. 지금도 5,000명 이상 참가하는 대회를 보기는 쉽지 않다. 당시의 Leaderboard를 보면 Private Leader board에서 3위한 사람이 Public Leader board 순위 대비 1070등이 상승했고 4등은 1100등이 상승했다. 이 말은 곧 Train데이터와 Test 데이터 간의 분포가 달라 Shaking이 많이 일어 난 것이라 볼수 있겠다. 이것만 보아도 당시에 꽤나 말이 많았을 것으로 생각된다.
대회 설명
"Predict if a driver will file an insurance claim next year."
운전자가 내년에 보험 청구를 할 것인지를 예측하는 대회이다. 데이터는 Porto Seguro 라는 브라질에서 가장 큰 자동차와 주택 보험 회사에서 제공한다.
총 58개의 컬럼과 1개의 Target 컬럼으로 이루워져있고 Train/ Test 데이터 각각 59만 / 89만 Row 이다.
평가 함수 리뷰
- 평가함수는 Normalized Gini Coefficient를 사용한다.
- 지니 계수를 이해해야한다. 지니 계수는 경제적 불평등을 계수화 할 때 주로 사용하는 지표로 머신러닝 분야에서는 Decision Tree 모델의 성능을 평가할 때 엔트로피 지수와 함께 쓰인다. 지니 계수는 0~0.5의 값을 가지는데 0.5에 가까울수록 균등한 분배를 의미한다.
- 지니계수는 로렌츠 곡선(Lorenz Curve)에서 시작되는데 경제학적인 해석으로 보면 저소득~고소득까지의 인구 누적비율과 소득의 누적 점유율 사이의 관계성을 나타내는 곡선이 로렌츠 곡선이다. 균등 분배가 이루어 지면 로렌츠 곡선은 y=x 직선과 같아지고 이때 지니 계수는 0.5가 된다.
- 지니 계수는 위 그림에서 A의 면적을 뜻한다. A/(A+B)
- 이 대회에서 지니 계수는 Actual값의 누적 비율과 Prediction값의 누적비율로 산출이 되는데, 이것을 표준화를 시킨다. 이 표준화는 Actual 값이 가지고 있는 불평등 정도로 actual-prediction 간의 불평등 정도를 나누어서 산출이된다.
- 아래 그림의 좌측 그림은 Actual값이 본래 가지는 불평등정도를 나타내는 데 파랑색 면적 부분이 로렌츠 곡선을 나타낸다. 우측 그림은 Actual값과 Prediction 간의 불평등 정도를 나타낸다.
- 이때 Actual값의 불평등 정도가 0.3(좌측 그림 오렌지 면적)이고 Actual-prediction 간의 불평등 정도가 0.189(우측 그림 오렌지 면적) 이라면 표준화된 지니계수 값은 0.189/0.3 = 0.630 이 된다.
-
* Reference
- https://en.wikipedia.org/wiki/Gini_coefficient
- https://zereight.tistory.com/261?category=806994
- https://www.kaggle.com/batzner/gini-coefficient-an-intuitive-explanation
'Kaggle 대회' 카테고리의 다른 글
[Porto Seguro’s Safe Driver Prediction] Baseline 구축 (0) | 2020.02.11 |
---|---|
[Porto Seguro’s Safe Driver Prediction] 데이터 탐색하기 (0) | 2020.02.02 |
[APTOS 2019 Blindness Detection] 대회 소개 (0) | 2020.01.14 |
[Santander Product Recommendation] 전혀 다른 모델 활용하기(MLP) (0) | 2019.12.25 |
[Santander Product Recommendation] Feature engineering (0) | 2019.12.25 |
댓글