소개
Xi 및 Y_{i와 같은 데이터 세트 D = {(X_{1}, Y_{2}), \dots,(X_{N}, Y_{N})}가 주어지면 }는 연속형입니다. "선형 회귀"의 목표는 이 데이터에 가장 적합한 선을 찾는 것입니다.
즉, 우리는 모델을 생성하고 싶습니다:
y^=a∗0+a∗1.x∗1+⋯+a∗p.x_p
여기서 p는 변수 X의 차원 수입니다.
이 문서에서는 세 가지 시나리오에서 이 문제를 해결하는 방법을 살펴보겠습니다.
-
X가 1차원인 경우, 즉 p=1.
-
X가 다차원인 경우, 즉 p>1.
-
경사하강법을 사용합니다.
X는 1차원(보통 최소 제곱)입니다.
우리가 만들고자 하는 모델의 모양은 다음과 같습니다.
y^=a∗0+a∗1.x
선형 회귀의 목표는 데이터에 가장 적합한 선을 찾는 것임을 기억하십시오. 즉, 데이터 포인트와 선 사이의 거리를 최소화해야 합니다.
(a∗0^,a∗1^)=(a∗0,a∗1)argmin∑∗i=1N(y∗i−y∗i^)2
=(a∗0,a∗1)argmin∑∗i=1N(y∗i−(a∗0+a∗1.x∗i))2
넣어 보자 :
L=∑∗i=1N(y∗i−(a∗0+a∗1.x_i))2
최소값을 찾으려면 다음 방정식을 풀어야 합니다.
{∂a0∂L=0∂a1∂L=0
⎩⎨⎧i=1∑N−2(yi−(a0+a1.xi))=0i=1∑N−2xi(yi−(a0+a1.xi))=0
첫 번째 방정식을 개발하는 것부터 시작합니다.
i=1∑Nyi−i=1∑Na0+i=1∑Na1.xi=0
i=1∑Nyi−Na0+i=1∑Na1.xi=0
a0=Ni=1∑Nyi−Ni=1∑Nxia1
a0=Y−Xa1
우리는 두 번째 방정식을 다음과 같이 대체합니다.
i=1∑Nxi(yi−Y+Xa1−a1xi)=0
i=1∑N(yi−Y)+a1(X−xi)=0
i=1∑N(yi−Y)−i=1∑Na1(xi−X)=0
a1=i=1∑N(xi−X)i=1∑N(yi−Y)=i=1∑N(xi−X)2i=1∑N(yi−Y)(xi−X)=VAR(X)COV(X,Y)
a0로 다시 대체합니다.
{a0=Y−XVAR(X)COV(X,Y)a1=VAR(X)COV(X,Y)
X는 다차원입니다(보통 최소 제곱).
이 경우 Xi는 더 이상 실수가 아니지만 대신 p 크기의 벡터입니다.
X∗i=(X∗i1,X∗i2,…,X∗ip)
따라서 모델은 다음과 같이 작성됩니다.
y^=a∗0+a∗1x∗1+a∗2x∗2+⋯+a∗px_p
또는 행렬 형식으로 작성할 수 있습니다.
Y^=X.W
어디:
-
Y는 (N,1) 모양입니다.
-
X는 (N,p) 모양입니다.
-
W는 (p,1) 모양입니다. 이는 매개변수 벡터 (w1,w2,…,wp)입니다.
첫 번째 경우와 유사하게 다음 수량을 최소화하는 것을 목표로 합니다.
W^=Wargmin∑∗i=1N(y∗i−y_i^)2
다시 한번 넣어보자:
L=∑∗i=1N(y∗i−y_i^)2
=(Y−XW)T(Y−XW)
=YTY−YTXW−WTXTY+WTXTXW
=YTY−2WTXTY+WTXTXW
W에 대해 L을 최소화하려고 하므로 첫 번째 항인 "YTY"는 W와 독립이므로 무시하고 다음 방정식을 풀어보겠습니다.
∂W∂(−2WTXTY+WTXTXW)=0
−2XTY+2XTXW^=0
W^=(XTX)−1XTY
경사하강법 사용
경사하강법 알고리즘의 공식은 다음과 같습니다.
w∗n+1=w∗n−lr×∂w_n∂f
이제 우리가 해야 할 일은 두 매개변수 a0 및 a1(하나의 변수 X의 경우)에 이를 적용하는 것뿐입니다.
{a0(n+1)=a0(n)−lr×∂a0∂La1(n+1)=a1(n)−lr×∂a1∂L
그리고 우리는 다음을 알고 있습니다:
⎩⎨⎧∂a0∂L=i=1∑N−2(yi−(a0+a1.xi))∂a1∂L=i=1∑N−2xi(yi−(a0+a1.xi))
대체:
⎩⎨⎧a0(n+1)=a0(n)+2×lr×i=1∑N(yi−(a0(n)+a1(n).xi))a1(n+1)=a1(n)+2×lr×i=1∑Nxi(yi−(a0(n)+a1(n).xi))
퀴즈
-
다차원 선형 회귀의 경우 최적 매개변수 벡터의 공식은 무엇입니까?
-
VAR(Y)COV(X,Y)
-
VAR(X)COV(X,Y)
-
(XTX)−1XTY "맞습니다"
-
왜 미분값을 0으로 두나요?
-
극한점을 찾는다. "옳은"
-
미분을 최소화합니다.
-
파생상품의 실수부분만 유지합니다.
-
선형회귀의 목적은 무엇인가?
-
모든 점을 지나는 선을 찾으려면.
-
데이터를 가장 잘 설명하는 행을 찾습니다."올바른"
-
데이터를 가장 잘 구분하는 선을 찾으려면.