[ML] 머신러닝 특강 - 분류 분석

Hyunjun Kim·2024년 12월 8일

Machine Learning

목록 보기
3/11

1. 학습 목표

🎯 머신 러닝 모델 중에서 지도학습 - 분류 문제에 대해 집중적으로 살펴보겠습니다.

[수업 목표]

  • 분류 문제에 사용하는 성능 지표들을 살펴봅니다.
  • 분류 문제 해결에 적합한 머신 러닝 모델을 살펴봅니다.
  • 실제 코드를 통해 머신 러닝으로 분류 문제를 해결해봅니다.




분류 모델

정의

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

성능 지표

  • 혼동 행렬(Confusion Matrix)

    • 모델이 예측한 결과와 실제 결과를 비교하여 만들어진 행렬(테이블)
    • 모델의 분류 성능을 한 눈에 알 수 있어서 편리
  • 구분

    • 실제 - 모델 순입니다.
    • TP(True Positive): 실제 양성을 양성으로 분류한 경우
    • FP(False Positive): 실제 음성을 양성으로 분류한 경우
    • TN(True Negative): 실제 음성을 음성으로 분류한 경우
    • FN(False Negative): 실제 양성을 음성으로 분류한 경우
  • 분류 모델의 성능 지표

    • 정확도(Accuracy): 전체 데이터 셋에서 실제 값을 제대로 맞춘 비율

      Accuracy=TP+TNTP+TN+FP+FN\text{Accuracy} = \frac{TP + TN}{TP + TN + FP + FN}
    • 정밀도(Precision): 모델이 양성으로 분류한 값 중에서 실제 양성의 비율

      Precision=TPTP+FP\text{Precision} = \frac{TP}{TP + FP}
    • 민감도(Sensitivity): 실제 값이 양성인 데이터 중에서 양성으로 분류한 비율

      • 재현율(Recall)이라고도 합니다.
        Sensitivity (Recall)=TPTP+FN\text{Sensitivity (Recall)} = \frac{TP}{TP + FN}
    • F1 Score: 정밀도와 재현율의 조화 평균

      F1 Score=2×Precision×RecallPrecision+Recall\text{F1 Score} = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}}



분류 모형

  • 아래 모델들은 분류 문제에 자주 사용되는 모형들입니다.
    • 로지스틱 회귀(Logistic Regression)
    • K Nearest(K-NN)
    • 나이브 베이즈(Naive Bayes)
    • 서포트 벡터 머신(Support Vector Machine)
    • 랜덤 포레스트(Random Forest)
    • 다층 퍼셉트론 (Multi-Layer Perceptron)



로지스틱 회귀 분석 (Logistic Regression)

정의

  • 독립 변수의 선형 결합을 이용해서 사건의 발생 가능성(확률)을 예측하는 데 사용되는 모델입니다.
  • 타겟 변수가 주로 두 개의 범주(Yes/No)인 경우에 주로 사용됩니다.
  • 이름에서 나타나는 것 처럼 Log를 활용한 계산이 들어갑니다.

모델 설명

  • 오즈 (Odds)

    • 도박사들이 주로 쓰는 표기이며 성공 확률이 실패 확률에 비해 몇 배 더 높은지를 나타냅니다.

      Odds=P(success)P(failure)=p1p\text{Odds} = \frac{P(\text{success})}{P(\text{failure})} = \frac{p}{1-p}
  • 로짓 (Logit)

    • 오즈에 자연로그를 취한 값입니다.

    • 확률 p에 대해 (−∞,+∞) 범위로 출력값을 조절합니다.

      Logit(p)=ln(Odds)=ln(p1p)\text{Logit}(p) = \ln(\text{Odds}) = \ln(\frac{p}{1-p})

      출처 - 위키피디아

  • 로지스틱 함수

    • 선형 회귀식의 결과를 0과 1 사이의 확률값으로 변환하는 함수입니다.

      • 선형 회귀식의 결과는 연속형으로 0과 1 사이 범위를 초과할 수 있는데, 이를 로짓 변화를 통해 변환합니다.
    • 도출 과정은 블로그를 참고하세요

      출처 - https://medium.com/@vikrampande783/derivative-of-sigmoid-and-tanh-ffdea6efb464

      P(X)=11+e(β0+β1X1+...+βnXn)P(X) = \frac{1}{1 + e^{-(\beta_0 + \beta_1X_1 + ... + \beta_nX_n)}}
    • 로지스틱 회귀식은 다음과 같이 변형할 수 있습니다:

      P1P=e(β0+β1X1+...+βnXn)\frac{P}{1-P} = e^{(\beta_0 + \beta_1X_1 + ... + \beta_nX_n)}
      • 선형회귀 값이 0인 경우 → P(X) = 0.5
      • 값이 0보다 크면 P(X)가 1에 가까워지고, 0보다 작으면 P(X)가 0에 가까워집니다.
        • 특정 값(Threshold)을 기준으로 값이 높은 경우 1, 그렇지 않으면 0으로 분류합니다.
      • X_n의 값이 1만큼 증가하면, 오즈비는 e^beta_n 만큼 증가합니다.

다중 클래스 분류

  • 로지스틱 회귀 분석은 이진 분류에 주로 사용되지만, 클래스가 3개 이상인 다중 클래스 분류에도 활용할 수 있습니다.

  • 방법

    1. One-Hot encoding을 통해 N개의 클래스를 N 차원의 벡터로 변환합니다.

    2. 각각의 차원에 대해서 로지스틱 회귀 분석을 수행합니다.

    3. 이때 각 차원의 예측값은 해당 클래스에 분류될 확률에 해당합니다.

    4. 확률이 가장 높게 나온 클래스로 해당 데이터를 분류합니다.

      • 이를 Hard Clustering이라고 합니다.


랜덤 포레스트 (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를 선정할 수 있습니다.
profile
Data Analytics Engineer 가 되

0개의 댓글