반응형
SMALL
앞서 배운 선형 회귀분석 모델에서 Loss Function을 구하는 방법을 알아보겠습니다.
Loss function 은 예측한 데이터와 실제 데이터와의 차이로 다음과 같이 정의 할 수 있습니다.
import matplotlib as mpl
mpl.use("Agg")
import matplotlib.pyplot as plt
import numpy as np
def loss(x, y, beta_0, beta_1):
N = len(x)
x = np.array(x)
y = np.array(y)
'''
x, y, beta_0, beta_1 을 이용해 loss값을 계산한 뒤 리턴합니다.
'''
pred = x * beta_0 + beta_1
loss = np.square(y - pred) # 제곱을 하는 numpy 함수
return loss.sum()
X = [8.70153760, 3.90825773, 1.89362433, 3.28730045, 7.39333004, 2.98984649, 2.25757240, 9.84450732, 9.94589513, 5.48321616]
Y = [5.64413093, 3.75876583, 3.87233310, 4.40990425, 6.43845020, 4.02827829, 2.26105955, 7.15768995, 6.29097441, 5.19692852]
beta_0 = 0.4
beta_1 = 2.5
print("Loss: %f" % loss(X, Y, beta_0, beta_1))
plt.scatter(X, Y) # (x, y) 점을 그립니다.
plt.plot([0, 10], [beta_1, 10 * beta_0 + beta_1], c='r') # y = beta_0 * x + beta_1 에 해당하는 선을 그립니다.
plt.xlim(0, 10) # 그래프의 X축을 설정합니다.
plt.ylim(0, 10) # 그래프의 Y축을 설정합니다.
plt.savefig("test.png")
반응형
LIST
'Machine, Deep Learning > Machine, Deep Learning 실습' 카테고리의 다른 글
선형 회귀 구현하기 (1) | 2019.06.24 |
---|---|
Scikit-learn을 이용한 linear regression (0) | 2019.06.24 |
기울기와 절편 (0) | 2019.06.24 |
Pandas 데이터 추출 및 추가 (0) | 2019.06.24 |
Pandas 선언 (0) | 2019.06.24 |