Como nuestro conjunto de datos es pequeño y scikit-learn se ha desarrollado pensando en el rendimiento, el código se ejecutó rápidamente, a medida que aumentamos el valor de k de 1 a 5, el valor de MSE cayó de aproximadamente 26.364 a aproximadamente 14.090:

Vamos a ampliar la búsqueda en la red hasta un valor de k de 20. Aunque 20 puede parecer un punto final arbitrario para nuestra búsqueda en la cuadrícula, siempre podemos ampliar los valores que probamos si no estamos convencidos de que el valor de MSE más bajo está asociado a uno de los valores de hiperparámetro que hemos probado hasta ahora.
|
|
features = ['accommodates', 'bedrooms', "bathrooms" 'number_of_reviews'] hyper_params = [x for x in range(1, 21)] mse_values = List() for hp in hyper_params: knn = KNeighborsRegressor (n_neighbors=hp, algorithm="brute") knn.fit(train_df [features], train_df['price']) predictions = knn.predict(test_df[features]) mse = mean_squared_error(test_df['price'], predictions) mse_values. append (mse) print(mse_values) |