#python
Вопрос:
Мне трудно использовать код gridCVsearch для различных линейных моделей.
Я получаю ошибки на одном и том же этапе для каждой модели. Например, мои коды для линейной регрессии, как показано ниже:
from sklearn.model_selection import GridSearchCV
from sklearn.linear_model import LinearRegression
from sklearn.pipeline import make_pipeline
lr_pipe = make_pipeline(StandardScaler(), LinearRegression())
lr_pipe.fit(X_train, y_train)
lr_pipe.score(X_test, y_test)
param_grid = {'n_neighbors': range(1, 10)}
grid = GridSearchCV(lr_pipe, param_grid, cv=10)
grid.fit(X_train, y_train)
print(grid.best_params_)
print(grid.score(X_test, y_test))
Я получаю ошибку на шаге «grid.fit(X_train, y_train)» с сообщением:
ValueError: Invalid parameter n_neighbors for estimator Pipeline(memory=None,
steps=[('standardscaler',
StandardScaler(copy=True, with_mean=True, with_std=True)),
('linearregression',
LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,
normalize=False))],
verbose=False). Check the list of available parameters with `estimator.get_params().keys()`.
Что я сделал не так в своем кодировании? я в точности следовал общим кодировкам для GridSearchCV.
Комментарии:
1. Как указано в ошибке, LinearRegression в sklearn не имеет параметра
n_neighbors
. Посмотрите в документах , какие параметры он принимает. (StandardScaler также не принимает этот параметр)2. Как вы импортируете n_neighbors? приведенный ниже код, похоже, не работает: от sklearn.neighbors. KNeighborsРегрессор импорт n_neighbors
3. Боюсь, я не понимаю вопроса. Это все равно что спрашивать, как использовать рулевое колесо автомобиля, чтобы приготовить пирог с мясом. Ты просто…не делай этого. Если вы хотите использовать модель, основанную на соседстве, вам необходимо выбрать один из доступных алгоритмов соседей . Если вы хотите использовать линейную регрессию, то вам следует использовать параметры для линейной регрессии, которая не имеет встроенной функциональности для окрестностей.