전복 좋아하시나요?
저는 별로 안 좋아하는데요,
시장 갈 때 마다 가격보고 기함하는 식재료 중 하나입니다.
특히 큰 놈은 부르는게 값이더라구요.
한국에서는 전복의 크기를 표현할 때, kg에 몇 마리가 되는지를 뜻하는 단위 '미' 를 사용합니다.
그리고 이 크기는 전복의 나이와 밀접한 연관성이 있다고 알려져 있습니다.
하지만 전복에게 나이를 물어본다고 답할리는 없겠죠.
따라서 이 대회에서 우리는 전복의 여러가지 내, 외적 요인을 종합해 전복의 나이를 예측하는 모델을 만들어볼 것입니다.
저는 이번 시즌에서 Public 8등, Private 전세계 상위 5%를 차지했답니다!
대회 소개
Kaggle season 4, episode 4 (2024년 4월 ~ 5월) 대회로, 상당히 최근에 개최했습니다.
Regression with an Abalone Dataset
Playground Series - Season 4, Episode 4
www.kaggle.com
이 대회는 UC Irvine 에서 제공한 전복의 다양한 외적 특성과 나이 데이터셋입니다.
데이터셋 원본의 위치 :
UCI Machine Learning Repository
This dataset is licensed under a Creative Commons Attribution 4.0 International (CC BY 4.0) license. This allows for the sharing and adaptation of the datasets for any purpose, provided that the appropriate credit is given.
archive.ics.uci.edu
(대회페이지의 'Dataset' 섹션에서 확인해볼 수 있습니다.)
전복의 나이를 예측하는 task이므로 회귀문제가 되겠습니다.
데이터 개요
데이터 파일
각각 간단히 설명하면
1.train.csv : 모델을 학습시키는 데에 사용하는 데이터
2. test.csv: 학습시킨 모델을 대회측에서 평가하는 데이터
3. sample_submission.csv: 모델을 사용해 학습시킨 결과를 우리가 채워넣는 답안지 같은 것.
여기서 가장 중요한 train.csv와 test.csv의 구조 차이를 간단하게 그려보았습니다.
그림에서 볼 수 있듯이, train.csv에는 실제 target feature 값이 주어지는 반면, test.csv는 실제 target feature의 값이 주어지지 않습니다.
즉, 우리의 목표는 train.csv로 모델을 학습시켜 test.csv의 타겟값을 예측하고, sample_submission.csv에 채워넣는 것입니다.
데이터 크기
train은 약 9만건, test는 약 6만건의 데이터로 이루어져 있으며
column 수는 다음과 같습니다:
1. train.csv: index 번호 + 8개의 feature + target = 10개
2. test.csv: index번호 + 8개의 feature = 9개
3. sample_submission.csv: index번호 + target 채워넣는 공간 = 2개
평가함수
평가함수로는 RMSLE (Root Mean Squared Logarithmic Error) 를 사용합니다.
간단히 설명하면, 실제값과 예측값에 log(x+1) 함수를 씌운 것으로 RMSE를 취한 값입니다.
이렇게 Target log를 씌우게 되면, 소숫점 아래의 작은 값은 증폭되고,
10, 100, 1000.... 큰 값들은 상대적으로 영향력이 적어집니다.
또한 일반적으로 이렇게 평가함수에 log가 붙어있을 때는 target값 그대로 예측하는 것 보다,
target에 log(x+1)을 씌워 예측할 때 더 성능이 좋습니다.
더 자세한 내용은 다음 포스트에서 다루겠습니다.
여기까지 Regression with an Abalone Dataset 대회의 간략한 소개였습니다.
다음 포스트에선 데이터 개요 설명과
본격적인 풀이를 가져오겠습니다.
도움이 되었다면 하트 눌러주세요 :)
구독하시면 더 많은 데이터사이언스 정보와 대회풀이를 보실 수 있습니다!
