Linear Regression with multiple variables


multiple features

다중 feature와 다중 variable에 대해서 어떻게 linear regression을 적용하는지 알아 보겠다.

Gradient descent for multiple variables

아래와 같이 각각을 편미분(partial derivative)해서 동시에 업데이트하면서 최적화를 시키면 된다.
중요한것은 $X_0$를 항상 0으로 인지하기 때문에 $\theta_0$가 달라지지 않게 된다.
따라서 new algorithm 공식과 같이 간소화하여 작성할 수 있게 된다.

Gradient descent in pratice 1: Feature Scaling

이장에서는 pratical trick을 학습한다. 그것은 gradient descent를 잘 동작하게 하는 알고리즘이다.

서로다른 scale을 가지는 feature들에 대해서 feature scale을 비슷하게 해줄 경우 
Gradient descent algorihtm을 실행 했을때 좀 더 빠르게 converge 하게 된다.

서로다른 scale일 경우 아래의 그림과 같이 매우 Cost function J의 contour skinny elliptical shape을 가지게 된다.
이때 약간의 trick을 적용하면 좀더 circle스럽게 되고 금방 converge 된다.

좀 더 일반적으로 수식을 정리해 보자.

간단 수업 퀴즈

Gradient descent in practice 2: Learning rate

또 다른 TIP인 Learning Rate에서 다루겠다.

두가지 관점이 존재한다.

  • Debugging: How to make sure gradient descent is working correctly.
  • How to choose learning rate a.

아래의 그래프를 보면 이전에는 X축이 $\theta$ 이지만 현재는 그것이 아닌 interation이다.
$J(\theta)$ should decrease after every interation.
400 interation 이후로는 converge step의 정도가 줄어들게 된다.

하지만 이렇게 얼마만큼의 iteration 이후에 converge 될지를 예측하는 것은 매우 어려운 작업이다.



대부분의 경우에 대해서 x axis를 # of iterations로 설정 함으로써 gradient descent의 learning rate을 조절 할 수 
있게 된다.

Features and polynomial regression

적합한 featrue를 선택하는 방법에 대해서 다룬다.

Housing price를 prediction하는 문제에 대해서 생각해 보자.
아래와 같이 frontage와 depth 두개의 feature들이 있다고 생각해보자.
frontage는 앞부분 길이고 depth는 위에서 부터 아래까지의 길이를 의미한다.
따라서 두개의 feature를 그대로 반영해서 쓰는것보단 두개를 하나로 묶어서
$$ Area = frontage \times depth$$
로 계산하는 것이 좋다.

Polynomial regression

Quadratic model: $\theta_0+\theta_1x+\theta_2x^2$
하지만 qudratic model은 타당하지 않다. 왜냐면 다시 값이 내려가기 때문이다.
집 크기가 커진다고 가격이 작아질수는 없기 때문이다.

그럼 다른 삼차함수(cubic function)을 생각해 볼 수도 있다.
$$\theta_0+\theta_1x+\theta_2x^2+\theta_3x^3$$


위와 같이 서로다르게 size 값이 작용하므로 주의 있게 사용 해야 한다.

하지만 cubic 모델을 qudratic 모델의 대안으로 사용하는 것이 아닌 다른 방법을 생각해 볼 수도 있다.
square root(제곱근)함수를 사용 할 수도 있다.
급격히 올라가지만 그렇다고 다시 내려가지는 않게 된다.


+ Recent posts