Search
📝

07. ML Workflow - Modeling

Created
2023/06/28 16:00
Tags
data science
machine learning
kaggle
머신러닝 모델링 : 주어진 학습 데이터로 얻은 정보로 학습하지 않은 데이터에 대해서 예측을 할 수 있는 시스템.
머신러닝 모델링 과정에서 feature vector를 이용하여 학습을 진행합니다.
학습(learning)의 과정은 모델마다 달라집니다.
문제 정의에 따라 모델도 달라집니다. e.g. 분류 → Naive Bayes, Logistic Regression, ... 회귀 → Linear Regression, Random Forest, ... 클러스터링 → K-means, Hierarchical Clustering, ...
대부분의 머신러닝 문제가 예측 모델(predictive model)을 사용합니다.
예측 모델은 대부분 분류/회귀 문제를 풀게 됩니다.
앞에서 사용한 Iris 예시를 다시 가져와서 설명해봅니다.

예측 모델 학습

[RECAP] Iris dataset을 3개의 Species로 구분하는 문제인 “분류(Classification)”로 정의하였습니다.
분류 문제를 풀기 위해서 간단한 분류 모델인, Linear Classifier를 사용해보도록 하겠습니다.
위 그림은 Linear Classifier를 이용해 4차원 feature space에 표현되는 iris dataset을 3가지로 분류한 모습입니다.
경계선(decision boundary)를 기준으로 데이터가 분류되고 있습니다.
이러한 구분선을 찾아주는 방식이 Linear Classifier라는 모델입니다. (사실은 구분선보다 더 고차원적인 개념인 hyperplane입니다)
이렇게 구분선을 찾기 위해서는 선을 결정하는 parameter(또는 weight)를 찾아주면 됩니다. (예를 들어, y=ax+by = ax + b 라는 식을 생각해보면 aabb를 정하면 직선 하나가 결정됩니다.)
즉, Linear Classifier로 Iris dataset을 3개의 Species로 분류하는 문제는 적절한 구분선 2개를 찾아주는 것이 됩니다. 그 구분선은 적당한 숫자를 찾는 문제가 됩니다. 그래서 이 숫자들을 찾는 것이 목표입니다!
그래서 컴퓨터는 이러한 숫자를 찾기 위한 방식으로 학습을 진행하게 됩니다.

모델 성능 개선

만약, 위의 선이 잘못 구해졌다면 어떻게 될까요?
그림 2. 성능이 안좋은 분류기
원래 노란색 영역에 있던 경계선으로 빨간색 데이터를 분류했었는데, 새롭게 그어진 빨간선을 기준으로 빨간색 데이터(e.g. setosa)를 분류하게 되면 어떻게 될까요?
이전보다 더 많은 연두색, 파란색 데이터들을 빨간색으로 잘못 분류하게 됩니다!
이렇게 학습이 잘 되지 않은 것(= 적절한 숫자를 못 찾은 것)을 확인하기 위해서는 평가 기준이 필요합니다!
분류에서 주로 사용하는 평가 기준은 “정확도(Accuracy)”가 있으면 정확도는 전체 데이터 중에 모델이 맞춘 데이터의 비율을 의미합니다.
accuracy=# of (true = pred)Naccuracy = \frac{\#\ of \ (true\ =\ pred)}{N}
예를 들어, 그림 1에 나타낸 모델의 정확도가 0.86이었다고 하면 그림 2에 나타낸 모델의 정확도는 이보다 좀 낮은 0.81 정도가 될지도 모릅니다.
머신러닝 모델은 그림 2에서 찾았던 숫자들을 그림 1의 숫자들로 점차 바꿔가는 과정이 필요합니다!
즉, 정한 평가 기준을 가지고 점차 좋은 점수를 내는 것이 중요합니다! 학습의 목표라고도 볼 수 있습니다!

성능 평가 지표

분류의 평가 기준에는 정확도만 있을까요?
분류의 평가 지표(Evaluation Metric)에는 Accuracy, Precision, Recall, F1-score, AUC, MCC, Quadratic Kappa score 등 많은 지표가 있습니다.
정의한 문제를 머신러닝 모델이 잘 예측했는지를 알기 위해서는 적절한 평가 지표가 설정되는 것이 중요합니다.
이 중에 하나를 선택했다면, 해당 성능이 설정한 목표(기준 점수)에 도달할 때까지 학습을 진행합니다.

요약

머신러닝 모델링, 주어진 문제를 잘 해결하는 시스템을 구축하는 것을 말합니다.
분류 문제를 Linear Classifier로 풀었다고 했을 땐, 적당한 숫자를 찾는 문제가 됩니다.
여러가지 모델들이 존재할 때, 어떤 모델이 더 좋은 성능을 내느냐를 말하려면 “평가 지표”가 필요합니다.
머신러닝 모델링이라는 것은 결국 지정한 평가 지표를 기준으로 성능을 계속해서 향상시켜 나가는 과정입니다.

Hands-on

1.
“Linear”라는 개념에 대해서 찾아서 정리해보세요.
2.
강아지 사진 1000장, 고양이 사진 1000장이 있습니다. 이 2000장의 사진을 강아지/고양이로 분류하는 문제를 풀려고 합니다. 학습한 모델이 예측한 결과로 강아지 사진 566장, 고양이 사진 734장을 제대로 분류하였습니다. 이 때 Accuracy는 얼마일까요?