실제 현업에서 닥치는 여러 상황과 데이터들을 가지고
누가 보다 좋은 예측 모델을 만드는지 서로 게임처럼 경쟁하는 플랫폼 캐글
실제 상황의 데이터 혹은 유사한 데이터를 접해 볼 수 있어서 전세계 사용자들이 애용하는 플랫폼 이라고 하는데
최근 구글에 인수되어 더 많이 좋아졌다고 합니다
캐글 사이트
캐글 사이트 - https://www.kaggle.com
접속해서 구글 계정만 있으면 바로 가입되고, 둘러보면 정말 많은 정보들이 제공됩니다
검색 좀 해보니 첫 입문은 타이타닉으로 한다는데
실제 데이터를 가지고, 생존율을 예측하는 모델을 만드는 입문용 과제라고 합니다
Titanic - Machine Learning from Disaster
Start here! Predict survival on the Titanic and get familiar with ML basics
https://www.kaggle.com/c/titanic/overview
Titanic Tutorial
Python notebook using data from Titanic - Machine Learning from Disaster
https://www.kaggle.com/alexisbcook/titanic-tutorial
타이타닉에 대한 다른 분들의 글들도 좀 찾아보기도 했는데 혼자 시작하기가 쉽지 않았습니다
https://brunch.co.kr/@minwoo/19
https://www.datacamp.com/community/open-courses/kaggle-python-tutorial-on-machine-learning
유튜브는 정보의 보고
그러던 중
우연히 구독중인 채널에서 캐글 관련된 내용이 소개되어서
이분 유튜브 채널에 가서 강의를 들어봤습니다
인공지능 분야 천상계 대한민국 단 4명 뿐인 캐글 그랜드 마스터 인터뷰
https://www.youtube.com/watch?v=tu6b3xbTj6M
타이타닉 과제를 진행하는 유튜브 강의 플레이 리스트 (15개 동영상으로 구성)
Titanic with Youhan Lee
https://www.youtube.com/watch?v=_iqz7tFhox0&list
유튜브 영상 내용에 대한 강의 자료도 (python 소스코드 및 설명 등) 블로그에 잘 정리를 해 놓으셔서 강의 내용 따라가는데 많은 도움이 됩니다
https://kaggle-kr.tistory.com/17
https://kaggle-kr.tistory.com/18
강의 들으며 캐글에서 파이썬 사용을 좀 해봤더니
캐글에서는 제공하는 쥬피터 노트북 환경, 우왕 이거 완전 편하네요
내 노트북에 아나콘다3 설치하고 쥬피터 노트북 사용하지 않아도, 캐글에 접속해서 사용해도 될 것 같습니다
역시 요즘엔 클라우드가 대세, 인터넷과 웹 브라우저만 있으면 되니 차암~ 편합니다
강의 내용 좋은데 요즘엔 새로 올리질 않으시네
강의 진행방식은 완전 딱 제 스타일 이네요
일단 제대로 실행되는 코드 돌려 보고, 결과 보면서 왜 이렇게 돌아가는지 점검해보는 방식
(일단 잘 돌아가는 코드를 준비하느라 준비 많이 하신 것 같습니다)
따라한 후 답안 제출을 해보니 74%, 17,000등 정도 됩니다
1등한 사람들은 결과가 어떤가 봤더니 100%, 뭘 어떻게 바꾸면 100%가 되는지 모르겠지만
캐글에서 제공하는 검증용 데이터로는 100% 예측율이 나오는 모델을 만들 수는 있는가 봅니다
강의 내용은 초보자들에게 잘 맞춰져 있고, 예측모델을 만드는 모든 과정을 잘 설명해 줍니다
EDA (Exploratory Data Analysis), 탐색적 데이터 분석 이라고 해서
각종 표와 그래프를 이용하여 데이터를 살펴보는 방법들을 개략적으로 자세히(?) 잘 설명해 줍니다
Feature Engineering 부분은
null 데이터 채우기 (빈 데이터가 많은 나이를 채우는데도 여러가지 아이디어들이 많네요), 문자열 데이터를 코드화 시키기 등의 방법들을 설명해 줍니다.
최대한 정성을 들여 실제와 가깝게 데이터를 채워줘야 예측율이 높아진다고 합니다
데이터 전처리, 데이터를 잘 다듬어 주고 나면 상관관계 점검을 합니다
여기서는 Pearson coefficent를 이용하여 하여 여러 변수들의 상관관계를 점검하는데, 상황에 따라 적절한 방법을 찾아내려면 공부 많이 해야할 것 같습니다
모델의 성능을 높이는 기법 중 하나인 One-hot encoding 방법도 알려줍니다
최종적으로 사이킷런을 (Scikit-Learn) 이용하여 예측 모델을 만들고 검증하는 절차도 다룹니다
강의를 쭈욱 들어보니, 90% 이상의 시간을 데이터를 점검하고 가농하는데 투자해야 하는군요
준비된 데이터를 가지고도 이렇게 정성이 많이 들어가는데
데이터를 처음에 뽑아 오는 과정부터 맨땅에 해야 한다면
어떤 데이터를 어디서 가져와야 하는지, 가져올 수는 있는지 등을 점검하며 진행하는 과정에 상당한 시간과 노력이 필요할 것 같습니다
실제 상황에서는 모델 학습시키는 비용도 상당해서
결국 GPU 사용 하는데 얼마의 비용을 지불할 수 있느냐에 따라 모델 성능과 품질이 결정되는 경우도 많다고 하던데
돈 없으면 좋은 모델 만들 수 없는 상황 만나면 참 좌절감 느낄 것 같기도 합니다
세상 쉬운일 하나 없네요 ㅎㅎ
캐글도 구글이 인수 했는데, Colaboratory 라는 서비스도 구글에서 제공합니다 - https://colab.research.google.com/
캐글 UI 보다는 좀 못하지만, 쥬피터 노트북을 무료로 사용해볼 수 있고 머신러닝 학습을 위한 GPU도 꽤 할당해 준다고 합니다
구글 colab만 가지고도 캐글에서 엄청난 결과를 내는 분들도 많다고 하니
모델의 성능과 품질을 위해서 돈이 많으면 좋긴 하지만, 창의력과 노력으로 극복할 수 있는 방법도 많은가 봅니다
엄청난 능력의 분들은 어딜가나 ㅎㅎ
어느 분야에서나 입문서 및 바이블 같은 책이 있기 마련인데, 이 동네에서는 이 책이라고 합니다
Introduction to Machine Learning with Python: A Guide for Data Scientists
https://www.amazon.com/dp/B01M0LNE8C/?coliid=I3DDZH8JUUU2E6&colid=355PN155O2TFO
파이썬 라이브러리를 활용한 머신러닝
https://ridibooks.com/books/443000679
우아, 이 책은 리디북스에서 구매가 가능합니다~ 만세~~
종이책은 들고 다니며 읽기도 힘들고, 보관도 부담이고 전자책이 좋습니다
리디북스 덕분에 원서 안사도 될 것 같습니다
우선 책 부터 사봐야 겠습니다
데이터 사이언티스트 들이 하는 일도 아주 조금 맛보고
머신러닝 학습 시키는 방법, 모델 만드는 방법도 아주 기초적인 수준으로 맛 보면서
전체 프로세스를 쪼끔은 알게된 것 같습니다
오늘은 여기까지 ㅋㅋ
Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems
https://www.amazon.com/dp/B07XGF2G87/
케라스 창시자에게 배우는 딥러닝
https://ridibooks.com/books/754024868