본문 바로가기
Deep Learning

Kaggle 입문기

by Think_why 2019. 10. 15.

아무 소속도 아닌 나에게, 딥러닝을 공부하기 가장 좋은 방법은

Kaggle을 이용하는 방법이라고 생각한다. 

Dataset도 없고, 프로젝트 주제도 없고, 딥러닝을 해보고 싶다면 

일단 Kaggle을 경험해보는 것이 좋을 것이라고 판단했다. 

 

처음에는, 방식이 되게 복잡할 것이라고 생각하고 조금 겁을 먹었다. 

그런데 생각보다 Kaggle 활용 방식 자체는 그렇게 어렵지 않았다.

csv 파일을 통해서 데이터를 입력을 받아서 내가 만든 모델을 test 하고 

그 결과 csv파일을 submission하면, 알아서 score를 내준다. 

그 score를 이용하여 경쟁하는 방식이다. 

 

먼저 Kaggle 사용 방법을 먼저 터득하기 위해 Tutorial을 진행하기로 했다.

 

 

Kaggle 홈페이지에서 Competitions에 들어가게 되면, 

 

 

위와 같은 창이 뜨게 되는데, 여기서 Getting started 카테고리를 고를 수 있다.

Tutorial 로는 역시 MNIST가 제격이므로, Digit Recognizer를 들어갔다.

 

 

 

Digit Recognizer competition의 설명과 여러가지 블록들이 있다.

간단히 읽어보고 Data를 블록을 눌러보자.

 

 

Data에 대한 설명이 있다. Data 정보와 Data structure를 설명중이다. 

스크롤을 조금 아래로 내려보면 알기 쉽게 되어있다. 

 

 

train.csv를 눌러보면 친절하게도 데이터를 보여준다.

옆의 배열 size 부분에 마우스 커서를 대면 row, col도 보여준다.

원래 MNIST는 image size가 784(=28x28)인데, train.csv 파일에는 'label' column이 함께 들어있다.

Download를 할 때, Linux 사용자는 사용 중인 폴더에서 command를 입력하는 것이 편할 것 같다.

나는 Windows에서 Python3를 사용 중이므로, 명령어를 입력하기 보다는 Download All로 위치를

마음대로 지정하는 것이 편해서 이걸로 다운을 받았다.

 

 

Kernels에는 사람들이 작성한 코드를 올려놓는다. Script 형식과 Notebook 형식이 있다.

Getting Started라서 그런지, 사람들이 Deep leaning basic에 관한 코드 설명을 많이 올려놓았다.

그 코드들을 참고하면서, 나만의 모델을 만들었다.

csv 파일을 다룰 때는 pandas(as pd)를 주로 이용한다.

읽을 때는 pd.read_csv를 쓰면 편리하고, submission을 만들 때는 pd.DataFrame을 이용하여

submission 기준을 맞춰주고, .to_csv로 제출할 csv 파일을 만들면 편리한 것 같다.

 

 

Submit Predictions로 만든 csv 파일을 제출하면 score를 내준다.

My Submissions에 자동으로 score가 뜨게 된다. 나는 0.98014를 맞았다.

Python3 기반에서 Pytorch를 사용했고, 기본적인 CNN을 정도를 구현해서 이정도면 만족이다.

학습에 사용된 code는 github에서 볼 수 있다.

https://github.com/wlstyql/Kaggle/blob/master/Digit_Recognizer/mnist_torch.ipynb

 

wlstyql/Kaggle

Contribute to wlstyql/Kaggle development by creating an account on GitHub.

github.com

이제는 본격적으로 Kaggle에 도전할 주제를 천천히 찾아봐야겠다.

 

728x90

댓글