Kaggle은 데이터에 기반한 예측 모델을 만드는 경쟁을 할 수 있는 공간이다. Kaggle에는 다양한 데이터셋이 존재하고, 이를 이용하여 예측 모델을 구성하고, 그 성능을 다른 사람들이 만든 예측 모델의 성능과 비교할 수 있다.
1. Kaggle API를 이용해 시작하기 (Linux)
Kaggle competition에 참여하기 위해서는 데이터를 받아서 예측 모델을 만들고, 예측 결과를 Kaggle에 업로드하면 된다. 이 과정을 web을 통해 진행할 수 있으나, Kaggle API를 통해 Kaggle site에 직접 접근할 수도 있다. 여기서는 Kaggle API 설치 및 이를 이용하는 방법을 연습한다.
- Kaggle API GitHub Link:
- Kaggle API에 대한 자세한 설명을 찾을 수 있다.
- https://github.com/Kaggle/kaggle-api
1.1. Conda environment 만들기 (Optional)
Kaggle API를 사용하기 위한 conda environment를 만든다. 이 과정은 conda를 이용해 환경을 관리하기 위함이다. Conda나 환경 관리에 대해 잘 모르면 이용하지 않아도 상관없다.
- 참고: Anaconda
conda create -n kaggle
1.2. Kaggle API 설치하기
pip install --user kaggle
1.3. Conda set-up 파일 만들기
Kaggle competition에 참가하기 위해서는 먼저 계정을 먼저 만들어야 한다. Kaggle 웹(https://www.kaggle.com/)에서 계정을 생성한다. 계정을 생성한 후에는 계정에 대한 정보를 Kaggle-API에 알려주어야 한다.
- Kaggle login
- Setting에 접속 (https://www.kaggle.com/settings)
- API 항목에서 “Create New Token” 버튼을 클릭
- kaggle.json 파일 다운로드
- 다운받은 파일을 linux system의
~/.kaggle
directory에 복사
2. Titanic competition 참가하기
2.1. Dataset 받기 (competitions download)
Kaggle API를 이용해 competition dataset을 받는다. titanic.zip 파일 다운로드를 확인한다. 압축 파일은 train.csv
, test.csv
, gender_submission.csv
파일을 포함한다.
train.csv
: 학습을 위한 정보 파일test.csv
: 예측을 위한 데이터 파일gender_submission.csv
: submission 예제 파일 (성별 기반 생존 예측 결과)
kaggle competitions download -c titanic
2.2. Predictive model 만들기
train.csv
파일의 승객 정보 및 생존 정보를 기반으로, test.csv
파일에 있는 승객의 생존 여부를 예측하는 model를 만든다. 이렇게 예측한 모델을 이용해 생존 여부를 예측하고, 그 결과를 submission.csv
와 같은 CSV 파일에 저장하고 이를 Kaggle에 submit한다. Titanic competition에서는 PassengerId와 Survived 두 항목을 submission파일에 추가해야 하며, gender_submission.csv
와 같은 형식으로 예측 결과를 제출해야 한다.
2.3. 예측 결과 제출하기
예측 모델을 만들고 예측 결과 파일을 생성한 후 결과를 Kaggle에 제출하여 competition에 참가한다. 여기에서는 연습을 위해서 gender_submission.csv
파일을 제출하는 예를 보여준다.
kaggle competitions submit -c titanic -f gender_submission.csv -m "Submission test (gender_submission.csv)"
kaggle competitions submit
: 경쟁 참가 명령어-c titanic
: competition 이름-f gender_submission.csv
: 결과 파일-m "Submission test (gender_submission.csv)"
: 제출에 대한 간단한 기술
2.4. 제출 결과 확인하기
제출 결과 확인을 위해 Kaggle 홈페이지의 Competition 탭에서 (https://www.kaggle.com/competitions) Your Active Competitions 항목을 통해 titanic competition page에 접근하여 확인할 수 있다 (https://www.kaggle.com/competitions/titanic). Competition page의 Submit Prediction 버튼 왼쪽 Submissions를 클릭하면, 제출 결과를 확인할 수 있다.
3. 맺음말
Kaggle에는 기계학습을 이용해 풀 수 있는 다양한 문제가 있다. 관심 있는 항목을 찾아 문제를 해결하는 시도를 해보자.
추천 compeitition
- 기초
- titanic
- https://www.kaggle.com/competitions/titanic
- titanic