더북(TheBook)

선형 회귀에서는 오차를 그대로 사용하는 대신에 평균제곱오차(Mean Squared Error, MSE)를 사용한다.

이번에는 위의 예제를 바꿔 MSE 함수를 만들고 평균제곱오차를 구해보자.

import numpy as np

# MSE 함수를 만든다. numpy를 이용해 연산한다
def mse( y, y_hat ):
    return ( ( y - y_hat ) ** 2 ).mean( )

# x 값과 실제값 y, 기울기 W와 절편 b를 설정한다
x = np.array( [ 1, 2, 3 ] )
y = np.array( [ 4, 7, 9 ] )
W = 2.0
b = 1.0

# 예측값을 저장할 빈 리스트를 만든다
y_hat = [ ]

# x 값을 식에 입력해 예측값을 구하고 리스트 y_hat에 추가한다
for xi, yi in zip( x, y ):
    y_hat.append( W * xi + b )

# mse 함수에 y와 y_hat을 줘서 평균제곱오차를 구한다
y_hat = np.array( y_hat )
mse_val = mse( y, y_hat )
print( 'MSE = %.f' % ( mse_val ) )
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.