선형 회귀에서는 오차를 그대로 사용하는 대신에 평균제곱오차(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 ) )
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.