더북(TheBook)

평균 제곱근 오차가 훈련 데이터의 경우 270, 검증 데이터의 경우 255 정도로 나온 것을 볼 수 있습니다. 학습의 반복 횟수를 늘리거나 모델의 형태를 변경하면 이 값은 줄어들 수 있습니다.

trainScore = math.sqrt(mean_squared_error(Y_train[0], TrainPredict[:,0]))

먼저 훈련 데이터를 얼마나 정확하게 예측하는지 살펴보겠습니다.

sklearn 라이브러리의 mean_squared_error 함수를 사용하면 mean_squared_error 값을 손쉽게 구할 수 있습니다. 이 함수를 사용하기 위해 첫 번째에는 실제 정답값 전체를 가져오기 위해 Y_train[0]을, 두 번째에는 예측 값 전체를 가져오기 위해 TrainPredict[:,0]을 넣습니다. 예측 값의 형태가 [:,0]인 이유는 배열이 2차원 배열로 이루어져 있기 때문입니다.

이제 mean_squared_error 함수가 자동으로 오차의 값을 제곱하여 각각의 값을 더한 결과를 반환합니다. 평균 제곱근 오차를 구하기 위해 결괏값을 제곱근한 값을 math.sqrt 함수를 사용하여 얻습니다.

print('Train Score: %.2f RMSE' % (trainScore))

훈련 데이터를 예측한 정확도를 출력해 보겠습니다. print문에서 변수의 값을 출력하기 위한 방법 중 하나로 실수값을 출력할 때에는 %f를 사용합니다. 이때 소수 둘째 자리까지만 출력하라는 의미로 %.2f를 입력하였습니다. 출력할 변수를 % 기호 뒤에 넣으면 됩니다.

testScore = math.sqrt(mean_squared_error(Y_test[0], TestPredict[:,0]))

이제 드디어 검증 데이터를 예측한 결과의 정확도를 살펴볼 차례입니다. 앞에서 살펴본 것과 같은 방식으로 계산하면 됩니다. 이때 평균 제곱 오차를 구할 때 훈련 데이터의 값((Y_test)과 그 예측 값(TestPredict)을 넣어줍니다.

print('Test Score: %.2f RMSE' % (testScore))

검증 데이터를 예측한 정확도를 출력하는 코드입니다. 앞 과정과 동일하며 출력할 변수만 검증 데이터의 예측 정확도(testScore)로 바뀌었습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.