[머신러닝] Classification

kkiyou·2021년 8월 21일
0

Machine Laerning

목록 보기
7/10

Logistic Regression

  • 분류 알고리즘
  • 지도학습 알고리즘
  • Y가 범주형

선형회귀분석과 달리 반응변수(Y)가 범주형 데이터인 경우 사용하는 기법이다. 즉 분류 알고리즘이다. 각 범주에 속할 확률을 추정한 후, 추정 확률을 분류 기준값(threshold, Cut off)에 따라 분류한다.

Binary Logistic Regression

이진(0/1)형 값을 가지는 반응 변수
p=P(Y=1x1,x2 ... ,xk)p = P(Y = 1 | x_1, x_2 \ ... \ , x_k) => x가 다음과 같을 때 Y를 1로 예측할 확률
log(p1p)=β0+β1x1+ ... +βkxklog(\frac{p}{1-p}) = \beta_0 + \beta_1 x_1 + \ ... \ + \beta_k x_k

  • 설명변수 xkx_k
  • 반응변수 Y = 1 or 0
  • 로그오즈 log(p1p)log(\frac{p}{1-p})
    • Y = 1일 확률이 Y = 0일 확률에 비해 어느정도인지
    • 0p10p1pinf0 \leq p \leq 1 \Rightarrow 0 \leq \frac{p}{1-p} \leq \inf
      p=exp(β0+β1x1+ ... +βkxk)1+exp(β0+β1x1+ ... +βkxk)p = \frac{exp(\beta_0 + \beta_1 x_1 + \ ... \ + \beta_k x_k)}{1 + exp(\beta_0 + \beta_1 x_1 + \ ... \ + \beta_k x_k)} \Rightarrow Sigmoid 함수

로그오즈를 사용하는 이유
p=β0+β1x1+ ... +βkxkp = \beta_0 + \beta_1 x_1 + \ ... \ + \beta_k x_k이면 p는 0~1사이의 값이나, 우측은 실수의 집합이므로 실수 전체의 값을 가질 수 있다. 즉 양 쪽의 범위가 맞지 않는다. 따라서 오즈를 활용해 0~무한대 값을 가지게 해준다.
이 때 로그를 취하면 범위가 실수 전체가 되기 때문에 로그오즈를 사용한다.

exponential

추정 및 예측
가장 정확한 곡선 함수(β^0,β^1)\hat{\beta}_0, \hat{\beta}_1) 추정
새로운 자료 xnewx_{new}가 주어졌을 때
P(Ynew=1)P^new=exp(β^0+β^1xnew)1+exp(β^0+β^1xnew)P(Y_{new} = 1) \Rightarrow \hat{P}_{new} = \frac{exp(\hat{\beta}_{0} + \hat{\beta}_{1}x_{new})}{1 + exp(\hat{\beta}_{0} + \hat{\beta}_{1}x_{new})}
P^newthresholdY^new=1\hat{P}_{new} \geq threshold \Rightarrow \hat{Y}_{new} = 1
P^new<thresholdY^new=0\hat{P}_{new} < threshold \Rightarrow \hat{Y}_{new} = 0

  • 최대우도추정법

  • 경사하강법

로지스틱 회귀 모형은 선형의 결정경계를 가진다.
{(x1,x2):β^0+β^1x1+β^2x2=0}\{(x_1, x_2): \hat{\beta}_0 + \hat{\beta}_1 x_1 + \hat{\beta}_2 x_2 = 0\}

단점: 선형으로 분리할 수 없으면 예측 정확도가 떨어짐

로지스틱 회귀와 오즈비(odds ratio)
오즈비: 관심변수의 가능성
p=e(β0+β1x1+ ... +βkxk)1+e(β0+β1x1+ ... +βkxk)p = \frac{e^(\beta_0 + \beta_1 x_1 + \ ... \ + \beta_k x_k)}{1 + e^(\beta_0 + \beta_1 x_1 + \ ... \ + \beta_k x_k)} p1p(odds)=eβ0+β1x1+ ... +βkxk\Leftrightarrow \frac{p}{1 - p}(odds) = e^{\beta_0 + \beta_1 x_1 + \ ... \ + \beta_k x_k}

나머지 변수를 모두 고정시킨 상태에서 한 변수 X1X_1만 1 만큼 증가시켰을 때, 변화하는 odds의 비율은 eβ1e^{\beta_1} 이다.
odds(x1+1,x2odds(x1,x2)=eβ0+β1(x1+1)+β2x2eβ0+β1x1+β2x2=eβ1\frac{odds(x_1 + 1, x_2}{odds(x_1, x_2)} = \frac{e^{\beta_0 + \beta_1 (x_1 + 1) + \beta_2 x_2}}{e^{\beta_0 + \beta_1 x_1 + \beta_2 x_2}} = e^{\beta_1}

x1x_1만 1만큼 증가하면, 성공(관심범주, Y=1Y=1)에 대한 오즈가 exp(β1)exp(\beta_1)배 변화함

  • β1>0\beta_1 > 0: 관심범주에 속할 확률 증가
    x1x_1변수와 관심범주 간에는 양의 상관관계
  • β1<0\beta_1 < 0: 관심범주에 속할 확률 감소
    x1x_1변수와 관심범주 간에는 음의 상관관계

Naive Bayes(나이브 베이즈)

베이즈 정리를 이용하여 목표변수 Y가 2개의 범주 C1,C2C_1, C_2를 가질 때 특성변수 X의 값을 활용하여 Y의 범주를 예측한다.

X=xX = x로 주어졌을 때 Y의 각 범주에 대한 조건부 확률을 비교하고자 한다.
P[C1x>P[C2x]P[C_1 | x > P[C_2 | x]이면 C1C_1으로 분류하고, 그렇지 않으면 C2C_2로 분류한다.

특징

  • 지도 학습 분류 알고리즘
  • 특성변수가 주어졌을 때 Y 범주의 확률 계산에 베이즈 정리 이용
  • 생성모델(Generative Model)
  • 스팸 메일 분류에 활용
    그러나 현실에서 P[Ckx]P[C_k | x ]를 훈련 자료에서 추정하기 어렵다. 반면 스팸일 확률 P[C1]P[C_1]와 스팸이 아닐 확률 P[C2]P[C_2]일 때 스팸메일인 것 중에서 특성변수(xx)(광고 등과 같이 스팸 메일로 분류할 수 있는 단어)의 확률 $P[x | C_1]와 스팸메일이 아닐 확률 $P[x | C_2]는 상대적으로 예측이 용이하다.

베이즈 정리

P[Ckx]=P[xCk]P[x]=P[xCk]P[Ck]P[x]P[C_k | x] = \frac{P[x \cap C_k]}{P[x]} = \frac{P[x | C_k] P[C_k]}{P[x]}

  • x가 주어졌을 때 특정 범주의 확률: P[Ckx]P[C_k | x]
  • 조건부 확률: P[xCk]P[x]\frac{P[x \cap C_k]}{P[x]}

일 때 P[C1x]>P[C2x]P[C_1 | x] > P[C_2 | x] 여부를 확인함

P[C1x]>P[C2x]P[C_1 | x] > P[C_2 | x]

= P[xC1]P[C1]P[x]>P[xC2]P[C2]P[x]\frac{P[x | C_1] P[C_1]}{P[x]} > \frac{P[x | C_2] P[C_2]}{P[x]}

= P[xC1]P[C1]>P[xC2]P[C2]P[x | C_1] P[C_1] > P[x | C_2] P[C_2]

P[xCk]P[x | C_k]P[Ck]P[C_k]는 훈련데이터를 활용해 쉽게 추측할 수 있다.

n개의 특성변수를 가지는 나이브 베이즈 분류
P[Ckx1,x2...,xn]P[C_k | x_1, x_2 ... , x_n]

= P[Ckx1x2...xn]P[x1x2...xn]\frac{P[C_k \cap x_1 \cap x_2 ... \cap x_n]}{P[x_1 \cap x_2 ... \cap x_n]}

= P[Ck]P[x1Ck]P[x2x1,Ck]...P[xnx1,x2...,xn1,Ck]P[x1,x2...,xn],k=1,2\frac{P[C_k] P[x_1 | C_k] P[x_2 | x_1, C_k] ... P[x_n|x_1, x_2 ..., x_{n-1}, C_k]}{P[x_1, x_2 ... , x_n]}, k = 1, 2

P[x1Ck]=P[x1Ck]P[Ck]\because P[x_1 | C_k] = \frac{P[x_1 \cap C_k]}{P[C_k]}

  • 각각의 특성변수가 모두 독립임을 가정하면 다음과 같음
    P[Ck]P[x1Ck]P[x2x1,Ck]...P[xnx1,x2...,xn1,Ck]P[C_k] P[x_1 | C_k] P[x_2 | x_1, C_k] ... P[x_n|x_1, x_2 ..., x_{n-1}, C_k]

= P[Ck]P[x1Ck]P[x2Ck]...P[xnCk]P[C_k] P[x_1 | C_k] P[x_2 | C_k] ... P[x_{n} | C_k]

\becauseA와 B가 독립이다 = P(AB)=P(A)P(A|B) = P(A)

= P[Ck](Πi=1nP[xiCk]),k=1,2P[C_k] (\Pi^{n}_{i=1} P[x_i | C_k]), k = 1, 2

= (P[Ckx1,x2...xn])P[C_k | x_1, x_2 ... x_n])

  • P[Ck]P[C_k]: k번째 범주에 속할 확률
  • P[xiCk]P[x_i | C_k]: CkC_k이 주어졌을 때 xix_i의 확률
    목표변수가 k번째 범주일 때, 각 특성변수 xix_i가 관찰될 확률
  • Πi=1n\Pi^{n}_{i=1}: 1 ~ n까지 곱해라

그러나, 현실에서 특성변수가 모두 독립이라는 가정은 불가하다. 그렇지만 실제 나이브 베이즈를 적용해보면 예측력이 우수하기 때문에 사용함

P[C1](Πi=1nP[xiC1])P[C2](Πi=1nP[xiC2])P[C_1] (\Pi^{n}_{i=1} P[x_i | C_1]) \geq P[C_2] (\Pi^{n}_{i=1} P[x_i | C_2]) \Rightarrow 범주 1

P[C1](Πi=1nP[xiC1])<P[C2](Πi=1nP[xiC2])P[C_1] (\Pi^{n}_{i=1} P[x_i | C_1]) < P[C_2] (\Pi^{n}_{i=1} P[x_i | C_2]) \Rightarrow 범주 2

장점

  • 데이터의 크기가 커도 연산 속도가 빠르다
  • 학습에 필요한 데이터 양이 적어도 좋은 성능을 보인다.
  • 다양한 텍스트 분류나 추천에 활용한다.

단점

  • Zero Frequency(특정 빈도가 0인 경우)문제와 Underflow(컴퓨터가 계산 가능한 수준보다 너무 작은 숫자가 만들어지는) 문제가 있다. => 라플라스 스무딩 방식으로 극복 가능
  • ★모든 독립변수가 독립이라는 가정이 너무 단순하다.

KNN(K-Nearest Neighbor)

K개의 가장 가까운 이웃 중에서 어떤 범주의 비중이 가장 높은지를 확인하여 분류한다. 따라서 K의 크기를 결정하는 것이 주된 모델 성능 경정 요인이다. 따라서 검증용(Validation)데이터를 활용해 가장 적절한 K를 찾아야 한다.

  • 예컨대 주어진 값이 훈련 데이터에서 n(KNN) = 10일 때 1이 6개 2가 4개였다면 주어진 값을 1로 분류한다.

특징

  • 가장 간단한 지도학습 머신러닝 알고리즘
  • 훈련데이터가 주어지면 저장하는 것이 모델 학습 과정의 전부이다
  • 유사도를 활용한다
  • K의 크기가 작으면 노이즈에 민감하게 반응하여 과적합 문제가 발생한다
  • K의 크기가 너무 크면 자료의 패턴을 파악할 수 없어 예측 성능이 저하된다
    | 
    | \       /  
    |  \     /
    |   \   /
    |    \_/
    | 
    ------------- K
    L     ★     G

거리의 측정
n개의 특성변수를 가지는 자료에서 두 개의 관찰점 a = $(a_2, a_2 ..., a_n)과 b = $(b_2, b_2 ..., b_n)간의 거리를 측정한다.

  • 유클리디안 거리

    d(a,b)=(a1b1)2+(a2b2)2...+(anbn)2d(a, b) = \sqrt{(a_1 - b_1)^2 + (a_2 - b_2)^2 ... + (a_n - b_n)^2}

  • 맨해튼 거리

    d(a,b)=a1b1+a2b2...+anbnd(a, b) = |a_1 - b_1| + |a_2 - b_2| ... + |a_n - b_n|

  • 민코우스키 거리

    d(a,b)=(i=1naibip)1/pd(a, b) = (\sum_{i = 1}^{n} |a_i - b_i|^p)^{1/p}
    - p = 1: 맨해튼 거리
    - p = 2: 유클리디안 거리

자료의 스케일에 차이가 있는 경우 스케일이 큰 특성변수에 의해 거리가 결정될 수 있다. 따라서 각 특성변수 별로 스케일이 유사해지도록 표준화 변환(Z score) 또는 min-max 변환으로 스케일링을 해준 후 거리를 재는 것이 적절하다.

  • Z Score

    z1=(x1xˉ)/Sz_1 = (x_1 - \bar{x}) / S
    ...
    zn=(xnxˉ)/Sz_n = (x_n - \bar{x}) / S

    • xˉ\bar{x}: 평균
    • SS: 표준편차

    평균 = 0, 표준편차 = 1로 변환된다


  • min-max

    ximin(xi)max(xi)min(xi)\frac{x_i - min(x_i)}{max(x_i) - min(x_i)}

    min --------------- max

0개의 댓글