1. 학습 목표
🎯 머신 러닝 모델 중에서 지도학습 - 분류 문제에 대해 집중적으로 살펴보겠습니다.
[수업 목표]
- 분류 문제에 사용하는 성능 지표들을 살펴봅니다.
- 분류 문제 해결에 적합한 머신 러닝 모델을 살펴봅니다.
- 실제 코드를 통해 머신 러닝으로 분류 문제를 해결해봅니다.

분류 모델
정의
- 머신러닝 빌드업 시간에 언급했듯이, 문제와 정답을 함께 주고 학습하는 지도 학습의 문제는 크게 분류와 예측 두 가지로 나눌 수 있습니다.
- 정답에 해당하는 타겟 변수가 범주형 변수인 경우에 우리는 분류 모델이라고 합니다.
- 연속형 변수에 대해서 분류 모델로 접근하고 싶다면 타겟 변수를 범주형으로 변환하여 수행 가능합니다.
성능 지표

-
혼동 행렬(Confusion Matrix)
- 모델이 예측한 결과와 실제 결과를 비교하여 만들어진 행렬(테이블)
- 모델의 분류 성능을 한 눈에 알 수 있어서 편리
-
구분
- 실제 - 모델 순입니다.
- TP(True Positive): 실제 양성을 양성으로 분류한 경우
- FP(False Positive): 실제 음성을 양성으로 분류한 경우
- TN(True Negative): 실제 음성을 음성으로 분류한 경우
- FN(False Negative): 실제 양성을 음성으로 분류한 경우
-
분류 모델의 성능 지표
-
정확도(Accuracy): 전체 데이터 셋에서 실제 값을 제대로 맞춘 비율
Accuracy=TP+TN+FP+FNTP+TN
-
정밀도(Precision): 모델이 양성으로 분류한 값 중에서 실제 양성의 비율
Precision=TP+FPTP
-
민감도(Sensitivity): 실제 값이 양성인 데이터 중에서 양성으로 분류한 비율
- 재현율(Recall)이라고도 합니다.
Sensitivity (Recall)=TP+FNTP
-
F1 Score: 정밀도와 재현율의 조화 평균
F1 Score=2×Precision+RecallPrecision×Recall
분류 모형
- 아래 모델들은 분류 문제에 자주 사용되는 모형들입니다.
- 로지스틱 회귀(Logistic Regression)
- K Nearest(K-NN)
- 나이브 베이즈(Naive Bayes)
- 서포트 벡터 머신(Support Vector Machine)
- 랜덤 포레스트(Random Forest)
- 다층 퍼셉트론 (Multi-Layer Perceptron)
로지스틱 회귀 분석 (Logistic Regression)
정의
- 독립 변수의 선형 결합을 이용해서 사건의 발생 가능성(확률)을 예측하는 데 사용되는 모델입니다.
- 타겟 변수가 주로 두 개의 범주(Yes/No)인 경우에 주로 사용됩니다.
- 이름에서 나타나는 것 처럼 Log를 활용한 계산이 들어갑니다.
모델 설명
-
오즈 (Odds)
-
로짓 (Logit)
-
로지스틱 함수
-
선형 회귀식의 결과를 0과 1 사이의 확률값으로 변환하는 함수입니다.
- 선형 회귀식의 결과는 연속형으로 0과 1 사이 범위를 초과할 수 있는데, 이를 로짓 변화를 통해 변환합니다.
-
도출 과정은 블로그를 참고하세요

출처 - https://medium.com/@vikrampande783/derivative-of-sigmoid-and-tanh-ffdea6efb464
P(X)=1+e−(β0+β1X1+...+βnXn)1
-
로지스틱 회귀식은 다음과 같이 변형할 수 있습니다:
1−PP=e(β0+β1X1+...+βnXn)
- 선형회귀 값이 0인 경우 → P(X) = 0.5
- 값이 0보다 크면 P(X)가 1에 가까워지고, 0보다 작으면 P(X)가 0에 가까워집니다.
- 특정 값(Threshold)을 기준으로 값이 높은 경우 1, 그렇지 않으면 0으로 분류합니다.
- X_n의 값이 1만큼 증가하면, 오즈비는 e^beta_n 만큼 증가합니다.
다중 클래스 분류
랜덤 포레스트 (Random Forest)
정의
- 여러 개의 의사결정나무(Decision Tree)를 학습시켜 성능을 높이는 앙상블 학습 방법입니다.
의사결정나무(Decision Tree)

출처 - https://blog-ko.superb-ai.com/3-minute-algorithm-decision-tree/
- 한 번에 하나의 기준으로 데이터를 두 그룹으로 분류해나갑니다.
- 데이터를 분류할 때는 불순도가 낮아지는 방향으로 분류합니다.
- 불순도:
- 한 집단에 각기 다른 클래스의 비중이 비슷하게 있다면 불순도가 높은 상태입니다.
- 불순도가 낮은 방향 → 두 그룹으로 나눴을 때 각각의 그룹은 비슷한 클래스끼리 묶여 있게 됩니다.
- 스무고개를 생각하시면 이해하기 쉽습니다.
앙상블 (Ensemble)
- 하나의 모델을 사용하는 것이 아닌, 여러 개의 모델을 결합하여 모델의 성능을 높이는 방식입니다.
- 예시
- 배깅 (Bagging)
- 부스팅 (Boosting)
랜덤 포레스트 (Random Forest)

- 설명
- 여러 개의 의사결정나무를 결합하여 분류 및 예측 모델에 활용하는 모델로 대표적인 앙상블 모델 중 하나입니다.
- 각각의 트리를 학습할때마다 Feature의 일부만을 랜덤하게 선택하여 사용합니다.
- 분류 모델의 경우, 여러 의사결정나무에서 분류한 결과에서 투표를 통해 최종 결과를 선택합니다.
- Feature Importance
- 각각의 의사결정나무를 학습할 때 어떤 Feature가 많이 사용되었는지에 따라서 모델 생성에 중요하게 동작한 Feature를 선정할 수 있습니다.