brunch

You can make anything
by writing

C.S.Lewis

by 박경아 Sep 16. 2022

4. 머신러닝 모델링 과정

[마케터를 위한 머신러닝, 딥러닝 사전]

지난 글에서는 머신러닝이 학습하는 방법과 머신러닝 모델링이 무엇을 의미하는 지 알아보았다. 이번 글에서는 본격적으로 개별 알고리즘들에 대해 알아보기 전에 일반적으로 머신러닝 모델링 과정은 어떻게 이뤄지는지 한 번 알아보도록 하자.


데이터 분석 프로세스는 여러가지 방법론이 있을 수 있지만 대체적으로 분석 목표를 정의하고, 데이터셋을 준비해 전처리와 분석을 하고, 모델링을 적용해, 이를 평가하고 수정, 배포하는 과정으로 이뤄진다. 데이터 분석 프로세스가 낯선 분들은 예전에 쓴 이 글을 참고해 봐도 좋을 것 같다. 오늘은 이 단계들 가운데서도 머신러닝 알고리즘을 적용하고 평가하는 머신러닝 모델링 부분에 초점을 맞춰 이야기 해 보고자 한다. 



머신러닝 모델링 과정


데이터셋을 준비하고 전처리와 분석이 끝났다면 지난 시간에 배운대로 이제 데이터 패턴을 일반화하기 위한 머신러닝 알고리즘을 적용하게 된다. 누군가에 의해서 만들어진 머신러닝 알고리즘 혹은 모델에 내 데이터를 학습시켜 보는 것이다.


참고로 머신러닝 알고리즘은 지난 번 예로 든 것처럼 강아지 급식량이나 고객 생애가치(LTV)와 같이 실수값을 예측하는 회귀(Regression)와 개냐 고양이냐 혹은 캠페인에 반응할 지 안할 지 클래스를 예측하는 분류(Classification)로 나눌 수 있다. 이들 회귀와 분류는 머신러닝에게 예측에 관련될 것으로 보이는 요인과 이에 대한 정답 데이터를 모두 주고 학습시키는 지도학습이다. 반면 데이터만 주고 정답은 주지 않고 알아서 패턴을 발견해 보라는 비지도학습도 있다.


머신러닝에게 데이터를 학습시키는 모델링 과정은 1) 우선 어떤 모델을 사용할 지 정하고 2) 머신러닝에 데이터를 학습시키고 3) 검증 혹은 테스트 데이터를 예측해서 4) 평가하는 것이다. 실제로 데이터 분석을 해 보면 모델링보다 오히려 데이터 전처리와 탐색적 데이터 분석에 시간이 걸리는 경우가 더 많은데, 데이터를 요리조리 뜯어보고 어떤 피처를 선정할지, 어떤 알고리즘을 적용할 지 탐색하는 단계라 할 수 있다. 


https://blogs.nvidia.co.kr/2018/09/03/supervised-unsupervised-learning/



사이킷런 라이브러리로 모델링하기


실제로 모델을 불러와 적용하는 모델링 과정은 오히려 간단한데, 파이썬의 머신러닝 라이브러리인 사이킷런은 거의 모든 머신러닝 알고리즘에 대해 fit, predict, score라는 함수를 지원한다. 간단히 모델을 불러와 데이터에 훈련시키고(fit), 테스트 데이터에 적용하고(predict), 점수를 매길 수 있는 것이다(score).


사이킷런 라이브러리로 모델링하기 예시


물론 이렇게 한 번 알고리즘을 적용하고 평가했다고 모델링이 끝난 것은 아니다. 성능을 개선해 나가기 위해 여러가지 알고리즘들을 테스트해 볼 수도 있고, 각 알고리즘의 하이퍼 파라미터들을 테스트 해 볼 수도 있다. 또한, 성능을 평가하는 과정에서 이전 단계인 데이터 준비 혹은 EDA 단계로 돌아가 분석을 하고 다시 알고리즘들을 적용하는 과정을 반복할 수도 있다. 



셀프 서브드툴로 모델링하기


래피드마이너MS 머신러닝 스튜디오와 같은 셀프 서브드툴에서도 코딩 블록들을 끌고와 간단히 머신러닝 모델링을 해볼 수 있다. 이들 셀프 서비스툴 역시 데이터를 훈련 데이터와 검증 데이터로 분할하는 split 블록, 모델 훈련을 위한 train, score 블록들을 이용해 모델링을 해 볼 수 있다. 


MS 머신러닝 스튜디오를 이용한 모델링 과정 예시


셀프 서비스툴들은 코딩없이 머신러닝 모델링을 하기 위한 좋은 툴이지만, 다만 이를 위해서는 데이터 분석 프로세스와 알고리즘들에 대한 대략적인 이해가 필요하고 해당 플랫폼이 어떤 체계 혹은 블록들으로 이뤄져 있는 지 좀 공부해 둘 필요가 있을 것이다. 


다음 글에서는 모델링 과정에서 생각해봐야 할 좀 더 구체적인 문제들 - 어떤 것을 테스트 데이터로 할 것인지, 어떤 모델을 좋다고 할 것인지, 그리고 이를 수치화하기 위한 평가 지표들에는 어떤 것이 있는지 알아보도록 하자. 


이전 03화 3. 머신러닝이 학습하는 법
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari