brunch

You can make anything
by writing

C.S.Lewis

by 박경아 Nov 12. 2020

캐글 참여기 - (1) 탐색적 사전지식 공부

먼저 캐글에 참여하기 전 나에게 데이터 사이언스는 막연히 어렵거나 나랑은 상관없는 일이라는 생각이 있었다. 이전에도 어쩌다 캐글 홈페이지에 한번 쯤은 방문해 본 것 같지만 내가 여기 참여할 것이라는 생각이 당장에는 들지 않는다.


하지만 캐글을 어설프게나마 한 번 참여해본 지금 데이터 사이언스 생각한 것보다 별 거 아니네? 라는 생각이 든다....^^;; 마치 취미로 킥복싱을 몇 달 배운 무급(화이트벨트)이 지역 생활체육대회에 따라가보고 아직 갈 길은 멀었지만 내 체급에서는 주로 어떤 사람들이 나오고 어떤 훈련을 왜 해야 하는 지 더 잘 이해할 수 있게 되었다고 해야 하나?


물론 지금 나의 파이썬 언어 사용 숙련도는 턱없이 부족하고 R이나 SQL을 아직 배우지도 않았다. 하지만 캐글을 한 번 끝낸 지금 파이썬 언어를 좀 더 능숙하게 사용해야 하며 R이나 SQL도 공부해야 하고 머신러닝 자체보다 문제상황에 맞는 제대로 된 알고리즘을 적용하고 제대로 문제해결을 하는 것이 더 중요하다고 생각하게 되었다.


우선 이 글을 읽고 계신 분들의 참고를 위해 내 백그라운드에 대해 살짝 이야기하고자 한다. 나는 문과 출신에 학교 다닐 때 (누구나 그렇듯??) 수학이 제일 싫었다. 하지만 최근에는 수학은 아무 짝에 쓸모없다는 대학 졸업 후 약 십년 간의 생각을 깨고 논리적인 해결력을 키우기에 이만한 학문도 없구나라는 생각을 하고 있다. (즉흥적이고 호기심 많은 아들을 키우다 보니 하게 된 생각이다.)


프로그래밍은 전혀 배워본 적이 없다. 파이썬은 데이터 분석과 인공지능 알고리즘에 많이 사용되고 초보자가 가장 배우기 쉬운 언어라고 해서 우선 파이썬부터 배워봤더니 생각보다 이해하는 것이 많이 어렵지는 않았다. 물론 이해와 활용은 다르다. 딱, 영문법 책 한 번 읽고 대충 이해한 수준이라고 해야 하나? 문법을 이해했다고 해서 영어가 술술 나오는 게 아닌 것처럼.


이제부터 내가 캐글에 참여하면서 삽질한 경험을 데이터 사이언스의 문제해결 과정과 접목해 이야기를 써보고자 한다. 어짜피 하나의 문제해결 사이클이고 한 번에 끝나는 게 아니고 앞으로도 계속 배우고 정교화해 나가야 한다는 점에서 비슷하다고 생각한다. 나는 캐글에서 사람들이 가장 많이 참여하기도하고 오리엔테이션격의 프로젝트라 할 수 있는 ‘타이타닉 프로젝트에 참여하기로 했다.


먼저 타이타닉 프로젝트 참여에 있어 목표 설정과 프로젝트 참여에 필요한 탐색적 사전지식 공부이다.  



목표 정의 - 해결해야 하는 문제는 무엇인가?


데이터 사이언스가 어떤 것이고 실제 어떻게 이뤄지는 지 빨리 감을 익히기 위해 온라인 데이터 사이언스 경진대회 캐글에 참여하기로 했다. 가장 오리엔테이션 격이고 유명한 타이타닉 프로젝트에 참여해 보는 것이 목표이다.

https://www.youtube.com/watch?v=8yZMXCaFshs&feature=youtu.be

캐글 타이타닉 머신러닝


탐색적 사전지식 공부


내가 처음 파이썬 기초문법을 배운 방법은 코드 아카데미라는 온라인 수업을 통해서이다. 처음 공부를 시작할 당시 나름 파이썬 기초문법을 가장 쉽게(?) 배우기 위해 국내외 온라인 수업들과 책들을 한동안 비교해봤다. 그냥 읽거나 보는 수업보다 배운 내용을 바로 실습할 수 있는 화면이 제공되고 각 단원마다 간단한 퀴즈가 제공되는 코드 아카데미로 결정했다.


코드아카데미 - 수업 퀄리티는 나쁘지 않았지만 영어로 수업이 진행되는 게 생각보다 불편했다.

교세라 - 동영상 위주의 수업으로 실습화면이 제공되지 않는다.

데이터퀘스트 - 인터랙티브 수업이지만 하나의 코스를 배우기 위해 사실상 연간구독을 해야 한다.

패스트캠퍼스 - 온라인 강의의 경우 역시 실제 연습이 바로 되지 않을 것 같았다.

DS 스쿨 강성희 프리패스 - 기초에서부터 실제 데이터 분석, 머신러닝 알고리즘까지 데이터 사이언스 공부의 전 과정 포함하고 있어 처음부터 결정하기 어렵다.


한 달 이상 코드 아카데미로 파이썬 기초문법과 판다스 라이브러리를 공부하며 모르는 내용은 인터넷과 책을 찾아보며 나름 꼼꼼히 공부했다. 하지만 막상 타이타닉 챌런지의 미션을 보면 도저히 할 수 있을 것 같은 생각이 들지 않는다. 머신러닝을 사용해서 해결하라고? 파이썬도 아직 잘 모르는 데?


The competition is simple: use machine learning to create a model that predicts which passengers survived the Titanic shipwreck.


패스트캠패스의 캐글 1위로 풀어보는 머신러닝 입문 트레이닝 Global Expert가 없었다면 아마 어떻게 해야 할 지 엄두를 내기 힘들었을 것 같다. 일단 이런 시작을 끊을 수 있도록 도와주는 것이 이 강의의 의미인 듯 한다. 하지만 이런 동영상 수업은 동영상을 보는 데 그치지 않고 이해하고 직접 해보지 않으면 원하는 것을 얻기 힘들다.


강의는 타이타닉 프로젝트에서 제공하는 로데이터(Raw data)를 이용해 판다스 라이브러리와 시각화를 미리 연습해 볼 수 있도록 가이드를 제공하는데 이 가이드를 다시 한 번 따라하면서 앞서 공부한 파이썬 문법과 라이브러리를 다시 한번 정리할 수 있었다. 또한, 이렇게 하면서 더도 말고 덜도 말고 딱! 타이타닉 프로젝트에 참여해 볼 수 있을 만큼 준비가 되었다는 자신감이 생긴다.


가이드는 캐글에서 제공하는 노트북 형태로 누구나 볼 수 있게 공개되어 있는데 그냥 읽어볼 수도 있겠지만 가이드 노트북의 우측 상단에 ‘Copy and Edit’을 누르면 캐글에서 제공하는 온라인 코딩환경에서 스스로 파이썬 코드를 실행해가며 공부를 할 수 있다.

101 Pandas Tips for Beginners /Titanic (EN&KR)

101 Data Visualization Tips for Titanic Beginners


파이썬 언어와 판다스 라이브러리에 대한 기초가 없다면 가이드 노트 자체를 이해하는 것이 어려울 수 있기 때문에 미리 파이썬 문법과 라이브러리의 핵심을 간단히 배우는 것을 추천한다. 여러가지 소스 가운데 자신의 스타일에 맞는 방법으로 기초문법을 익히고 해당소스에서 실습으로 제공되는 튜토리얼이든 콜랩이나 주피터 노트북과 같은 별도의 파이썬 실행 환경에서 코드를 그대로 써보거나 나름대로 수정도 하면서 결과를 확인해 보자.


나중에 발견했지만 캐글에서 제공하는 무료수업 과정은 기본 내용이 잘 정리되어 있고 실습도 해 볼 수 있어서 좋다.


* 파이썬 기본문법 소스

파이썬.org - 파이썬 인스톨 및 공식 문서 제공

파이썬 초보 학습자를 위한 4시간에 배우는 파이썬 기초문법 - 비전공자를 위한 기본문법 40가지

캐글 코스 - 파이썬 기초는 물론 판다스, 시각화, 인공지능 초급, 중급 등 다양한 코스를 제공한다.  

점프투 파이썬 - 점프투 파이썬이라는 책의 무료 온라인 버전이다. 나는 책을 처음부터 모두 읽기 부담스러워서 기본문법을 배우면서 궁금한 점을 찾아보기 위한 사전 용도로 사용했다.



파이썬의 방대한 내용을 처음부터 모두 배울 필요는 없다. 우선 파이썬의 넘파이 & 판다스 데이터 분석 라이브러리를 사용하는 데 필요한 기본 문법(자료유형, 함수, 반복문 등) 만큼만 익히고 판다스 라이브러리를 어느정도 쓸 수 있도록 연습하는 게 필요하다. 그리고 캐글과 같은 모의 프로젝트를 비롯해 앞으로 실제 프로젝트를 반복해 나가면서 필요할 때마다 파이썬 문법이나 머신러닝 알고리즘들을 추가로 익히고 확장해 나가는 것이 좋다고 생각한다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari