goormNLP [Multiple Variable Linear Regression]
Auspice by Goorm, Manage by DAVIAN @ KAIST
Lecture: Linear regression with multiple variables
2022-01-25
지난번 포스팅에는 하나의 독립 변수 $x$에 대해서 하나의 종속 변수 $y$ 사이의 관계를 알아보는 simple linear regression에 대해서 실습을 하였다.
이번 포스팅에서는 다양한 입력 변수들을 다루는 multiple linear regression 에 대해서 알아볼 예정이다.
Multiple features
기존 하나의 변수를 가진 simple variable은 아래와 같다.
그리고 이번에 진행한 여러개의 변수를 가진 multiple variables은 아래와 같다.
스케일링 되지않은 데이터를 이용하여 Regression에 적용한다면 loss가 발산이 될 것이다.
그러므로 모델에 적용 전 데이터들을 Feature Scaling을 통해 비슷한 스케일로 조정을 해주어야 한다.
Feature Scaling은 $0<=X<=1$, $-1<=X<=1$과 같은 범위로 나오게 되며,
데이터들의 MIN, MAX를 이용한 방법과 데이터들의 MEAN, STD를 이용한 Normalization이 있음.
Polynomial Regression은 항이 여러 개인 가설 함수로 결과를 예측하는 방법이다.
서로 다른 두 Feature를 하나의 Feature로 만들어서 해당 Feature를 입력으로 2차 이상의 함수를 예측하는 것이다.
Practice
실제로 예측을 하고자 할 때 보통 하나 이상의 변수들을 고려해야 한다.
예를 들면 집 값을 예측을 하고자 한다면 집의 크기, 주변의 편의 시설, 위치, 화장실의 개수, 건축 년도 등등 고려해야할 변수들이 많다.
이번 포스팅에서는 다양한 입력 변수 들을 다루는 Multiple linear regression 예시를 들어 볼 것이다.
사용한 데이터셋: 자동차의 여러 기술적인 사양들을 고려하여 연비를 예측하는 auto miles per gallon(MPG) dataset.
Accerlation, model_year => 양의 상관관계.
나머지 => 음의 상관관계.
위와 같은 상관관계를 통해서 Linear model이 연비를 예측하는데 충분함.
우리가 찾고자하는 모델: \(\hat{y} = w_0 + w_1x_1 + w_2x_2 + ... + w_dx_d\).
맨 앞에 $x_0 = 1$을 추가했었기 때문에 $\mathbf{X}$의 맨 왼쪽 행렬은 1로 이루어져 있음.
cost function: $L(\mathbf{y}, \hat{\mathbf{y}}) = \frac{1}{N} \sum_{i=1}^N (y^{(i)} - \hat{y}^{(i)})^2$
gradient descent를 이용하여 weights를 찾은 결과 loss가 무한대를 넘어가서 오류가 발생함.
=> 입력 변수들 중에 특정 값들이 너무 커서 일어난 결과임. Feature scaling을 통해 데이터 전처리를 진행하면 해결됨.
$x’ = \frac{x - \min(x)}{\max(x)-\min(x)}$
만든 모델이 얼마나 정확한지 알아보기위해, Regression 문제에서 주로 사용되는 두개의 기본 지표를 사용함.
- Mean absolute error(MAE)
${MAE}(\mathbf{y}, \hat{\mathbf{y}}) = \frac{1}{N} \sum_{i=1}^N \left\vert y^{(i)} - \hat{y}^{(i)}\right\vert$
- Root mean squared error(RMSE)
${RMSE}(\mathbf{y}, \hat{\mathbf{y}}) =\sqrt{ \frac{1}{N} \sum_{i=1}^N (y^{(i)} - \hat{y}^{(i)})^2}$
댓글남기기