3-최근접 이웃에 오차 제곱을 이용하는 경우에는 다음과 같습니다.
앞 코드는 다음과 같이 사용할 수 있습니다.
In [13]:
knn = neighbors.KNeighborsRegressor(n_neighbors=3) fit = knn.fit(diabetes.data, diabetes.target) training_data = zip(diabetes.data, diabetes.target) my_training_loss = training_loss(squared_error, knn, training_data) print(my_training_loss)
[863792.3333]
sklearn의 mean_squared_error 함수로 손실을 계산한 후 전체 훈련 사례의 개수를 곱하면 같은 값을 얻을 수 있습니다.
In [14]:
mse = metrics.mean_squared_error(diabetes.target, knn.predict(diabetes.data)) print(mse*len(diabetes.data))
863792.3333333333
조금 부담스러워 보이는 이 훈련 오차 공식은 우리가 사용하는 평가 계산의 기본 바탕이 됩니다. 좋은 모델의 복잡도를 결정하는 문제를 다루기 위해 이 공식을 확장해서 사용하겠습니다.