출처
02 Fundamentals of Machine Learning
- 완벽한 세상에서만 잘 작동된다.
- 관측 에러가 없으며, 일관적이지 않은 관측 또한 없다.
- 랜덤(stochastic) 이벤트가 발생하지 않는다.
- 모든 경우의 수를 다 설명할 수 있는 수준의 많은 데이터를 확보했다.
Decision Tree
error가 있는 데이터에 통계적 기법을 가미해 학습을 할 수 있는 가장 간단한 방법이 Decision Tree
기준이 되는 피처를 정해 데이터셋을 나누고, 나눠진 각각에 대해 다시 피처를 정해 데이터셋을 나누는 작업을 반복해 분류 작업을 수행
어떤 피처를 선택할지 결정하기 위해 Entropy, Information Gain 개념 도입
Entropy
확률 변수의 불확실성을 측정하기 위한 지표
- ex 1) 압정 A를 반복해서 던졌는데, 계속 Head만 나왔다 -> 불확실성이 낮다.
- ex 2) 압정 B를 반복해서 던졌는데, Head와 Tail이 반씩 나왔다. -> 불확실성이 높다.
높은 엔트로피는 그 확률 변수가 높은 불확실성을 지니고 있음을 뜻한다.
$$H(X)=-\sum_xP(X=x)log_2P(X=x)$$
압정 던지기 게임의 경우 $x$는 Head, Tail이 된다.
Conditional Entropy
$$\begin{matrix}
H(Y|X) &=& -\sum_xP(X=x)log_2H(Y|X=x)\
&=& -\sum_xP(X=x){-\sum_yP(Y=y|X=x)log_2P(Y=y|X=x)}
\end{matrix}$$
Information Gain
먼저 전체 엔트로피를 측정해보자.
위에서 정의한 엔트로피 공식을 그대로 사용하면 된다.
$$\begin{matrix}
H(Y) &=& -\sum_{y\in\{+, -\}}P(Y=y)log_2P(Y=y)\\ &=& -{307\over307+383}log_2{307\over307+383}-{383\over307+383}log_2{383\over307+383}
\end{matrix}$$
이번에는 A1, A9이라는 조건을 주고 엔트로피를 측정해보자.
Conditional Entropy 공식을 사용하면 된다.
$H(Y|A_1)=-\sum_{x\in{a, b, ?}}\sum_{y\in{+, -}}P(A_1=x|Y=y)log_2{P(A_1=x)\over P(A_1=x|Y=y)}$
$H(Y|A_9)=-\sum_{x\in{t,f}}\sum_{y\in{+, -}}P(A_9=x|Y=y)log_2{P(A_9=x)\over P(A_9=x|Y=y)}$
우리는 각 노드들의 엔트로피를 구할 수 있으며, 이를 통해 불확실성이 얼마나 개선되었는지를 측정할 수 있다.
$IG(Y, A_i)=H(Y)-H(Y|A_i)$
$IG(Y, A_9)>IG(Y, A_1)$ 임을 알 수 있다. 즉, $A_9$를 기준으로 나눌 때 불확실성이 더 많이 개선된다.
Size of Tree
분기 작업을 반복하면 거대한 트리를 만들 수 있다.
하지만 트리가 너무 거대해지면 학습 데이터셋에는 잘 작동하지만 테스트 데이터셋에서는 잘 작동하지 않는 오버피팅 문제가 발생한다.
- 강의에서는 Decision Tree를 Rule-based 기법의 하나로 소개하며, 오버피팅 문제 때문에 실제 상황에서는 많이 사용하지 않는다고 소개함.
Linear Regression
이제부터 본격적으로 통계를 활용한 머신러닝 기법들이 나옴
Linear Regression은 많은 머신러닝 기법들에 영향을 미친 중요한 기법
강의에서는 주택 가격 예측 데이터셋을 활용한다.
가정 : 주택 가격은 feature values의 linearly weighted sum으로 표현할 수 있다.
$$h:\hat{f}(x;\theta)=\sum_{i=0}^{n}\theta_ix_i$$
$n$ : feature의 수
결국 Linear Regression은 $\theta$를 잘 조정해서 좋은 결과를 내도록 하는 것
수식을 행렬로 표현할 수 있다.
$$X=\begin{bmatrix}
1 & \cdots & x_n^1 \\ \vdots & \ddots & \vdots \\ 1 & \cdots & x_n^D \end{bmatrix}, \theta=\begin{bmatrix} \theta_0 \\ \vdots \\ \theta_n \end{bmatrix}$$
$$h:\hat{f}=X\theta$$
$\hat{f}$는 예측값이고, 실제값은 다음과 같이 노이즈를 포함시켜 정의한다.
- $f=X\theta+e=Y$
Linear Regression의 목표는 실제값과 예측값의 차이를 최소화하는 것이다.
$$\begin{matrix}
\hat{\theta} &=& argmin_\theta(f-\hat{f})^2 \
&=& argmin_\theta(Y-X\theta)^2 \
&=& argmin_\theta(Y-X\theta)^T(Y-X\theta) \
&=& argmin_\theta (\theta^TX^TX\theta-2\theta^TX^TY+Y^TY) \
&=& argmin_\theta (\theta^TX^TX\theta-2\theta^TX^TY)
\end{matrix}$$
- 미분을 통해 극점을 찾는 방식으로 최적화시킬 것이다.
$$\nabla_\theta(\theta^TX^TX\theta-2\theta^TX^TY)=0$$
$$2X^TX\theta-2X^TY=0$$
$$\theta=(X^TX)^{-1}X^TY$$
$X, Y$ 모두 아는 값이므로 $\theta$를 구할 수 있다.
아래 그림은 feature를 하나만 사용하여 예측을 해본 것이다.
Non-Linearity
Linear Regression은 선형이라는 한계 때문에 표현할 수 없는 부분이 있다.
$x$값에 non linearity를 부여해 조금 더 표현력이 높은 모델을 만들 수도 있다.
$$h:\hat{f}(x;\theta)=\sum_{i=0}^n\sum_{j=1}^m\theta_{i,j}\Phi_j(x_i)$$
- 위 식에서는 $\Phi$라는 non-linear function을 사용해 $x_i$를 변형시킨다. $\Phi$로 $x^2, x^3, x^4, ...$ 등을 사용할 수 있다.
위 그림은 $x^2, x^3, ..., x^9$까지 포함하여 나타낸 것이다.
주어진 데이터를 더 잘 표현한 것으로 볼 수도 있으나, Decision Tree에서 주어진 데이터를 잘 표현하기 위해 노드를 늘리는 것이 오버피팅 문제를 일으키듯이, 무작정 non-linearity를 부여하는 것도 오버피팅 문제를 일으킬 수 있다.
'스터디' 카테고리의 다른 글
Logistic Regression(로지스틱 회귀) (0) | 2020.08.18 |
---|---|
03 Naive Bayes Classifier (0) | 2020.08.07 |
01 Motivations and Basics (0) | 2020.08.07 |
사이파이로 공부하는 확률분포 (0) | 2020.05.19 |
6. 피지엠파이(pgmpy)로 공부하는 확률론: 베이즈 정리 (0) | 2020.04.28 |