gausian mixture

= 쉽게 말해서 데이터 분포를 보았을때, 여러개의 정규분포가 존재한다고 판단하여

정규분포 여러개로 쪼개는 일을 한다.(평균,분산이 다른 여러 정규분포가 모여 하나의 분포처럼 보인다고 판단)

오늘은 Ridge, Lasso, ElasticNet에 대해 간략하게 설명해보고자 한다.

 

우리가 지금까지 사용해온 Machine Learning Algorithm인 Linear Regression은

 

비용 함수인 mse를 최소화하는 방향으로 머신러닝 모델이 학습을 진행하게 된다.

하지만, 칼럼의 개수(독립변수의 개수)가 많아질수록 과적합될 가능성이 높아진다. 따라서,

어느 정도의 "규제"를 줌으로써 과적합되는 것을 방지하는 Ridge, Lasso가 등장하였고,

그 둘을 적절히 혼합하여 사용하는 ElasticNet이 등장하였다.


Ridge

릿지는, 기존 회귀분석의 비용함수에 어떠한 규제를 추가함으로써 진행된다.

다음과 같이  Beta_Hat 부분이 우리가 찾아야 할 점이라고 생각해보자.

회귀 함수의 MSE는 weight^2인 부분들의 미분 = 0인 부분을 찾아나가는 과정이다.

그런데, 최적점인 부분은 과적합될 가능성이 높기 때문에, Ridge를 통해 과적합이 되지 않도록 규제해준다.

원은 각각 세타1,세타2의 0,0을 중심으로 한 다고 생각하면, 

타원과 원이 만나는 지점의 세타1, 세타 2의 값이 각각 해당하는 변수의 가중치가 되겠다.

이 가중치는 아래에서 설명할 LASSO처럼 0으로 만들지는 않지만, 중요하지 않은 변수를 0과 가깝게 만들어

줌으로써 과적합을 방지한다고 생각하면 된다.


LASSO

라쏘 또한 릿지와 마찬가지로 기존 회귀분석의 비용 함수에 규제를 추가하여준다.

릿지는 제곱값들의 합, 라쏘는 절댓값들의 합 규제가 각각 추가된다고 생각하면 된다.

 

절댓값인 점을 통해, 다음과 같이 마름모 형태로 LASSO의 세타들은 표현되게 되고, 최적의 비용 함수 mse는 점차 그 값을 늘려가면서 LASSO와 만나는 점에서 멈춘다. 만나는 지점을 보면, 베타 1이 0인 지점에서 만나게 되어, 베타 1을 상수항으로 갖는 변수는 0이 되어 변수가 회귀에 끼치는 영향이 0이 되게 된다.

 

이에 따라, LASSO를 필요 없는 변수를 제외시키기 위해서도 종종 사용된다고 한다.


ElasticNet

엘라스틱 넷은 위에서 보았던 Ridge와 Lasso를 적절히 사용하여 회귀식을 규제한다.

 

Ridge, Lasso 모두 시그마 앞에 알파 값을 통해 규제 정도를 얼마나 줄지 조절해 줄 수 있다.

파이썬 sklearn의 Ridge와 Lasso 알고리즘에는 알파에 해당하는 Hyperparameter가 존재, 그 값을 조정함으로써

규제를 강하게 줄지, 적절히 줄지, 약하게 줄지 사용자가 조절해줄 수 있다.

다중회귀와 다항회귀를 혼동해서 쓰는 사람들이 많다.

다중회귀와 다항회귀는 명확히 다른 개념임을 다시 한번 말하고 싶다.

 

Simple Linear Regression, 단순선형회귀는 독립변수가 한개였다. (ex: y = wx + b)

하지만, 대부분의 문제(?)는 독립변수가 하나뿐이 아니라 여러개일 때가 많다.

 

그럴 경우, 이를 다중회귀, Multiple linear regression이라고 한다.

 

근데 왜 단순 선형회귀로 설명해 놓은 블로그, 책들이 많이 있을까?

차원을 생각하면 쉽다.

우리는 1차원(직선), 2차원(평면) 3차원(공간)까지 밖에 눈으로 확인할 수 없다.

 

단순선형회귀를 한다면, 우리가 중,고등학교시절 자주 보아왔던 2차원 x,y축을 활용할 수 있다.

 

y = w_1x_1 + w_2x_2 + ... + b 와 같이 표현 할 수 있다.

 

변수만 여러개가 되었지, 단순선형회귀에서 사용하는 cost, weight조정등은 같은 개념이다.

 

다중회귀에는 몇가지 가정이 필요하다.

  • There is a linear relationship between the dependent variables and the independent variables.
  • The independent variables are not too highly correlated with each other.
  • yi observations are selected independently and randomly from the population.
  • Residuals should be normally distributed with a mean of 0 and variance σ.

 

 

 

"Multiple regressions are based on the assumption that there is a linear relationship between both the dependent and independent variables. It also assumes no major correlation between the independent variables."


다중회귀분석은 조금 다르다.

선형적인 특성을 띄지 않는 데이터를 생각해보자.

 

다음과 같은 데이터는 아무리 직선을 잘 그어도, 이 데이터를 설명하는 직선으로는 살짝 부족한것이 보일 것이다.

 

데이터를 자세히보면, 3차식에는 뭔가 잘 맞을 것 같아 보인다.

이렇게, 데이터의 형태에 따라서 (선형으로는 안될것같을때(??))

polynomial regression을 해주면, 조금 더 높은 정확도를 얻어낼 수 있다.

하지만, 차수를 높일수록, 주어진 데이터에 overfitting이 될수 있음을 항상 염두해 두어야한다.

 

예를들어, 저 그래프를 차수를 높여서 y = wx^3으로 그리면 조금더 맞는(?)그래프를 그릴 수 있을 것 같다.

 

결국 회귀분석의 이론은 다 같다. 그러나, 변수의 형태, 개수에 따라서 그것들이 나누어 지는 것같다.

'Data Anaylsis > Machine Learning' 카테고리의 다른 글

gausian mixture  (0) 2020.04.13
릿지 라쏘 엘라스틱넷  (1) 2020.03.12
단순선형회귀(single linear regression)  (0) 2020.03.05
s  (0) 2020.02.27
데이터분석 기본개념  (0) 2020.02.12

선형 회귀분석의 기초라고 할 수 있는 단순 선형 회귀분석이다.

 

머신러닝에 있어서 정답 레이블이 연속형인 값을 예측하는 데 사용된다.

 

예를 들어보자.

아버지의 키를 통해 아들의 키가 몇이 될지 예측하고 싶다.

<여기서 아버지의 키는 X변수(독립변수, feature), 아들의 키는 Y변수(종속변수, label)이다.>

데이터로 몇 명의 아버지와 몇명의 아들의 키를 가지고 있다.

 

다음과 같이 아버지의 키와 아들의 키를 scatter로 뿌려보면 다음과 같이 보일 것이다.

그러면 우리는 아버지의 키와 아들의 키를 잘 설명할 수 있는 직선을 그을 수 있다.

다음과 같이 여러 직선을 그은 것 중에, 점(실제 데이터)과 예측(점과 X값이 같으면서 선위의 점) 사이의 거리(cost)

최소가 되는 점이 아버지의 키와 아들의 키를 가장 잘 설명하는 직선이 될 것이다.


왜 우리는 이러한 선을 긋고,

예측을 하려는 것일까?

 

머신러닝의 기본으로 다시 돌아와 보면,

데이터가 풍부해짐에 따라 

가지고 있는 데이터를 통해

새로운 데이터를 맞이 했을 때, 그 값을 미리 예측할 수 있다면,

어떠한 서비스를 예측하여 제공해 줄 수도 있고,

기후 예측 등 실생활에서 활용을 할 수 있다.


 

이 예제에서도 마찬가지로, 아버지의 키를 통해 아들의 키가 어떻게 변화하는지를 보면서

아버지의 키와 아들의 키가 관계가 있다는 인사이트를 도출할 수 있다.

 

다시 본론으로 돌아오면, 이러한 점과 선 사이의 거리는 제곱의 형태나 절댓값의 형태로 나타낼 수 있다.

제곱을 다 더한 것이 우리가 자주 듣던 MSE(Mean Squared Error, 평균 제곱 오차)이고,

절댓값을 다 더한 것이 MAE(Mean Absolute Error, 오차절대합)이다.

결국, 점-선 또는 선-점을 합해버리면 그 값들이 상쇄가 되어 제곱이나 절댓값 형태를 취해주어서

상실되는 것을 방지하는 것이다.

 

여기서 제곱을 한다면, 에러가 크게 날 수록, 그 에러에 대해 제곱을 하게 되면 더 크게 값이 형성된다.

제곱 형태를 사용하면, 많이 벗어난 에러애 대해 큰 벌점을 주게 되는 것이다.

이러한 경우, 이상점이 있다면 error가 높을 것이라는 추측을 할 수 있다.


MSE를 활용하여 cost함수를 최소화 하도록 해보자.

수식적으로 간단하게 접근해보자.

저 아버지와 아들의 관계를 나타낸 선을 y = wx + b라고 한다면,

y와 x의 관계를 잘 설명하는 최적의 w와 b를 구하는 것이 목표인 것이다.

 

여기서  

y는 우리가 예측할 값이므로 H(x)로 표현할 수 있다.

이러한 과정을 Gredient Decesnt, 경사하강법이라고 부른다.

이를 수식적으로 표현해보면, 다음과 같은 cost 식을 도출해 낼 수 있다. 우리는 이 cost(W,b)를 최소화하는 것이 목적이다.

위의 식에서 H(x)자리에 wx+b를 대입하고, 식을 푼다면 이 식은 W에 대한 2차방정식으로 표현될 수 있다.

(나머지 문자는 상수 취급)

그러면 우리는 2차방정식을 그래프(2차함수, 아래로볼록)을 그릴 수 있고,

X축은 W축, Y축은 COST축이라고 말할 수 있다.

 

이 cost가 가장 작은 지점은  이차함수에 있어서 미분된 값(기울기)가 0이 되는 지점일 것이다.

그 값을 구하기 위해 W미분값이 최소가 되는 값을 구하는 과정이 바로 Gredient Decent의 핵심 아이디어이다.

 

기존 가중치 - 알파(learning rate, 학습률) * W를 미분해서 나온 값 * cost(W)값 을 진행하면서

W의 값을 계속 업데이트 해나가며, 더이상 W가 움직이지 않을때, 그 지점이 바로 cost의 최솟값, w의 최적값이 되는 것이다.

 

 여기서 알파값(learning rate)을 어떻게 잡느냐에 따라 W가 움직이는 속도가 정해진다. learning rate 값이 클수록 W는 크게크게 바뀌게될 것이고, learning rate 값이 작을수록 천천히 접근하게 될 것이다.

이를 잘 맞춰 주어야한다.

 

단순선형회귀의 기본적인 개념은 여기까지다.

질문이 있으시다면 댓글에 적어주시면

성실히 답변해드리겠슴다.

 

'Data Anaylsis > Machine Learning' 카테고리의 다른 글

gausian mixture  (0) 2020.04.13
릿지 라쏘 엘라스틱넷  (1) 2020.03.12
다중회귀, 다항회귀(Multiple linear regression, Polynomial regression)  (0) 2020.03.06
s  (0) 2020.02.27
데이터분석 기본개념  (0) 2020.02.12

X와 Y의 관계를 찾는 것!

우리의 주 관심은 Y(예측하려는 대상)

Yㅡㄹ 설명하는 X변수는 보통 여러개

여러개의 X와 Y의 관계를 찾는것!

X변수들을 조합(결합)하여 Y를 표현

조합하는 방법은 무수히 많음

수학적으로는, Y = f(X1,X2....)

 

 

옵션 - 빠른실행도구모음

+ Recent posts