In [8]:
import numpy as np
from sklearn.model_selection import KFold
from sklearn.model_selection import cross_val_score
from sklearn import preprocessing, datasets
from sklearn.neighbors import KNeighborsRegressor
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
In [9]:
boston = datasets.load_boston()
X_train = boston.data
y_train = boston.target
In [10]:
X_train_scaled = preprocessing.scale(X_train)
In [11]:
kf = KFold(n_splits=5, random_state=42, shuffle=True)
minkovsky = np.linspace(1, 10, num=200)
means = dict()
for p in minkovsky:
knn = KNeighborsRegressor(p=p, n_neighbors=5, weights='distance')
score = cross_val_score(knn, X_train_scaled, y_train, cv=kf, scoring='neg_mean_squared_error')
score_mean = np.mean(score)
means[p] = score_mean
In [12]:
max_key_by_value = max(means, key=means.get)
max_key_by_value
means[max_key_by_value]
Out[12]:
Out[12]: