2 : linear regression도 가중치($w$)가 있음. 선형 관계(직선) 때문.
3 : multiple linear regression은 선형일 수도, 비선형일 수도 있음.
5 : multiple linear regression도 B == C 여야 함. 두 행렬을 곱해야하기 때문.
3 : $R^2$ 결정계수 : $x$와 $y$의 관계가 0 ~ 1 사이의 값으로 나타남.
import numpy as np
# 임의의 시작 기울기와 절편
rand_ab=[2,125]
# y = ax + b에 a, b값 대입하여 예측 결과를 출력하는 함수
def predict(x):
return rand_ab[0]*x + rand_ab[1]
# 월별 주가
input = [[1,130], [3,128], [5,132], [7,140], [9,153], [11,150]]
x = [i[0] for i in input]
y = [i[1] for i in input]
# 모든 x값을 한 번씩 대입하여 predList 리스트 완성
predList=[]
for i in range(len(x)):
predList.append(predict(x[i]))
print("%d 월 주가 = %d, 예측 주가 = %d" %(x[i], y[i], predict(x[i])))
# MSE 함수 공식
def mse(y,y_hat):
return ((y-y_hat)**2).mean()
# MSE 함수를 각 y값에 대입하여 최종 값을 구하는 함수
def mse_val(p,y):
return mse(np.array(p),np.array(y))
# 최종 출력
print("최종 mse :",mse_val(predList,y))
print("12월 예상 주가 :",predict(12))

1 : Ridge = L2 Regularization / Lasso = L1 Regularization
2 : Lasso는 변수 사이의 상관 관계가 높은 데이터의 경우, 변수 선택의 성능이 저하되기 때문에 예측력도 저하됨.