현업에 바로 적용하는 데이터 사이언스와 머신러닝 기초
데이터 분석에는 오랫동안 관심이 있었다. 학부와 석사 과정에서 통계, 계량경제, 연구방법론 수업을 여럿 들어왔고, STATA 같은 통계 툴도 배웠다. 회사에서도 엑셀 피봇 테이블과 STATA를 열심히 굴려가며 예쁜 표와 그래프 만드는 일을 해왔다. 그럼에도 머신러닝, 데이터 사이언스와 같은 단어는 멀게만 느껴졌다. 대학 입학 후로는 내가 수학을 잘한다는 생각을 접었고, 문과생 트랙을 탔고, 프로그래밍을 해본 적도 없었기 때문이다.
그런 내가 데이터 사이언스를 배워야겠다고 생각했던 건, 스타트업을 다니면서 했던 다양한 업무 중 가장 재미를 느꼈던 일에서 전문성을 키우고 싶었기 때문이다. 데이터를 분석하는 업무가 내게 잘 맞았고, 항상 데이터와 기술 관련 업무에 대한 갈증이 있었다. 짧은 시간 내에 확실한 결과를 보고, 나태해지는 나를 잡아줄 스케줄이 정해진 오프라인 강좌를 수소문했고, 지인으로부터 DS School을 추천받았다.
4주간 매주 일요일 5시간씩 수업하는 DS School의 데이터 사이언스 입문반 수업을 듣고, 수업 후에도 5시간가량 복습하는 시간을 가졌다. 결론부터 말하자면 매우 만족스러운 한 달이었다. 가장 큰 소득은 다음의 명제를 깨달은 것이었다.
데이터 사이언스가 엄청 어려운 게 아니구나.
나도 머신러닝 할 수 있고,
현업에 바로 쓸 수 있구나.
데이터를 분석하는 과정은 다음의 세 단계를 거친다.
1. 가설 수립
2. 가설 검증
3. 검증 결과 예측
우리가 갖고 있는 일반적인 상식이나 특정 문제에 대한 배경 지식을 바탕으로 가설을 세우고, 갖고 있는 데이터를 통해 그 가설이 참인지 거짓인지 검증한다. 그 가설 검증 결과에 따라 새로운 데이터에 대해 예측할 수 있다.
예를 들어보자. 어떤 은행이 10만 고객의 대출 데이터를 갖고 있다고 하자. 그 데이터 셋에는 10만 명의 연소득, 재산, 직업, 신용등급 등의 각종 정보가 있고, 그들이 대출 상환을 했는지 안 했는지에 대한 정보가 있다. 이 데이터를 가지고 대출 상환을 하는 사람의 패턴을 찾을 수 있다. 예컨대, 연소득 5천만 원 이상인 사람들의 대출 상환 비율이 80%, 5천만 원 이하인 사람들의 대출 상환 비율이 30%라면, 연소득 5천만 원을 기준으로 대출 상환 가능성이 높은 그룹과 그렇지 않은 그룹으로 나눌 수 있을 것이다. 이렇게 각각의 정보가 대출 상환 가능성에 영향을 주는지 알아보고, 영향을 주는 기준점이 어디인지 알게 되면 가설 검증이 끝난다. 그 결과를 바탕으로 새로운 고객 정보를 받았을 때 그 사람의 대출 상환 가능성을 예측해 볼 수 있다.
이러한 일련의 과정을 우리는 친숙한 엑셀을 통해서 할 수 있다. 피봇 테이블을 활용해 각 팩터(독립변수)가 결과(종속변수)에 영향을 미치는지 검증해보고, 유의미한 팩터에 대해 IF문을 작성해 직접 예측값을 구하면 된다.
그렇지만 이 과정이 매우 지난하고 시간이 오래 걸릴 것이라는 건 누구나 짐작할 수 있을 것이다. 여기서 데이터 사이언스와 머신러닝의 도움을 받을 수 있다. Python이라는 프로그래밍 언어를 통해 데이터 전처리, 분석, 시각화 과정을 보다 효율적으로 할 수 있고, 머신러닝 라이브러리 scikit-learn을 통해 데이터 학습과 예측을 몇 줄의 코드로 끝낼 수 있다.
DS School 데이터 사이언스 4주 과정에서 배운 내용을 아주 간략히 정리하면 다음과 같다.
1. 데이터 분석 기초
- 데이터 분석의 과정: 가설 수립 -> 가설 검증 -> 예측
- 데이터의 타입: 문자형(string), 숫자형[정수형(integer), 실수형(float)], Bool [True , False]
- 변수의 종류: 독립변수(x, feature), 종속변수(y, label)
- 데이터 전처리: 문자열 인코딩, 빈 값 채워 넣기, 날짜/시간 데이터 처리 등
2. Python을 활용해 데이터를 효율적으로 다루기
- 파이썬 기초 문법과 기능: 연산, indexing, slicing, list, formatting, 제어문(if문, for문), 함수 등
- Pandas 패키지를 활용한 데이터 분석: 행렬 검색, 색인, 행렬 추가/수정/삭제, 피봇 테이블 등
- Seaborn과 matplotlib 패키지를 활용한 데이터 시각화: barplot, countplot, pointplot, distplot, scatterplot 등
4. 인공지능 알고리즘을 활용한 데이터 학습 및 예측
- 머신러닝 라이브러리 scikit-learn 활용
- Decision Tree와 Random Forest 알고리즘 원리 이해 및 활용
- 알고리즘 퍼포먼스를 높이기 위한 각종 테크닉
5. 세계적인 데이터 사이언스 경진대회 Kaggle 참가 및 상위 10% 진입
Python과 머신러닝을 활용한 데이터 사이언스의 적용범위는 무궁무진하다. 금융권에서 신용등급 책정, 이커머스에서 소비자 구매 예측, 상품 추천 및 발주, 배송 예측, 스마트 팩토리에서의 결함 예측 등 거의 모든 분야에서 쓸 수 있다.
특히 DS School 수업의 강점은 실전 위주의 강의로, 수업 후 바로 현업에 바로 적용해볼 수 있다는 것이다. 어려운 이론 설명은 실습 사이사이에 필요할 때에 적절히 배치하여 이론과 실제를 통합적으로 이해할 수 있게 구성되어 있다. 데이터와 기술에 관심이 있고, 배움에 대한 열정이 있는 사람이라면 강력하게 추천하고 싶다.