머신러닝 입문자가 꼭 알아야 하는 4+1가지 : 프로세스, 라이브러리, 시각화, 피처 엔지니어링, 알고리즘

[Must Have] 데싸노트의 실전에서 통하는 머신러닝
골든래빗 출판사
데싸노트 지음

본격적으로 머신러닝 알고리즘을 다루기 전에 무엇을 어디까지 배워야 하는지 알아두면 두고두고 내비게이션처럼 사용할 수 있습니다. 큰 그림을 이해하면 이후 상세 설명을 이해하는 데 도움이 될 겁니다.

이제부터 머신러닝 입문자가 알아야 하는 4가지를 알려드리겠습니다.

① 머신러닝 프로세스
② 핵심 라이브러리
③ 데이터 시각화 그래프
④ 피처 엔지니어링 기법
⑤ 머신러닝 TOP 10 알고리즘

 


① 머신러닝 프로세스

머신러닝은 주어진 문제를 푸는 일련의 과정을 통틀어 말합니다. 머신러닝 알고리즘으로 문제를 풀려면 데이터가 주어져야 합니다. 전체 과정은 1 데이터 수집 → 2 데이터 전처리 → 3 모델 학습 → 4 모델 평가 → 5 모델 배포 순서로 이뤄집니다. 데이터는 수시로 바뀔 수 있어서 한 번 배포한 모델이더라도 지속적으로 학습해 사용하게 됩니다.

데이터 수집은 머신러닝에 활용할 데이터를 수집하는 단계입니다. 내부뿐만 아니라 필요에 따라서 외부 데이터를 추가로 확보할 수도 있습니다. 캐글(kaggle.com)이나 오픈엠엘(openml.org)과 같은 사이트에서 공개 데이터를 쉽게 구할 수 있습니다.

수집된 데이터를 곧바로 사용할 수 있으면 좋겠으나 대개는 잘못된 값이 들어 있거나 활용하기 불편하게 정리되어 있습니다. 이러한 부분을 수정 및 정리하고 기존 데이터들을 활용해 데이터를 추가로 만들어내는 과정을 데이터 전처리라고 합니다. 피처 엔지니어링도 전처리의 한 과정입니다. 현업에서 좋은 성과를 내려면 이 과정은 필수입니다. 그래서 이 책은 피처 엔지니어링을 각 데이터셋마다 비중 있게 다룹니다. 주로 이 과정에서 실전 노하우를 풀어놓겠습니다.

모델 학습은 준비된 데이터를 머신러닝 알고리즘에 반영해 학습시키는 과정입니다. 하이퍼파라미터를 조절해 모델의 성능을 극대화시키는 과정도 포함됩니다. 이 책에서는 10가지 주요 모델(알고리즘)을 다룹니다.

 모델 평가는 학습이 완료된 모델을 사용해 예측해보고, 결과를 평가하는 단계입니다. 보통 학습된 모델 여러 개를 준비해 비교해보고 가장 좋은 모델을 선정합니다.

모델 배포는 머신러닝 결과물을 활용하는 단계입니다. 예를 들어 예측 모델을 배포해 서비스에 직/간접적으로 활용하거나, 예측 결과물을 대시보드 형태로 시각화해 공개하거나, 모델링을 통해 얻은 인사이트를 유관부서에 전달하는 방식이 될 수도 있습니다.
끝으로 머신러닝 모델이 힘을 발휘하려면 지속적으로 최신 데이터로 재학습하는 작업을 잊으면 안 됩니다. 예를 들어 최신 패션을 학습해 추천하는 모델이 있다고 합시다. 패션은 계절에 따라 해마다 변합니다. 최신 유행 데이터로 학습하지 않으면 더는 최신 패션을 추천하는 능력을 발휘하기 어렵습니다. 따라서 머신러닝 전 과정을 안정적이고 효율적으로 배표 및 유지 관리해야 하는데, 이를 MLOps(Machine Learning Operations)라고 합니다(이 책에서는 MLOps 과정을 다루지 않습니다).

② 핵심 라이브러리

파이썬으로 머신러닝을 수행할 때 유용한 라이브러리가 많습니다. 이 책은 넘파이(Numpy), 판다스(Pandas), 사이킷런(Sklearn), 맷플롯립(Matplotlib), 시본(Seaborn)을 사용합니다. 참고로 딥러닝 분야에서는 텐서플로, 파이토치, 케라스를 사용합니다.

③ 데이터 시각화 그래프

이 책에서는 대부분 시본 라이브러리를 사용해 그래프를 그리고 나서, 그래프 크기나 폰트 등을 변경하는 데 맷플롯립을 사용합니다. 따라서 시본에서 지원하는 그래프를 살펴보겠습니다. 다음 코드를 실행하면 표에 소개된 그래프를 출력하는 실습을 할 수 있습니다. 어렵지 않으니 직접 따라 하며 확인해보세요.

④ 피처 엔지니어링 기법

피처 엔지니어링은 모델 학습에 입력할 데이터를 더 풍성하고 가치 있게 만드는 작업입니다. “Garbage in, garbage out”이라는 말이 있는데, 쓰레기 같은 데이터가 들어가면 쓰레기 같은 결과가 나온다는 의미입니다. 반대로 생각하면, 데이터가 좋을수록 더 좋은 결과를 얻을 수도 있습니다. 그래서 피처 엔지니어링은 머신러닝 프로세스에서 가장 중요한 과정이라고 해도 무리가 없으며, 그만큼 많은 시간과 노력을 들여야 합니다. 방법 또한 무궁무진하기 때문에 여기에서는
간단히 목록만 살펴보고, 추후 실습하며 구체적으로 살펴보겠습니다.

 

기법 설명 유용한 곳 사용하는 장
결측치 처리 데이터가 누락된 부분을 평균, 특정값 등으로 채우는 기법 데이터 누락으로 인해 많은 데이터를 사용하지 못할 때 6장, 8장, 10장
아웃라이어 처리 다른 데이터 무리들과는 크게 벗어나는 경우 아웃라이어를 제거하거나 값을 조정해 튀는 데이터가 없도록 하는 기법 선형 모델과 같이 아웃라이어의 영향에 민감한 모델
바이닝

(Binning)

연속된 수치로 된 데이터를 특정 구간으로 묶는 기법. 예를 들어 나이를 10대, 20대, 30대 등으로 묶는 경우 오버피팅으로 인해 모델 성능이 문제될 때
로그 변환 데이터에 로그를 씌워 왜곡된 데이터를 정규화하는 방법 데이터 형태가 왜곡되어 변환이 필요한 경우. 특히 선형 모델에 유용
더미 변수 (원-핫-인코딩) 문자로 된 범주형 데이터를 0과 1을 사용하는 숫자형 데이터로 변경하는 기법 범주형 데이터 5장, 8장
그룹핑

(Grouping)

고윳값이 너무 많은 범주형 데이터를 특정 그룹으로 묶는 기법. 예를 들어 국가명을 유럽, 아시아, 북아메리카 등으로 그룹화 범주형 데이터에서 고윳값이 너무 많아 더미 변수를 쓰기 곤란할 때 
스케일링 각 변수의 데이터 범위(스케일)가 다를 때, 이를 일정하게 맞춰주는 기법 거리 기반으로 작동하는 모델(K-최근접 이웃, K-평균 군집화) 6장, 12장
날짜 추출 날짜 데이터에서 연/월/일 혹은 요일 등을 추출해 필요한 정보만 사용하는 기법 날짜 데이터의 특정 속성이 중요한 역할을 할 때 11장
텍스트 분할 텍스트로 된 변수에서 특정 부분의 단어를 빼오거나, 특정 기호가 들어간 부분을 기준으로 나누어, 필요한 항목만을 추출하는 기법 텍스트 변수에 불필요한 정보가 많이 뒤섞여 있을 때 9장
새로운 변수 창출 주어진 변수들을 사용해 새로운 변수를 계산해내는 기법. 단순하게는 변수 간의 합과 곱 등을 활용할 수도 있음. 또한 두 지점에 대한 위도/경도가 있는 경우 두 점 간의 거리를 계산하는 등 경우에 따라 다양하게 활용할 수 있음 데이터에 대한 백그라운드 지식이 있을 때 유용함 10장, 11장

⑤ 머신러닝 TOP 10 알고리즘

지금까지 머신러닝 입문자가 알아야 하는 4가지를 알려드렸습니다. 현업에 자주 사용되는 머신러닝 알고리즘과 근본이 되는 알고리즘을 알아두면 좋습니다. 알고리즘 관련해서는 <확실히 알아두면 만사가 편해지는 머신러닝 10가지 알고리즘> 글에 정리해두었으니 참고하시기 바랍니다. 고맙습니다.

권시현(데싸노트)

삼성전자에 마케팅 직군으로 입사하여 앱스토어 결제 데이터를 운영 및 관리했습니다. 데이터에 관심이 생겨 미국으로 유학을 떠나 지금은 모바일 서비스 업체 IDT에서 데이터 사이언티스트로 일합니다. 문과 출신이 미국 현지 데이터 사이언티스트가 되기까지 파이썬과 머신러닝을 배우며 많은 시행착오를 겪었습니다. 제가 겪었던 시행착오를 덜어드리고, 머신러닝에 대한 재미를 전달하고자 유튜버로 활동하고 책을 집필합니다.

현) IDT Corporation (미국 모바일 서비스 업체) 데이터 사이언티스트
전) 콜롬비아 대학교, Machine Learning Tutor, 대학원생 대상
전) 콜롬비아 대학교, Big Data Immersion Program Teaching Assistant
전) 콜롬비아 대학교, M.S. in Applied Analytics
전) 삼성전자 무선사업부, 스마트폰 데이터 분석가
전) 삼성전자 무선사업부, 모바일앱 스토어 데이터 관리 및 운영

강의 : 패스트캠퍼스 〈파이썬을 활용한 이커머스 데이터 분석 입문〉

SNS : www.youtube.com/c/데싸노트

Leave a Reply

©2020 GoldenRabbit. All rights reserved.
상호명 : 골든래빗 주식회사
(04051) 서울특별시 마포구 양화로 186, 5층 512호, 514호 (동교동, LC타워)
TEL : 0505-398-0505 / FAX : 0505-537-0505
대표이사 : 최현우
사업자등록번호 : 475-87-01581
통신판매업신고 : 2023-서울마포-2391호
master@goldenrabbit.co.kr
개인정보처리방침
배송/반품/환불/교환 안내