998 KiB
998 KiB
In [ ]:
! curl https://raw.githubusercontent.com/MSU-ML-COURSE/ML-COURSE-25-26/refs/heads/master/requirements/requirements.txt -o ./requirements_2025_26_for_colab_small.txt
! pip install -r ./requirements_2025_26_for_colab_small.txtIn [4]:
import catboost
assert(catboost.__version__ == '1.2.8')In [5]:
import sklearnIn [8]:
from sklearn.neighbors import KNeighborsClassifier # класс, с помощью которого мы в дальнейшем будем обучать kNNIn [9]:
#Создаем обучающую выборку
X_train = [[0], [1], [2], [3]] # матрица размера 4 x 1, 4 - объекта, 1 признак
y_train = [0, 0, 1, 1] # обучающий вектор целевых переменных
#Создаем тестовую выборку
X_test = [[1.1], [2.8]] # матрица размера 2x1, 2 - объекта, 1 признак
#Создаем объект класса 3-NN классификатора
neigh = KNeighborsClassifier(n_neighbors=3)
#Обучаем классифкатора на созданной ранее выборке
neigh.fit(X_train, y_train)
#Предсказываем метку класса нового объекта с помощью метода predict
y_test = neigh.predict(X_test)
print(y_test) # y_test - вектор размера 2 (в тестовой выборке 2 объекта)[0 1]
In [6]:
import numpy as np
X_train = np.array([[0, 0], [0.5, 100], [1, 1000005000]]) # numpy используем для удобства отображения
# выборка из 3 примеров, 1й признак - вероятность покупки p
# 2й признак - стоимость покупки s
print(X_train)[[0.000000e+00 0.000000e+00] [5.000000e-01 1.000000e+02] [1.000000e+00 1.000005e+09]]
In [10]:
from sklearn.preprocessing import MinMaxScaler # штука, которая приводит все значения признаков к отрезку [0, 1]
# В части 1 подробнее разберем
scaler = MinMaxScaler() # создаем экземпляр класса
scaler.fit(X_train) # "обучаем" преобразователь, на самом деле под капотом считаются статистики
# X_train тут не меняется!Out [10]:
MinMaxScaler()In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
MinMaxScaler()
In [11]:
# Теперь метод для каждого признака посчитал его минимальные и максимальные значения
# Но это под капотом, сюда можно вообще не лезть
scaler.data_min_, scaler.data_max_Out [11]:
(array([0.]), array([3.]))
In [12]:
X_new = scaler.transform(X_train)
X_new
# Значения в 1й признаке не поменялись, так как они уже удовлетворяли условию
# А во втором - стали на отрезке [0, 1]Out [12]:
array([[0. ],
[0.33333333],
[0.66666667],
[1. ]])In [13]:
from scalers import StandardScaler, MinMaxScalerIn [14]:
import numpy as np
import seaborn as sns
import pickle
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = (5,5)In [ ]:
import gdown
gdown.download(id='1cGV6SvpJuP_pa1mLCnI_SvTafEtW2sSO')In [ ]:
with open('/content/data.pkl', 'rb') as file:
X, y = pickle.load(file)In [17]:
def plot_data_points(X, labels, xlim, ylim):
g = sns.scatterplot(x=X[:, 0], y=X[:, 1], hue=labels)
g.set(xlim=xlim, ylim=ylim)
plt.xlabel('x_1')
plt.ylabel('x_2')
plt.grid()In [18]:
plot_data_points(X, y, xlim=(-15, 15), ylim=(-15, 15))In [19]:
from matplotlib.colors import ListedColormap
from sklearn import neighbors, datasets
def plot_knn_bound(X, y, scaler=None, n_neighbors=10, xlim=(-15, 15), ylim=(-20, 20)):
# step size in the mesh
h = 0.05
# Create color maps
cmap_light = ListedColormap(['plum', 'blue', 'plum', 'green'][:np.unique(y).shape[0]])
cmap_bold = ['plum', 'blue', 'plum', 'darkgreen'][:np.unique(y).shape[0]]
x_min, x_max = xlim
y_min, y_max = ylim
xx, yy = np.meshgrid(np.arange(x_min, x_max, h),
np.arange(y_min, y_max, h))
grid = np.c_[xx.ravel(), yy.ravel()]
X_scaled = X # if scaler is None
if scaler is not None:
grid = scaler.transform(grid)
X_scaled = scaler.transform(X)
# we create an instance of Neighbours Classifier and fit the data.
clf = neighbors.KNeighborsClassifier(n_neighbors, algorithm='brute')
clf.fit(X_scaled, y)
Z = clf.predict(grid)
# Put the result into a color plot
Z = Z.reshape(xx.shape)
plt.contourf(xx, yy, Z, cmap=cmap_light)
# Plot also the training points
sns.scatterplot(x=X[:, 0], y=X[:, 1], hue=y,
palette=cmap_bold, alpha=1.0, edgecolor="black")
plt.xlabel('x_1')
plt.ylabel('x_2')
plt.title('Разделющие поверхности алгоритма {}-NN'.format(n_neighbors))
plt.grid()
plt.show()In [20]:
plot_knn_bound(X, y, n_neighbors=1)
plot_knn_bound(X, y, n_neighbors=10)In [21]:
from scalers import StandardScaler, MinMaxScaler
scaler_std = StandardScaler()
scaler_std.fit(X)
plot_knn_bound(X, y, scaler=scaler_std, n_neighbors=1, xlim=(-4, 4))
plot_knn_bound(X, y, scaler=scaler_std, n_neighbors=10, xlim=(-4, 4))
scaler_mm = MinMaxScaler()
scaler_mm.fit(X)
plot_knn_bound(X, y, scaler=scaler_mm, n_neighbors=1, xlim=(-4, 4))
plot_knn_bound(X, y, scaler=scaler_mm, n_neighbors=10, xlim=(-4, 4))In [22]:
from sklearn.datasets import fetch_california_housing # Да, из sklearn даже можно импортировать данные
from sklearn.model_selection import train_test_split # Вспомогательная функцию которая разобьет нам датасет на 2 частиIn [23]:
X, y = fetch_california_housing(return_X_y=True)In [24]:
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42)In [25]:
from sklearn.neighbors import KNeighborsRegressor # kNN - регрессия
from sklearn.pipeline import Pipeline # разберем ниже
from sklearn.model_selection import GridSearchCV # класс, выполняющий кросс-валидацию
from sklearn.preprocessing import MinMaxScaler, StandardScaler # будем здесь использовать уже реализованные скейлерыIn [26]:
pipeline = Pipeline([
('normalizer', MinMaxScaler()),
('classifier', KNeighborsRegressor())
])In [27]:
pipeline.fit(X_train, y_train)
pipeline.predict(X_test)Out [27]:
array([0.5482 , 0.7506 , 4.628604, ..., 1.328 , 2.4206 , 4.089404],
shape=(5160,))In [28]:
parameters = {
'classifier__n_neighbors': [1, 5, 10],
'classifier__metric': ['euclidean', 'cosine'],
'classifier__weights': ['uniform', 'distance'],
'normalizer': ['passthrough', MinMaxScaler(), StandardScaler()]
}In [29]:
# задаем нужный пайплайн
pipeline = Pipeline([
('normalizer', 'passthrough'),
('classifier', KNeighborsRegressor())
])
# и сетку перебора параметров
parameters = {
'classifier__n_neighbors': [1, 5, 10],
'classifier__metric': ['euclidean', 'cosine'],
'classifier__weights': ['uniform', 'distance'],
'normalizer': ['passthrough', MinMaxScaler(), StandardScaler()]
}
grid_search = GridSearchCV(estimator=pipeline, param_grid=parameters, cv=3, scoring='r2', n_jobs=-1, verbose=10)
grid_search.fit(X_train, y_train)Out [29]:
Fitting 3 folds for each of 36 candidates, totalling 108 fits [CV 1/3; 2/36] START classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=MinMaxScaler() [CV 3/3; 2/36] START classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=MinMaxScaler() [CV 3/3; 1/36] START classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=passthrough [CV 2/3; 1/36] START classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=passthrough [CV 3/3; 1/36] END classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=passthrough;, score=-0.275 total time= 0.0s [CV 1/3; 3/36] START classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=StandardScaler() [CV 1/3; 2/36] END classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=MinMaxScaler();, score=0.509 total time= 0.0s [CV 2/3; 1/36] END classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=passthrough;, score=-0.250 total time= 0.0s [CV 3/3; 2/36] END classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=MinMaxScaler();, score=0.545 total time= 0.0s [CV 2/3; 2/36] START classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=MinMaxScaler() [CV 3/3; 3/36] START classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=StandardScaler() [CV 1/3; 4/36] START classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=distance, normalizer=passthrough [CV 2/3; 3/36] START classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=StandardScaler() [CV 1/3; 4/36] END classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=distance, normalizer=passthrough;, score=-0.285 total time= 0.0s [CV 2/3; 4/36] START classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=distance, normalizer=passthrough [CV 3/3; 4/36] START classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=distance, normalizer=passthrough [CV 1/3; 1/36] START classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=passthrough [CV 2/3; 4/36] END classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=distance, normalizer=passthrough;, score=-0.250 total time= 0.0s [CV 1/3; 5/36] START classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=distance, normalizer=MinMaxScaler() [CV 2/3; 2/36] END classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=MinMaxScaler();, score=0.544 total time= 0.0s [CV 2/3; 5/36] START classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=distance, normalizer=MinMaxScaler() [CV 3/3; 4/36] END classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=distance, normalizer=passthrough;, score=-0.275 total time= 0.0s [CV 3/3; 5/36] START classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=distance, normalizer=MinMaxScaler() [CV 1/3; 1/36] END classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=passthrough;, score=-0.285 total time= 0.0s [CV 1/3; 6/36] START classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=distance, normalizer=StandardScaler() [CV 1/3; 3/36] END classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=StandardScaler();, score=0.516 total time= 0.1s [CV 2/3; 6/36] START classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=distance, normalizer=StandardScaler() [CV 1/3; 5/36] END classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=distance, normalizer=MinMaxScaler();, score=0.509 total time= 0.0s [CV 3/3; 5/36] END classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=distance, normalizer=MinMaxScaler();, score=0.545 total time= 0.0s [CV 3/3; 6/36] START classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=distance, normalizer=StandardScaler() [CV 1/3; 7/36] START classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=passthrough [CV 2/3; 5/36] END classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=distance, normalizer=MinMaxScaler();, score=0.544 total time= 0.0s [CV 2/3; 7/36] START classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=passthrough [CV 1/3; 7/36] END classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=passthrough;, score=0.100 total time= 0.0s [CV 3/3; 7/36] START classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=passthrough [CV 2/3; 7/36] END classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=passthrough;, score=0.096 total time= 0.0s [CV 3/3; 3/36] END classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=StandardScaler();, score=0.490 total time= 0.1s [CV 1/3; 8/36] START classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=MinMaxScaler() [CV 3/3; 7/36] END classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=passthrough;, score=0.098 total time= 0.0s [CV 2/3; 8/36] START classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=MinMaxScaler() [CV 3/3; 8/36] START classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=MinMaxScaler() [CV 1/3; 9/36] START classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=StandardScaler() [CV 2/3; 3/36] END classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=StandardScaler();, score=0.536 total time= 0.1s [CV 2/3; 6/36] END classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=distance, normalizer=StandardScaler();, score=0.536 total time= 0.1s [CV 2/3; 9/36] START classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=StandardScaler() [CV 3/3; 8/36] END classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=MinMaxScaler();, score=0.691 total time= 0.0s [CV 2/3; 8/36] END classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=MinMaxScaler();, score=0.692 total time= 0.0s [CV 1/3; 8/36] END classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=MinMaxScaler();, score=0.691 total time= 0.0s [CV 3/3; 9/36] START classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=StandardScaler() [CV 1/3; 10/36] START classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=distance, normalizer=passthrough [CV 2/3; 10/36] START classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=distance, normalizer=passthrough [CV 3/3; 6/36] END classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=distance, normalizer=StandardScaler();, score=0.490 total time= 0.1s [CV 1/3; 6/36] END classifier__metric=euclidean, classifier__n_neighbors=1, classifier__weights=distance, normalizer=StandardScaler();, score=0.516 total time= 0.1s [CV 3/3; 10/36] START classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=distance, normalizer=passthrough [CV 1/3; 11/36] START classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=distance, normalizer=MinMaxScaler() [CV 1/3; 10/36] END classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=distance, normalizer=passthrough;, score=0.120 total time= 0.0s [CV 2/3; 11/36] START classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=distance, normalizer=MinMaxScaler() [CV 3/3; 11/36] START classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=distance, normalizer=MinMaxScaler() [CV 2/3; 10/36] END classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=distance, normalizer=passthrough;, score=0.120 total time= 0.0s [CV 1/3; 12/36] START classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=distance, normalizer=StandardScaler() [CV 3/3; 10/36] END classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=distance, normalizer=passthrough;, score=0.119 total time= 0.0s [CV 2/3; 12/36] START classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=distance, normalizer=StandardScaler() [CV 1/3; 11/36] END classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=distance, normalizer=MinMaxScaler();, score=0.695 total time= 0.0s [CV 3/3; 12/36] START classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=distance, normalizer=StandardScaler() [CV 3/3; 11/36] END classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=distance, normalizer=MinMaxScaler();, score=0.697 total time= 0.1s [CV 1/3; 13/36] START classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=passthrough [CV 2/3; 11/36] END classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=distance, normalizer=MinMaxScaler();, score=0.698 total time= 0.1s [CV 2/3; 13/36] START classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=passthrough [CV 1/3; 13/36] END classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=passthrough;, score=0.116 total time= 0.0s [CV 3/3; 13/36] START classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=passthrough [CV 2/3; 13/36] END classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=passthrough;, score=0.114 total time= 0.0s [CV 1/3; 14/36] START classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=MinMaxScaler() [CV 3/3; 13/36] END classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=passthrough;, score=0.118 total time= 0.0s [CV 2/3; 14/36] START classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=MinMaxScaler() [CV 1/3; 9/36] END classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=StandardScaler();, score=0.668 total time= 0.2s [CV 3/3; 14/36] START classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=MinMaxScaler() [CV 2/3; 9/36] END classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=StandardScaler();, score=0.701 total time= 0.1s [CV 1/3; 15/36] START classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=StandardScaler() [CV 3/3; 9/36] END classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=StandardScaler();, score=0.669 total time= 0.2s [CV 2/3; 15/36] START classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=StandardScaler() [CV 2/3; 12/36] END classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=distance, normalizer=StandardScaler();, score=0.705 total time= 0.1s [CV 1/3; 14/36] END classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=MinMaxScaler();, score=0.694 total time= 0.1s [CV 3/3; 15/36] START classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=StandardScaler() [CV 1/3; 16/36] START classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=distance, normalizer=passthrough [CV 2/3; 14/36] END classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=MinMaxScaler();, score=0.698 total time= 0.1s [CV 2/3; 16/36] START classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=distance, normalizer=passthrough [CV 1/3; 12/36] END classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=distance, normalizer=StandardScaler();, score=0.673 total time= 0.1s [CV 3/3; 16/36] START classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=distance, normalizer=passthrough [CV 1/3; 16/36] END classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=distance, normalizer=passthrough;, score=0.141 total time= 0.0s [CV 1/3; 17/36] START classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=distance, normalizer=MinMaxScaler() [CV 3/3; 14/36] END classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=MinMaxScaler();, score=0.695 total time= 0.1s [CV 3/3; 17/36] START classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=distance, normalizer=MinMaxScaler() [CV 2/3; 16/36] END classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=distance, normalizer=passthrough;, score=0.143 total time= 0.0s [CV 3/3; 16/36] END classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=distance, normalizer=passthrough;, score=0.145 total time= 0.0s [CV 2/3; 18/36] START classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=distance, normalizer=StandardScaler() [CV 3/3; 12/36] END classifier__metric=euclidean, classifier__n_neighbors=5, classifier__weights=distance, normalizer=StandardScaler();, score=0.672 total time= 0.1s [CV 1/3; 19/36] START classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=passthrough[CV 3/3; 19/36] START classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=passthrough [CV 1/3; 17/36] END classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=distance, normalizer=MinMaxScaler();, score=0.702 total time= 0.1s [CV 2/3; 17/36] START classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=distance, normalizer=MinMaxScaler() [CV 3/3; 17/36] END classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=distance, normalizer=MinMaxScaler();, score=0.703 total time= 0.1s [CV 1/3; 18/36] START classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=distance, normalizer=StandardScaler() [CV 2/3; 17/36] END classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=distance, normalizer=MinMaxScaler();, score=0.706 total time= 0.1s [CV 1/3; 15/36] END classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=StandardScaler();, score=0.677 total time= 0.2s [CV 2/3; 15/36] END classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=StandardScaler();, score=0.708 total time= 0.2s [CV 2/3; 20/36] START classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=MinMaxScaler() [CV 3/3; 15/36] END classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=StandardScaler();, score=0.673 total time= 0.2s [CV 1/3; 21/36] START classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=StandardScaler() [CV 3/3; 21/36] START classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=StandardScaler() [CV 2/3; 22/36] START classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=distance, normalizer=passthrough [CV 2/3; 18/36] END classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=distance, normalizer=StandardScaler();, score=0.713 total time= 0.2s [CV 3/3; 18/36] START classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=distance, normalizer=StandardScaler() [CV 1/3; 18/36] END classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=distance, normalizer=StandardScaler();, score=0.683 total time= 0.2s [CV 1/3; 23/36] START classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=distance, normalizer=MinMaxScaler() [CV 3/3; 18/36] END classifier__metric=euclidean, classifier__n_neighbors=10, classifier__weights=distance, normalizer=StandardScaler();, score=0.679 total time= 0.2s [CV 3/3; 23/36] START classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=distance, normalizer=MinMaxScaler() [CV 1/3; 23/36] END classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=distance, normalizer=MinMaxScaler();, score=0.450 total time= 1.7s [CV 2/3; 23/36] START classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=distance, normalizer=MinMaxScaler() [CV 3/3; 21/36] END classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=StandardScaler();, score=0.458 total time= 1.9s [CV 1/3; 22/36] START classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=distance, normalizer=passthrough [CV 2/3; 20/36] END classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=MinMaxScaler();, score=0.458 total time= 1.9s [CV 3/3; 20/36] START classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=MinMaxScaler() [CV 1/3; 21/36] END classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=StandardScaler();, score=0.472 total time= 1.9s [CV 2/3; 21/36] START classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=StandardScaler() [CV 2/3; 22/36] END classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=distance, normalizer=passthrough;, score=0.102 total time= 1.9s [CV 3/3; 22/36] START classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=distance, normalizer=passthrough [CV 1/3; 19/36] END classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=passthrough;, score=0.078 total time= 2.2s [CV 2/3; 19/36] START classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=passthrough [CV 3/3; 19/36] END classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=passthrough;, score=0.135 total time= 2.2s [CV 1/3; 20/36] START classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=MinMaxScaler() [CV 3/3; 23/36] END classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=distance, normalizer=MinMaxScaler();, score=0.470 total time= 1.8s [CV 1/3; 24/36] START classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=distance, normalizer=StandardScaler() [CV 2/3; 23/36] END classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=distance, normalizer=MinMaxScaler();, score=0.458 total time= 0.8s [CV 2/3; 24/36] START classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=distance, normalizer=StandardScaler() [CV 1/3; 22/36] END classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=distance, normalizer=passthrough;, score=0.078 total time= 0.8s [CV 1/3; 25/36] START classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=passthrough [CV 3/3; 20/36] END classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=MinMaxScaler();, score=0.470 total time= 0.8s [CV 3/3; 25/36] START classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=passthrough [CV 3/3; 22/36] END classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=distance, normalizer=passthrough;, score=0.135 total time= 0.8s [CV 2/3; 21/36] END classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=StandardScaler();, score=0.509 total time= 0.8s [CV 2/3; 26/36] START classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=MinMaxScaler() [CV 1/3; 27/36] START classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=StandardScaler() [CV 2/3; 19/36] END classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=passthrough;, score=0.102 total time= 0.8s [CV 3/3; 27/36] START classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=StandardScaler() [CV 1/3; 20/36] END classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=uniform, normalizer=MinMaxScaler();, score=0.450 total time= 0.9s [CV 2/3; 28/36] START classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=distance, normalizer=passthrough [CV 1/3; 24/36] END classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=distance, normalizer=StandardScaler();, score=0.472 total time= 0.9s [CV 1/3; 29/36] START classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=distance, normalizer=MinMaxScaler() [CV 2/3; 24/36] END classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=distance, normalizer=StandardScaler();, score=0.509 total time= 0.5s [CV 3/3; 24/36] START classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=distance, normalizer=StandardScaler() [CV 3/3; 24/36] END classifier__metric=cosine, classifier__n_neighbors=1, classifier__weights=distance, normalizer=StandardScaler();, score=0.458 total time= 0.6s [CV 3/3; 29/36] START classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=distance, normalizer=MinMaxScaler() [CV 1/3; 27/36] END classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=StandardScaler();, score=0.657 total time= 1.1s [CV 2/3; 27/36] START classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=StandardScaler() [CV 1/3; 25/36] END classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=passthrough;, score=0.382 total time= 1.2s [CV 2/3; 25/36] START classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=passthrough [CV 2/3; 26/36] END classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=MinMaxScaler();, score=0.639 total time= 1.2s [CV 3/3; 26/36] START classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=MinMaxScaler() [CV 3/3; 25/36] END classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=passthrough;, score=0.385 total time= 1.2s [CV 1/3; 26/36] START classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=MinMaxScaler() [CV 3/3; 27/36] END classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=StandardScaler();, score=0.648 total time= 1.2s [CV 1/3; 28/36] START classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=distance, normalizer=passthrough [CV 2/3; 28/36] END classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=distance, normalizer=passthrough;, score=0.390 total time= 1.3s [CV 3/3; 28/36] START classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=distance, normalizer=passthrough [CV 1/3; 29/36] END classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=distance, normalizer=MinMaxScaler();, score=0.641 total time= 1.2s [CV 2/3; 29/36] START classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=distance, normalizer=MinMaxScaler() [CV 3/3; 29/36] END classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=distance, normalizer=MinMaxScaler();, score=0.649 total time= 1.1s [CV 1/3; 30/36] START classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=distance, normalizer=StandardScaler() [CV 2/3; 27/36] END classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=StandardScaler();, score=0.687 total time= 1.3s [CV 2/3; 30/36] START classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=distance, normalizer=StandardScaler() [CV 3/3; 26/36] END classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=MinMaxScaler();, score=0.647 total time= 1.2s [CV 1/3; 31/36] START classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=passthrough [CV 2/3; 25/36] END classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=passthrough;, score=0.367 total time= 1.4s [CV 3/3; 31/36] START classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=passthrough [CV 1/3; 26/36] END classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=uniform, normalizer=MinMaxScaler();, score=0.643 total time= 1.4s [CV 2/3; 32/36] START classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=MinMaxScaler() [CV 1/3; 28/36] END classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=distance, normalizer=passthrough;, score=0.393 total time= 1.4s [CV 1/3; 33/36] START classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=StandardScaler() [CV 2/3; 29/36] END classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=distance, normalizer=MinMaxScaler();, score=0.642 total time= 1.3s [CV 2/3; 33/36] START classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=StandardScaler() [CV 3/3; 28/36] END classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=distance, normalizer=passthrough;, score=0.404 total time= 1.4s [CV 3/3; 33/36] START classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=StandardScaler() [CV 1/3; 30/36] END classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=distance, normalizer=StandardScaler();, score=0.660 total time= 1.4s [CV 1/3; 34/36] START classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=distance, normalizer=passthrough [CV 2/3; 30/36] END classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=distance, normalizer=StandardScaler();, score=0.688 total time= 1.7s [CV 3/3; 30/36] START classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=distance, normalizer=StandardScaler() [CV 1/3; 31/36] END classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=passthrough;, score=0.378 total time= 1.7s [CV 2/3; 31/36] START classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=passthrough [CV 3/3; 31/36] END classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=passthrough;, score=0.388 total time= 1.7s [CV 1/3; 32/36] START classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=MinMaxScaler() [CV 2/3; 32/36] END classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=MinMaxScaler();, score=0.658 total time= 1.7s [CV 3/3; 32/36] START classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=MinMaxScaler() [CV 1/3; 33/36] END classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=StandardScaler();, score=0.665 total time= 2.0s [CV 2/3; 34/36] START classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=distance, normalizer=passthrough [CV 3/3; 33/36] END classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=StandardScaler();, score=0.664 total time= 1.9s [CV 3/3; 34/36] START classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=distance, normalizer=passthrough [CV 2/3; 33/36] END classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=StandardScaler();, score=0.700 total time= 2.1s [CV 1/3; 35/36] START classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=distance, normalizer=MinMaxScaler() [CV 1/3; 34/36] END classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=distance, normalizer=passthrough;, score=0.405 total time= 1.4s [CV 2/3; 35/36] START classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=distance, normalizer=MinMaxScaler() [CV 3/3; 30/36] END classifier__metric=cosine, classifier__n_neighbors=5, classifier__weights=distance, normalizer=StandardScaler();, score=0.650 total time= 1.7s [CV 3/3; 35/36] START classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=distance, normalizer=MinMaxScaler() [CV 1/3; 32/36] END classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=MinMaxScaler();, score=0.660 total time= 1.6s [CV 3/3; 32/36] END classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=MinMaxScaler();, score=0.661 total time= 1.6s [CV 1/3; 36/36] START classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=distance, normalizer=StandardScaler() [CV 2/3; 36/36] START classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=distance, normalizer=StandardScaler() [CV 2/3; 31/36] END classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=uniform, normalizer=passthrough;, score=0.366 total time= 1.8s [CV 3/3; 36/36] START classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=distance, normalizer=StandardScaler() [CV 2/3; 34/36] END classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=distance, normalizer=passthrough;, score=0.403 total time= 1.6s [CV 3/3; 34/36] END classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=distance, normalizer=passthrough;, score=0.419 total time= 1.7s [CV 1/3; 35/36] END classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=distance, normalizer=MinMaxScaler();, score=0.664 total time= 1.7s [CV 2/3; 35/36] END classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=distance, normalizer=MinMaxScaler();, score=0.665 total time= 1.7s [CV 3/3; 35/36] END classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=distance, normalizer=MinMaxScaler();, score=0.667 total time= 0.9s [CV 1/3; 36/36] END classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=distance, normalizer=StandardScaler();, score=0.673 total time= 0.9s [CV 3/3; 36/36] END classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=distance, normalizer=StandardScaler();, score=0.669 total time= 0.9s [CV 2/3; 36/36] END classifier__metric=cosine, classifier__n_neighbors=10, classifier__weights=distance, normalizer=StandardScaler();, score=0.706 total time= 1.0s
GridSearchCV(cv=3,
estimator=Pipeline(steps=[('normalizer', 'passthrough'),
('classifier', KNeighborsRegressor())]),
n_jobs=-1,
param_grid={'classifier__metric': ['euclidean', 'cosine'],
'classifier__n_neighbors': [1, 5, 10],
'classifier__weights': ['uniform', 'distance'],
'normalizer': ['passthrough', MinMaxScaler(),
StandardScaler()]},
scoring='r2', verbose=10)In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
GridSearchCV(cv=3,
estimator=Pipeline(steps=[('normalizer', 'passthrough'),
('classifier', KNeighborsRegressor())]),
n_jobs=-1,
param_grid={'classifier__metric': ['euclidean', 'cosine'],
'classifier__n_neighbors': [1, 5, 10],
'classifier__weights': ['uniform', 'distance'],
'normalizer': ['passthrough', MinMaxScaler(),
StandardScaler()]},
scoring='r2', verbose=10)Pipeline(steps=[('normalizer', MinMaxScaler()),
('classifier',
KNeighborsRegressor(metric='euclidean', n_neighbors=10,
weights='distance'))])MinMaxScaler()
KNeighborsRegressor(metric='euclidean', n_neighbors=10, weights='distance')
In [30]:
for elem in zip (grid_search.cv_results_['params'], grid_search.cv_results_['mean_test_score']):
print(elem)({'classifier__metric': 'euclidean', 'classifier__n_neighbors': 1, 'classifier__weights': 'uniform', 'normalizer': 'passthrough'}, np.float64(-0.2698362539419594))
({'classifier__metric': 'euclidean', 'classifier__n_neighbors': 1, 'classifier__weights': 'uniform', 'normalizer': MinMaxScaler()}, np.float64(0.5329368736058075))
({'classifier__metric': 'euclidean', 'classifier__n_neighbors': 1, 'classifier__weights': 'uniform', 'normalizer': StandardScaler()}, np.float64(0.5139255367340351))
({'classifier__metric': 'euclidean', 'classifier__n_neighbors': 1, 'classifier__weights': 'distance', 'normalizer': 'passthrough'}, np.float64(-0.2698362539419594))
({'classifier__metric': 'euclidean', 'classifier__n_neighbors': 1, 'classifier__weights': 'distance', 'normalizer': MinMaxScaler()}, np.float64(0.5329368736058075))
({'classifier__metric': 'euclidean', 'classifier__n_neighbors': 1, 'classifier__weights': 'distance', 'normalizer': StandardScaler()}, np.float64(0.5139255367340351))
({'classifier__metric': 'euclidean', 'classifier__n_neighbors': 5, 'classifier__weights': 'uniform', 'normalizer': 'passthrough'}, np.float64(0.0977684191856583))
({'classifier__metric': 'euclidean', 'classifier__n_neighbors': 5, 'classifier__weights': 'uniform', 'normalizer': MinMaxScaler()}, np.float64(0.6915621333110309))
({'classifier__metric': 'euclidean', 'classifier__n_neighbors': 5, 'classifier__weights': 'uniform', 'normalizer': StandardScaler()}, np.float64(0.6793573692425973))
({'classifier__metric': 'euclidean', 'classifier__n_neighbors': 5, 'classifier__weights': 'distance', 'normalizer': 'passthrough'}, np.float64(0.1199731657678866))
({'classifier__metric': 'euclidean', 'classifier__n_neighbors': 5, 'classifier__weights': 'distance', 'normalizer': MinMaxScaler()}, np.float64(0.6964752425342952))
({'classifier__metric': 'euclidean', 'classifier__n_neighbors': 5, 'classifier__weights': 'distance', 'normalizer': StandardScaler()}, np.float64(0.6834229913464561))
({'classifier__metric': 'euclidean', 'classifier__n_neighbors': 10, 'classifier__weights': 'uniform', 'normalizer': 'passthrough'}, np.float64(0.1157913069850766))
({'classifier__metric': 'euclidean', 'classifier__n_neighbors': 10, 'classifier__weights': 'uniform', 'normalizer': MinMaxScaler()}, np.float64(0.6955574490923349))
({'classifier__metric': 'euclidean', 'classifier__n_neighbors': 10, 'classifier__weights': 'uniform', 'normalizer': StandardScaler()}, np.float64(0.6860471330995802))
({'classifier__metric': 'euclidean', 'classifier__n_neighbors': 10, 'classifier__weights': 'distance', 'normalizer': 'passthrough'}, np.float64(0.14310059566240177))
({'classifier__metric': 'euclidean', 'classifier__n_neighbors': 10, 'classifier__weights': 'distance', 'normalizer': MinMaxScaler()}, np.float64(0.7035316821435433))
({'classifier__metric': 'euclidean', 'classifier__n_neighbors': 10, 'classifier__weights': 'distance', 'normalizer': StandardScaler()}, np.float64(0.691615057187545))
({'classifier__metric': 'cosine', 'classifier__n_neighbors': 1, 'classifier__weights': 'uniform', 'normalizer': 'passthrough'}, np.float64(0.10527040776150857))
({'classifier__metric': 'cosine', 'classifier__n_neighbors': 1, 'classifier__weights': 'uniform', 'normalizer': MinMaxScaler()}, np.float64(0.4590323476108448))
({'classifier__metric': 'cosine', 'classifier__n_neighbors': 1, 'classifier__weights': 'uniform', 'normalizer': StandardScaler()}, np.float64(0.47958515234726945))
({'classifier__metric': 'cosine', 'classifier__n_neighbors': 1, 'classifier__weights': 'distance', 'normalizer': 'passthrough'}, np.float64(0.1052704077615086))
({'classifier__metric': 'cosine', 'classifier__n_neighbors': 1, 'classifier__weights': 'distance', 'normalizer': MinMaxScaler()}, np.float64(0.4590323476108448))
({'classifier__metric': 'cosine', 'classifier__n_neighbors': 1, 'classifier__weights': 'distance', 'normalizer': StandardScaler()}, np.float64(0.47958515234726945))
({'classifier__metric': 'cosine', 'classifier__n_neighbors': 5, 'classifier__weights': 'uniform', 'normalizer': 'passthrough'}, np.float64(0.37805502479959713))
({'classifier__metric': 'cosine', 'classifier__n_neighbors': 5, 'classifier__weights': 'uniform', 'normalizer': MinMaxScaler()}, np.float64(0.6429483717302537))
({'classifier__metric': 'cosine', 'classifier__n_neighbors': 5, 'classifier__weights': 'uniform', 'normalizer': StandardScaler()}, np.float64(0.6639133943561187))
({'classifier__metric': 'cosine', 'classifier__n_neighbors': 5, 'classifier__weights': 'distance', 'normalizer': 'passthrough'}, np.float64(0.3955985736693544))
({'classifier__metric': 'cosine', 'classifier__n_neighbors': 5, 'classifier__weights': 'distance', 'normalizer': MinMaxScaler()}, np.float64(0.6439729194747269))
({'classifier__metric': 'cosine', 'classifier__n_neighbors': 5, 'classifier__weights': 'distance', 'normalizer': StandardScaler()}, np.float64(0.666103286084983))
({'classifier__metric': 'cosine', 'classifier__n_neighbors': 10, 'classifier__weights': 'uniform', 'normalizer': 'passthrough'}, np.float64(0.3775295488771868))
({'classifier__metric': 'cosine', 'classifier__n_neighbors': 10, 'classifier__weights': 'uniform', 'normalizer': MinMaxScaler()}, np.float64(0.6595874224717159))
({'classifier__metric': 'cosine', 'classifier__n_neighbors': 10, 'classifier__weights': 'uniform', 'normalizer': StandardScaler()}, np.float64(0.6765890035252449))
({'classifier__metric': 'cosine', 'classifier__n_neighbors': 10, 'classifier__weights': 'distance', 'normalizer': 'passthrough'}, np.float64(0.4089433531052468))
({'classifier__metric': 'cosine', 'classifier__n_neighbors': 10, 'classifier__weights': 'distance', 'normalizer': MinMaxScaler()}, np.float64(0.6650747099452051))
({'classifier__metric': 'cosine', 'classifier__n_neighbors': 10, 'classifier__weights': 'distance', 'normalizer': StandardScaler()}, np.float64(0.6829471618912982))
In [31]:
from sklearn.metrics import r2_score # изучите самостоятельно, как с помощью этой функции измерять качество
print("Максимальный r2_score ", grid_search.best_score_)
print("Лучшие параметры ", grid_search.best_params_)
best_model = grid_search.best_estimator_
best_model.fit(X_train, y_train)
y_pred = best_model.predict(X_test)
test_r2 = r2_score(y_test, y_pred)
print("r2_score на тестовой выборке ", test_r2)Максимальный r2_score 0.7035316821435433
Лучшие параметры {'classifier__metric': 'euclidean', 'classifier__n_neighbors': 10, 'classifier__weights': 'distance', 'normalizer': MinMaxScaler()}
r2_score на тестовой выборке 0.7117082182374788