[WEEK02-DAY1] 선형 회귀 방정식
2024. 8. 19. 12:34ㆍMachine Learning/[TIL] Naver Boost Camp
선형 회귀 방정식
y=w0+w1x1+w2x2+⋯+wnxn
y는 예측값(종속변수), w0는 절편(bias), w1,w2,⋯,wn는 각 독립변수 x1,x2,⋯,xn의 가중치이다.
데이터 행렬 X:
X=[1x11x12⋯x1n1x21x22⋯x2n⋮⋮⋮⋱⋮1xm1xm2⋯xmn]
첫 번째 열의 모든 값이 1로 채워져있다. 이 열은 절편 w_0에 해당한다.
x에 절편(bias) 항을 추가하는 코드는 아래와 같다.
np.ones((X.shape[0], 1))
샘플 수만큼의 행과 1개의 열을 가진 배열을 생성한다. 모든 요소는 1로 채워져 있다. 이 배열의 크기는 (m, 1)이다.
X = np.hstack((np.ones((X.shape[0], 1)), X))
np.hstack는 수평으로 배열을 쌓는 함수. 즉, 여러 배열을 가로로 이어붙인다.
따라서, 위에서 생성한 1로 채워진 열 벡터와 원래의 X 배열을 가로로 이어붙인다.
이 작업을 하는 이유는 선형 회귀 모델에서 절편 w0를 포함한 가중치 벡터를 쉽게 계산하기 위해서이다. 만약 이 작업을 하지 않으면, 절편 w0를 계산하기 위해 추가적인 코드를 작성해야 한다. 하지만 이 방법을 사용하면, w0를 포함한 모든 가중치가 하나의 벡터로 표현될 수 있기 때문에 계산이 단순해진다.
가중치 벡터 w:
w=[w0w1w2⋮wn]
행렬 곱 형태:
y값을 계산하기 위해 행렬 곱 Xw를 수행한다.
'Machine Learning > [TIL] Naver Boost Camp' 카테고리의 다른 글
[WEEK02-DAY2] Zero-Centered Output (0) | 2024.08.19 |
---|---|
[WEEK02-DAY1] 최소 제곱법과 닫힌 형식 솔루션 (0) | 2024.08.19 |
[WEEK01-DAY4] 이진 교차 엔트로피 (0) | 2024.08.14 |
[WEEK01-DAY3] 경사하강법 (0) | 2024.08.14 |
[WEEK01-DAY3] 선형회귀 (0) | 2024.08.12 |