728x90
1주차의 목적

  • 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 대회의 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가 높다고 최종 등수까지 높은 것은 아님
  • 대회 참여 시 참고하면 좋을 Notebook
    • EDA 관련 : 대회 초반
    • 전처리 및 모델링 : 대회 중 ~ 후반
  • 대회 진행에 따른 discussion
    • 대회 초반 : 설명의 부족, 개선 건의
    • 대회 중~후반 : 적용 시 좋을 라이브러리, 관련 논문 소개
    • 대회 후 : 자신의 솔루션 공개

Competition의 진행 순서

  • 이상적이라면 : 입력-모델링-출력
  • 실제
    • 입력 : 보통 pandas 라이브러리 사용
    • EDA : 데이터 시각화, 통계를 통한 좋은 feature 찾기
    • 전처리 : 모델에 맞게 수정
    • 모델링 : 모델- 결과 모델 사이의 반복을 통한 문제 개선
  • EDA : 데이터에서 무엇을 볼 것인가?
    • 어떤 문제를 해결할지(상관관계 등)
    • 어떤 데이터가 있고, 어떻게 처리할지
    • 누락(NULL)이 있는지, 있다면 어떻게 처리할지
    • 특이값(Outlier)이 있는지, 어떻게 처리할지
    • 데이터 활용을 위한 새 feature를 활용할지
  • EDA시 데이터의 분류
    • 수치형 데이터 : 이산형 / 연속형
    • 범주형 데이터 : 명목형 / 순서형
728x90

+ Recent posts