2. Supervised - Regression
Multivariate Linear Regression 다중 선형 회귀
training example : i=1~m
features(독립변수의 수) : j=0~n
Feature Scaling의 필요성
ㅎfearture value, x가 식에 남음으로써 x의 범위에 따라 θ의 update정도, step size가 달라지므로
Why Feature Scaling?
Machine Learning Algorithm은 모든 변수들을 '숫자'로만 인식하므로
같은 의미더라도 2.5m와 250cm는 확연히 다른 수치가 된다.
즉, feature scaling은 단위를 없애는 과정
1) 독립변수들의 구간을 표준화하는 데이터 전처리 작업
2) to speed up gradient descent
Debugging Automatic Convergence Test
iteration을 함에 따라 J(θ)의 변화를 plotting하여 적절한 𝜶을 찾아나간다
1. 어느 수준으로 learning rate 𝜶값을 정해야 그래프 개형을 분석할 수 있는지
2. 어느 수준으로 ε (threshold)을 정해야 Convergence로 인정할까? (보통 ε = 10^(-3) 수준으로 함)
α=0.001, 0.003, 0.01, 0.03, 0.1 에 대한 J(θ) plot을 하여 개형에 따라 적절한 α값을 결정한다.
하지만 α가 또 너무 작아지면 연산이 너무 느려서 비효율적이다!
Normal Equation
gradient descent와 다르게 iteration이나 α값의 변동없이 한번에 optimal-value를 구할 수 있다
design matrix X
[m*(n+1)] : n개의 features에 대한 m개의 training examples로 하나의 matrix 표현
이때의 θ는 Cost Function을 최소화할 때의 θ값이며 (n+1)*1꼴의 vector
caution.이때 X'X가 invertible하지 않는다면?
1) 몇몇의 feature들을 없앤다
2) regulation
Gradient Descent와 Normal Equation 비교
normal equation이 n값이 커질수록 느려지기는 하지만 n=100~1,000까지는 괜찮다!