brunch

You can make anything
by writing

C.S.Lewis

by Tristan Sep 09. 2020

Linear Regression이란

- 두 변수 사이의 선형적인 관계를 추론하기 위한 통계적 방법

Linear Regression을 가장 간단하게 설명하면 Y=ax + b이다.


Linear Regression 모델을 만든다는 것은 Error의 척도(MSE나 MAE 등 - Cost Function)을 가지고 Error의 척도(Cost Function의 값)을 가장 낮추는 a와 b의 값을 최적화 Method(Gradient Descent나 일반해공식 등)를 이용해서 구하는 것이다.


Linear Regression은 매우 간단하면서도 강력해서 머신러닝에서 자주 쓰이는 모델이다.


출처:위키피디아

Linear Regression 모델 단순하지만 이 개념은 다양한 활용범위가 존재한다. 

입력변수의 개수가 늘어나면 Multinomial Linear Regression이 되고

Sigmoid 함수 안으로 들어가면 Logistic Regression이 된다.

그리고 입력변수(X)가 종속변수(Y)와 고차항적인 관계를 가지면 Polynomial Regression이 된다.


Linear Regression 추론의 전제는 다음과 같다.


Linear Regression의 전제

- Linearity

The relationship between the two variables is linear.


- Homoscedasticity

The variance around the regression line is the same for all values of X. 


- The errors of prediction are distributed normally.

deviations from the regression line are normally distributed


참고(http://onlinestatbook.com/2/regression/inferential.html)


1. Cost Function

Linear Regression는 예측값과 실제값의 차이, 즉 Error를 최소화하는 것이다.

그렇다면 Error의 기준을 뭘로 삼을까?

가장 일반적으로 Error의 기준은 Mean Squared Error이다.

그러나 꼭 MSE를 쓸 필요는 없다. Mean Absolute Error를 쓸 수도 있다.

MSE는 Error가 정규분포의 특성을 보일 때 적합하지만 Outlier의 영향을 상대적으로 많이 받는다.

반면에 MAE는 Outlier의 영향을 많이 받지 않는다. 하지만 Machine Learning에서 대용량의 데이터를 다룰 때 Gradient Descent 방식으로 하는 경우가 많은데 이 경우, MSE는 값이 줄어들면서 점점 미분값도 줄어들어 수렴하는데 MAE는 항상 기울기가 일정하기 때문에 최저점으로 수렴이 잘 안 될 가능성이 있다.


이러한 Error의 척도를 Cost Function이라고 한다.(또는 Loss Function 이라고 한다.) 앞에서 말한 MAE와 MSE의 장점을 섞은 huber function도 있고 2차미분이 작은 Error에서 가능한 Log-cosh Function도 있다. Huber function과 Log-cosh는 MAE의 Outlier에 대해 Robust한 특징과 MSE의 Gradient가 최적점 근처에서 줄어듦으로써 더 정밀한 값을 찾을 수 있도록 하는 장점을 결합했다.


Quantile function도 있다. 이 cost function은 Linear Regression의 기본 전제인 예측값의 분산은 항상 일정하다는 것을 바꾸지 않고 Quantile을 이용해서 예측 구간을 표현해준다.


이러한 Cost Function에서 대해서 잘 설명해 놓은 글이 있다.

https://heartbeat.fritz.ai/5-regression-loss-functions-all-machine-learners-should-know-4fb140e9d4b0


2. 최적화 방법

    Linear Regression의 최적해를 구하는 방법은 Cost Function의 Global Minimum을 구하는 것이다. MSE와 MAE는 항상 Convex 함수이다. 따라서 Gradient Method와 해석적으로 구한 값이 항상 같다. Linear Regression의 MAE나 MSE의 Cost function이 항상 Convex하고 유일한 Global Minimum해가 존재한다는 사실을 증명하는 것은 구글링을 하면 쉽게 찾을 수 있다.

    해석적으로 계산을 하면 다음과 같은 식이 나온다.

출처 : https://towardsdatascience.com/analytical-solution-of-linear-regression-a0e870b038d5

해석적인 방법은 정확한 값을 구할 수 있지만 데이터의 크기가 매우 커지면 점점 해석적인 값을 구하기에 시간이 많이 걸리고 메모리 부하가 걸릴 수 있다. 그러므로 Gradient Descent Method를 데이터 크기가 매우 큰 Linear Regression에서는 Gradient Descent를 쓴다.

https://medium.com/@ramsane/learning-rate-in-gradient-descent-what-could-possibly-go-wrong-6e5861494
https://www.geeksforgeeks.org/gradient-descent-in-linear-regression/

3. Regularization(정규화)

    정규화는 Multinomial Linear regression에서 각 feature들의 기울기 값이 너무 많이 복잡해지지 않기 위해서 도입하는 추가적인 Cost라고 볼 수 있다. 여기에는 Cost Function과 마찬가지로 Squared 방식과 Absolute 방식이 있다. 이것을 L2 regularization, L1 regularization이라고 하기도 한다. 각각 따로 따로는 Ridge와 Lasso 방식으로 부르고 둘을 섞으면 Elastic Net이라고 한다.

    Elastic Net의 구현은 기존의 Cost Function에 모든 기울기의 MSE값이나 MAE값에 regularization 계수(alpha)를 곱한다음 더하면 된다. (r은 비율을 조정한다. 1이면 lasso와 같고 0이면 ridge와 같다.)

https://www.cnblogs.com/yangxiaoling/p/10232405.html


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari