살콤아내 자기계발/살콤아내의 책방

캐글가이드 (사카모토 도시유키 지음, 박광수 옮김)

살콤아내 2021. 6. 17. 10:04
728x90
반응형

 

캐글은 R프로그램이나 파이썬 기반의 데이터과학 경진대회를 제공하는 플랫폼으로 많은 데이터 과학자들이 실력을 겨루며 그들이 만든 알고리즘 지식을 공유하고 있다.

 

캐글이 인기가 많은 것은 구글회사로 알려진 알파벳 A에 의해 제공되는 서비스라서 (아직까지는) 무료로 방대한 데이터세트(UCL Machine Learning Repository) 와 온라인 자원을 활용할 수 있다는 있다. 또한 캐글에서 제공하는 노트북은 파이썬 운용 프로그램인 주피터노트북과 비슷한데, 이를 언제 어디서든 온라인에서 사용할 수 있다는 편리함 때문에 사람들이 캐글을 많이 사용한다. 즉 캐글은 연산자원을 (4코어 CPU, 16G RAM)와 노트북을 무료로 제공하며, (또한 1주일에 30시간 동안은 GPU를 자유롭게 사용할 수 있다) 사용자들은 별도의 개발 환경 구축, 서버의 유지 보수 등을 신경 쓸 필요가 없다. 

 

참고) cupy와 같은 파이썬 라이브러리는 GPU가 있어야 정상적으로 작동한다. Setting-Accelerator에서 GPU를 활성화할 수 있다. 

 

이 책을 읽고 나는 캐글에는 (상금이 걸린) 경진대회만 있을 줄 알았는데, 네이버 지식IN처럼 서로 질문과 대답을 하고 경진대회에서도 서로의 (알고리즘이 담긴) 노트북을 업데이트하면서 최신기술과 최신지식을 공유하는 장이라는 것을 새롭게 알게 되었다. 또한 캐글은 나와 같은 초보캐글러를 위한 교육과정도 마련되어 있다니 캐글을 시작한다면 정말 유용할 것 같다는 생각이 든다. 

 

캐글에는 사용자 등급시스템이 Novice-Expert-Master-Grandmaster 이렇게 4 단계가 있으며, 캐글에서 제공하는Competitions (경진대회), Datasets (데이터세트), Notebooks (노트북), Discussion (토론게시판) 서비스에서 활발히 오래 활동을 하는 캐글러는 메달을 받아서 등급시스템을 올릴 수 있다. (경진대회를 제외한 나머지 서비스에서 메달을 받기 위해서는 다른 캐글러로부터 Vote를 받아야 함)

 

 

- Discussion (토론게시판)에는 여러가지 주제를 토론하는 Topic과 데이터 과학 관련 일반적인 주제를 다루는 Forum이 있다.

 

- Competitions (경진대회)는 초보자 대상의 Getting started (정답이 있음), 머신러닝 엔지니어를 위한 Playground (순위를 매김), 공통된 주제를 다루는 정기경진대회, 특수한 데이터를 다루는 경진대회 (다양한 전문분야의 데이터를 접할 수 있음), 특수한 규칙을 따르는 경진대회  등으로 구분된다. 

 

- 경진대회의 기본 데이터 세트는 다음과 같다.  train.csv (정답 레이블이 있는 학습용 데이터), test.csv (정답 레이블이 없는 테스트용 데이터), sample_submission.csv (제출용 데이터 예) 실행결과를 제출하면 Leaderborad 페이지에서 결과와 점수, 순위를 확인할 수 있다.

 

- 데이터세트 파일 종류: csv, json, sqlite (zip은 압축파일 이름의 디렉터리로 활용 할 수 있음)
- 데이터세트 파일용량: 2020.06기준 20GB까지 증가, 최상위 디렉터리에는 50개의 파일 배치 가능

 

- Notebooks (노트북)은 스크립트 타입(일반적인 코드편집기) 과 노트북 타입 (인터랙티브 개발환경) 두 가지 커널타입 중 하나를 선택할 수 있다. 노트북은 프로그램 실행 결과를 확인하면서 코드 셀을 추가할 수 있다는 장점이 있다. 또한 +Code나 +Markdown을 통해 셀을 만들거나 설명을 작성할 수 있다.

 

소스코드를 완성해서 실행 후 오류가 없는지 확인했다면 Save Version을 누른다. 코드를 실행하지 않은 상태랄면 Save & Run All (Commit)을 누른다. (Commit은 Git등의 버전관리 시스템에서 소스코드의 새 버전을 저장한 후 기존 버전과 달느 태그를 지정하는 것이다.) 

 

 

 

경진대회에서 가장 먼저 범용알고리즘을 구현한 노트북을 '베이스라인'이라고 부르며, 경진대회 데이터를 분석 후 시각화해서 보여주는 '데이터분석 노트북'도 있다. 경진대회에서 공개된 소스코드의 특정 버전을 복사해 다른 파생 프로그램을 작성하는 것을 '포크(fork)'라고 하며 이를 기반으로 한 노트북을 '포크노트북'이라고 부른다. 캐글의 노트북 검색 결과에서 제목에 merge, blend, stacking, ensemble이라는 단어가 있다면 캐글 안의 다양한 조합으로 만든 '병합 노트북'이라고 부른다. 주로 병합노트북은 대회 막바지에 높은 성능의 노트북 조합으로 만든다.

 

 

 

경진대회 규칙

캐글러들은 기존 기술에 새로운 아이디어를 추가한 솔루션을 평가받으려는 경쟁 심리가 있으며, 모델 튜닝 기법을 막바지까지 숨기기도 한다. 하지만 경진 대회의 규칙으로 다른 노트북의 출력 결과를 자신의 노트북 입력 데이터로 사용할 수 없다. (그러므로 병합된 모델의 결과를 동시에 연산하는 모델로 제출한다)

 

- 주로 자동화 계산을 하지만 특정 대회는 사람이 계산한다. 경진대회 점수는 Accuracy, AUC Score로 주로 계산된다.

- 한 사람이 여러 가지 결과를 제출할 수 없으며, 팀 편성 마감기한은 최종 결과 제출 기한의 1-2주 전까지이다.

- Leaderboard에서 1일 점수 확인 횟수에 제한이 있다.

- 노트북 전용 경진 대회: 캐글의 노트북만 이용해 분석결과를 만들어 제출하는 형식의 대회로 컴퓨터 연산 자원을 같은 수준으로 강제하는 규칙이 있다. (로컬 컴퓨터의 데이터 파일을 업로드하지 못함) 주최자는 모든 참가자의 노트북을 확인할 수 있다는 장점이 있다.

 

 

경진대회 종료 후 상위 10%안에 들면 메달 수여를 하며, 몇몇 캐글러들은 Discussion 페이지에 솔루션을 공개하기도 하며, 경진대회가 끝나고 시간이 지난 이후에도  Private Leaderboard에 새로운 솔루션을 개발해 발표하기도 하는데 이를 통해 ML분석기법과 모델링 방식의 변화양상을 살표볼 수 있다. 이처럼 캐글을 통해 다양한 관점/방법으로 데이터를 분석하며 실력을 쌓을 수 있으며 기술 발전의 흐름을 볼 수 있다.


참고) 입상한 솔루션을 모아놓은 깃허브 저장소 ( interviewBubble/Data-Science-Competitions)
https://github.com/interviewBubble/Data-Science-Competitions

 

interviewBubble/Data-Science-Competitions

Goal of this repo is to provide the solutions of all Data Science Competitions(Kaggle, Data Hack, Machine Hack, Driven Data etc...). - interviewBubble/Data-Science-Competitions

github.com

 

 

참고) Kernel이라는 용어도 노트북을 지칭할 때 사용된다.

 

참고) 직접만든 데이터를 노트북에서 이용할 땐 Add-ons >> Google Cloud Services >> Add an account >> BigQuery를 사용하면 좋다.

 

참고) 캐글 API: 캐글 플랫폼의 여러 기능을 연결해서 사용할 수 있는 인터페이스로 캐글 데이터세트,  API, s노트북을 이용하면 캐글을 Saas 플랫폼으로 활용가능함 >> 이를통해 캐글 API로 머신러닝을 실행할 수 있음. (파이썬 3으로 구현, 파이썬 패키지 관리도구 pip 설치해야함. Dataset Metadata 위키페이지 참고)

 

참고) LightGBM, fast.ai

캐글에서 요즈음 있기있는 ML방법은 LightGBM이라고 한다. 과적합의 문제가 있지만 수행속도가 빠르다. 또한 fast.ai는 신경망 모델을 학습시키고 실행하는 딥러닝 프레임워크로 GPU활용해야한다는 특징이 있다.

 


참고) Coursera: 데이터사이언티스트를 배울 수 있는 온라인 플랫폼

https://www.coursera.org/

 

Coursera | Build Skills with Online Courses from Top Institutions

Join Coursera for free and learn online. Build skills with courses from top universities like Yale, Michigan, Stanford, and leading companies like Google and IBM. Advance your career with degrees, certificates, Specializations, & MOOCs in data science, com

www.coursera.org

 

 

참고) UCL 머신러닝 저장소

https://archive.ics.uci.edu/ml/index.php 

 

UCI Machine Learning Repository

Welcome to the UC Irvine Machine Learning Repository! We currently maintain 588 data sets as a service to the machine learning community. You may view all data sets through our searchable interface. For a general overview of the Repository, please visit ou

archive.ics.uci.edu

 

참고) 구글 코랩 (Google Colab)_구글에서 제공하는 Jupyter Notebook

https://colab.research.google.com/notebooks/intro.ipynb?hl=ko#recent=true

 

Google Colaboratory

 

colab.research.google.com

 

728x90
반응형