상세 컨텐츠

본문 제목

[KMOOC-실습으로배우는머신러닝]3. Classification

멋사 AISCOOL 7기 Python

by dundunee 2022. 11. 21. 17:24

본문

1️⃣ 머신러닝 분류 모델링

1-1. 기계학습

A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, imporves with experiance E

 

1-2. 기계학습 유형

  • 문제 상황(Task)에 따라 크게 3가지로 분류 가능
  • 지도학습 - 분류, 회귀
  • 비지도학습 - 군집화, 이상치 탐지
  • 강화학습

 

1-3. Supervised Learning

  • Training만 잘 학습되었다고 해서 모델 성능이 좋다고 할 수 없다. 꼭 Testing dataset의 성능을 봐야 한다.
  • 함수의 특성을 결정지어주는 하이퍼파라미터들을 잘 튜닝해줘야 한다.
    • 이는 어떤 기준으로 하냐? training dataset을 validation set으로 나누서 하이퍼파라미터 candidate에 대해 검증해본다.

 

1-4. Bias-Variance Tradeoff

  • 모형의 오차라고 하는 것은 모형의 편향성과 모형의 변동성에 의해 결정됨
    • 모형이 복잡하면 변동성이 커지게 되고, 궁극적으로 오차가 증가함
    • 모형이 덜 복잡하면 변동성은 낮아지나 편향이 커지게 되어 모형의 오차가 커지게 된다.

출처: KMOOC-실습으로배우는 머신러닝

→ 오른쪽으로 갈수록 모델의 complexity가 높아짐

  • 모든 모델은 복잡도를 통제할 수 있는 하이퍼파라미터를 갖고 있음
  • 가장 좋은 성능을 낼 수 있는 모델을 학습하기 위해 최적의 하이퍼파라미터를 결정해야함.
  • Bias-Variance Tradeoff에 따라 과적합 및 과소적합 모두 성능이 안좋게 나타날 수 있음

 

1-5. Classification

  • 범주형(categorical) 종속변수: class, label
  • 예시
    • 제품이 불량인지 양품인지 분류
    • 고객이 이탈고객인지 잔류고객인지 분류
    • 카드거래가 정상인지 사지인지 분류
  • 특정 모델이 모든 경우에 대해 항상 좋은 성능을 낸다고 보장할 수 없음
  • 문제 상황에 따라 적합한 모델을 선택해야함

2️⃣ KNN: K-Nearest Neighbors

2-1. 정의

  • “두 관측치의 거리가 가까우면 Y도 비슷하다”
  • K개의 주변 관측치의 Class에 대한 majority voting
    • 다수결에 의한 분류
  • Distance-based model, Instance-based learning
  • “K”는 결정할 수 있는 하이퍼파라미터이다.
  • 굉장히 심플하고 오래전부터 활용되어 왔다
  • 간단하지만 성능이 꽤 괜찮다고 볼 수 있다.

출처: KMOOC-실습으로배우는 머신러닝

 예시를 들자면, 위의 그림에서 초록색 동그라미의 class를 예측하고자 한다면, KNN의 majority voting에 따라 K=3일 때 남자로 분류하게 된다.

출처: KMOOC-실습으로배우는 머신러닝

반면 K에 따라서 분류의 결과가 달라지게 된다. 위의 그림의 경우 K=3이라면 ⭐는 CLASS B로 분류되겠지만, K=6이라면 CLASS A : CLASS B = 4 : 2이므로 CLASS A로 예측하게 된다.

👉 K에 따라 결과가 달라지고, 분류 경계선의 형태가 달라지면서 결국에는 모형의 복잡도로 이어지게 된다. K가 클수록 더 많은 사례를 학습하기 때문에 좀 더 단순한 경계선을 보여줄 것이고, K가 작으면 작을수록 미세한 패턴을 알아보기 때문에 모델의 복잡도가 커지게 된다.

 

2-2. 거리

  • 두 관측치 사이의 거리를 측정할 수 있는 방법
  • 범주형 변수는 Dummy Variable(더미변수)로 변환하여 거리를 계산한다.
    • 예를 들어 변수 X에 Female, Male Class가 들어있더면 이들을 더미변수로 변환한 결과는 X_Female, X_Male 2개가 생길것이며 0 또는 1이 들어가게 된다.
    • 그래서 클래스가 같으면 거리가 같다.
  • 두 점 사이의 거리

출처: KMOOC-실습으로배우는 머신러닝

  • 다양한 거리 측도
    • Eucllidean, Manhtten, Minkowski
    • 일반적으로 Eucllidean Distance가 주로 많이 활용된다. 하지만 측정하는 대상에 대해 완벽하게 독립을 시켜서 거리를 계산하고자 할 때는 Manhatten Distance를 사용하게 된다.

2-3. K의 영향

  • K의 영향이 절대적이며 중요하다
  • K는 KNN의 Hyperparameter이며, 어떠한 거리 measure를 사용할지 결정짓는 역할을 수행하기도 한다.
    • K가 모형의 복잡도를 결정해주는 하이퍼파라미터라면, 거리는 두 관측치들 사이의 거리를 어떤 가정을 갖고 측정할건지를 결정해주는 하이퍼파라미터이다.
  • K가 클수록 Underfitting, K가 작을수록 Overfitting이 된다
  • Validation dataset을 이요해 최적의 K를 결정해야한다.

출처: KMOOC-실습으로배우는 머신러닝


3️⃣ Logistic Regression

선형회귀모형의 Classification 버전이다.

즉, 입력변수와 출력변수간에 선형관계가 있음을 가정한다.

3-1. 배경

💡 다중선형회귀분석

  • 수치형 설명변수 X와 종속변수 Y간의 관계를 선형으로 가정하고 이를 가장 잘 표현할 수 있는 회귀계수를 추정한다.

출처: KMOOC-실습으로배우는 머신러닝

 

3-2. 로지스틱회귀의 필요성

y가 범주형 변수일 때 선형모형을 해결하는 모델은 Logistic Regreesion이다. 그 이유는 linear regression의 output을 어떤 함수를 이용해서 범주형 변수로 변형을 하는데 그 변형에 사용되는 함수 이름이 로지스틱이기 때문에 Logistic Regreesion이 되었다.

다시말해 Logistic Regreesion은 Logistic 함수를 사용하는 Linear regreesion모델이다. 따라서 일반 회귀분석과는 다른 방식으로 접근해야 될 필요성이 있다.

CASE 종속변수의 속성이 이진변수일 때(0, 1)

  • (분류될)확률값(0~1사이의 값)을 선형회귀의 종속변수로 사용하는 것은 타당하지 않다.
    • 선형회귀분석의 우변은 범위에 대한 제한이 없기때문에 우변과 좌변의 범위가 다른 문제점이 발생한다.
    • 또한 하나의 값으로 종속변수가 몰아져가야하는데, 선형회귀분석은 일반적으로 y값은 계속 증가하며, 이렇게 될 경우 오차도 커지게 된다.

📍 로지스틱 회귀분석의 목적

  • 이진형(0/1)의 형태를 갖는 종속변수(분류문제)에 대해 회귀식의 형태로 모형을 추정하는 것

📍 왜 회귀식으로 표현해야하는가?

  • 회귀식으로 표현될 경우 변수의 통계적 유의성 분석 및 종속변수에 미치는 영향력 등을 알아볼 수 있음

📍 로지스틱 회귀분석의 특징

  • 이진형 종속변수 Y를 그대로 사용하는 것이 아니라 Y에 대한 로짓함수(logit funstion)를 회귀식의 종속변수로 사용한다
  • 로짓함수는 설명변수의 선형결합으로 표현된다
  • 로짓함수의 값은 종속변수에 대한 성공확률로 역산될 수 있으며, 따라서 이는 분류문제에 적용가능하다.
  • 시그모이드함수를 기본 가정을 만족하는 함수형태로 사용함

출처: KMOOC-실습으로배우는 머신러닝

  • 손실함수에서는 cross-entropy loss를 사용한다.

출처: KMOOC-실습으로배우는 머신러닝

  • i는 관측치의 인덱스, j는 클래스의 인덱스
  • 즉 실제 클래스의 분류 확률값에다가 로그를 취해 더한 값이 loss이다.
  • 결국 loss를 minimize하게 되면 실제클래스로 분류될 확률을 높여주는 베타를 구할 수 있게 된다

관련글 더보기