使用网格搜索选择最佳参数以进行回归模型

3

我进行的是线性回归建模,使用网格搜索来选择最佳参数。以下是我为此工作遵循的Python步骤,但是我遇到了错误(ValueError: Invalid parameter alpha for estimator LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None, normalize=False). Check the list of available parameters with estimator.get_params().keys()),请帮助我为我的模型选择最佳参数。

from sklearn.linear_model import LinearRegression
reg = LinearRegression()
parameters = {"alpha": [1, 10, 100, 290, 500],
              "fit_intercept": [True, False],
              "solver": ['svd', 'cholesky', 'lsqr', 'sparse_cg', 'sag', 'saga'], 
             }
grid = GridSearchCV(estimator=reg, param_grid = parameters, cv = 2, n_jobs=-1)
grid.fit(x_train, y_train)
reg.score(x_test,y_test)

2
sklearn的LinearRegression()函数中没有alpha参数。 - Celius Stingher
谢谢你的帮助。我是机器学习的初学者。我会纠正那个错误。 - randunu galhena
@CeliusStingher 那么在线性回归的情况下,如何调整最佳超参数? - Amit Modi
1
刚回答了@AmitModi的问题 :) - Celius Stingher
1个回答

2
这是因为在sklearn.LinearRegression()中没有调整alpha参数,因此您将无效的参数传递给函数,生成您收到的ValueError。您应该查看这个函数文档以更好地理解它:

sklearn.linear_model.LinearRegression(*, fit_intercept=True, normalize=False, copy_X=True, n_jobs=None)

从这里可以看出,我们可以调整的超参数是fit_interceptnormalizen_jobs。每个函数都有自己的可调参数。例如,从sklearn中的极端随机树回归模型中的ExtraTreeRegressor

sklearn.ensemble.ExtraTreesRegressor(n_estimators=100, *, criterion='mse', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features='auto', max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, bootstrap=False, oob_score=False, n_jobs=None, random_state=None, verbose=0, warm_start=False, ccp_alpha=0.0, max_samples=None)

正如您所见,可以进行微调的参数更多,也许允许模型更具灵活性。在随机应用GridSearchCV之前,请确保正确理解每个模型及其可调参数。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接