

내가 만약에 100채의 집값을 토대로 그 지역의 집값을 예측할 것 이다!
그럼
n = 100
p = 화장실 갯수, 평 수, 등 특성들의 범주.
목푯값과 예측값 사이의 차이를 비용이라고 한다.
계산을 통해 비용을 구하는 식이 바로 비용 함수
집값이 100 , 예측 집값이 80일 때
비용함수 : 100-80 = 20
집값이 100, 예측 집값이 120일 때
비용함수 : 100-120 =-20
이때 두 함수 값을 더해서 평균을 내야 되는데 음수와 양수가 공존하므로 상쇄가 일어난다.
그렇기 때문에 제곱을 통해 모두 양수 값으로 만든 후 다 더해서 평균으로 나눠줌.


• 선형 회귀는 잔차의 제곱값이 갖을 수 있는 최소의 파라미터를 찾는 작업이므로
• 최소제곱법(Ordinary Least squares, OLS)이라고도 함
최적화란 특정 문제에서 최적의 해를 찾는 과정을 의미함
• ʻ최적ʼ이란 보통 특정 함수의 최소값(min) 혹은 최대값(max) 찾는 것을 가리킴
특정 식이 최소가 되는 지점을 찾는 것은
• 식의 기울기(미분값)가 0이 되는 위치를 찾는 것과 동치



아래와 같이 생긴 데이터가 있다고 해보자.

정규 방정식으로 선형 회귀 문제를 풀어보자
정규 방정식의 식은 아래와 같다.
w = (X^T @ X)-1@ X^T @y / @는 행렬간의 곱셈을 의미!
이를 함수로 만들어 보면
def calc_OLS(X, y):
#OLS 수식 적용 / @는 행렬간의 곱셈을 의미
w_ols = np.linalg.inv(X.T @ X) @ X.T @ Y
return w_ols
w_ols = calc_OLS(X, y)
np.linalg.inv 넘파이 안에 있는 선형대수 패키지.

실제 정답과 예측값이 흡사하게 예측된 모습을 볼 수 있다.
이를 실제 선과 예측선을 그래프로 그려보자면

예측을 아주 잘한 형태로 만들어진 것을 볼 수 있다.