728x90
- 4차 Kaggle 대회를 맞이하며 다시 시작하는 kaggle 입문 수업
- 총 4회에 걸친 커리큘럼
- 1주차 : kaggle 맛보기
- 2주차 : kaggle feature engineering - 기술적 노하우
- 3주차 : 모델링 검증 & 앙상블 해보기
- 4주차 : 마무리
1주차의 목적
- 머신러닝/딥러닝/라이브러리 강의는 넷 상에 매우 좋은 자료가 많음
- 이번 주의 주된 목표
- 캐글 소개
- 대회(Competition) 소개
캐글에서 어떻게 공부하는지
- 캐글이란?
- 데이터 사이언스 / 머신러닝 학습자들의 커뮤니티
- 컴피티션(대회), dataset, Notebook(일종의 Code), Discussion의 크게 4가지로 활동 가능
- 캐글러의 목표?
- 재미, 성취, 공부, 상금, 취업 등 복합적
- 나의 경우 : 공부나 취업 정도가 될 듯....
- 이번 수업에서 임의로 설정한 목표 : 메달, 그리고 티어
- Kaggle의 Tier
- 가장 많은 사람들이 Contributor에 속하고, Expert부터가 진짜 실력자라고 볼만 한 레벨
- 예상과는 달리 오히려 Competition에서 티어 높이기가 쉽고, Notebook - Discussion으로 갈수록 어려움
- upvote를 많이 받아야 메달을 따고 티어를 높이는데, 어지간한 내용이 아니고서야 잘 받기가 힘듬 + 나와 Novice tier는 집계에 들어가지 않기때문에 더더욱....
- Data Science의 내용 전개
- 정보 수집 및 구조화 - Kaggle에서는 어느 정도 제공
- 데이터 수집
- 구조화 : SQL, Big Query 등등...
- 데이터 전송 : 분산 처리(하둡, 스파크 등등...)
- 판단 - Kaggle의 주 목적
- 분석 및 판단 - EDA 및 시각화를 통한 데이터 종류 분석 : 지도/비지도 학습 분류
- 데이터의 종류 : 정형(보통 csv파일로 제공), 시계열, 이미지, 음성, txt 등등....
- 정보 수집 및 구조화 - Kaggle에서는 어느 정도 제공
대회 살펴보기
- Kaggle 대회의 Type
- Featured : 대부분의 대회, 높은 예측 score를 받을수록 유리
- Analytics : 분석 - 나만의 Notebook 만들기
- Research : 연구
- Getting Started : 튜토리얼 대회
- Playground : 일종의 재미용 대회
- 제출 방식
- Simple Competition : csv 형태로 제출
- Code Competition : 코드로 제출
- Simple Competition은 개인의 Computing 자원에 따라 유/불리가 갈릴 수 있음
- Code competition은 공통된 note북 환경을 이용하나, 사전에 개인이 학습시켰던 모델의 활용이 가능한 경우 개인 자원에 따라 유/불리가 갈릴 수 있음
- 대회 접근 순서
- 대회의 주제 확인
- data 종류, 양 확인
- Evaluation 기준, 참가자들의 leaderboard 확인
- 기존의 Discussion 확인 : 빠른 Follow-Start를 위해
- Upvote가 많은 Notebook 확인
- 대회 스코어
- Public Leaderboard : test 데이터 중 일부만을 이용해 점수 측정
- 데이터는 임의로 선택되므로 항상 leaderboard가 높다고 최종 등수까지 높은 것은 아님
- Public Leaderboard : test 데이터 중 일부만을 이용해 점수 측정
- 대회 참여 시 참고하면 좋을 Notebook
- EDA 관련 : 대회 초반
- 전처리 및 모델링 : 대회 중 ~ 후반
- 대회 진행에 따른 discussion
- 대회 초반 : 설명의 부족, 개선 건의
- 대회 중~후반 : 적용 시 좋을 라이브러리, 관련 논문 소개
- 대회 후 : 자신의 솔루션 공개
Competition의 진행 순서
- 이상적이라면 : 입력-모델링-출력
- 실제
- 입력 : 보통 pandas 라이브러리 사용
- EDA : 데이터 시각화, 통계를 통한 좋은 feature 찾기
- 전처리 : 모델에 맞게 수정
- 모델링 : 모델- 결과 모델 사이의 반복을 통한 문제 개선
- EDA : 데이터에서 무엇을 볼 것인가?
- 어떤 문제를 해결할지(상관관계 등)
- 어떤 데이터가 있고, 어떻게 처리할지
- 누락(NULL)이 있는지, 있다면 어떻게 처리할지
- 특이값(Outlier)이 있는지, 어떻게 처리할지
- 데이터 활용을 위한 새 feature를 활용할지
- EDA시 데이터의 분류
- 수치형 데이터 : 이산형 / 연속형
- 범주형 데이터 : 명목형 / 순서형
728x90