【问题标题】:Error message on attempting to fit training data using GridSearch function尝试使用 GridSearch 函数拟合训练数据时出现错误消息
【发布时间】:2018-08-11 11:12:49
【问题描述】:
from sklearn.preprocessing import PolynomialFeatures

polyreg = PolynomialFeatures(degree = 4)

param_grid = {'alpha': [0.001, 0.01, 0.1, 1, 10, 100]}

grid_search_polyreg = GridSearchCV(polyreg, param_grid, cv = 5)

grid_search_polyreg.fit(x_train, y_train)

grid_search_polyreg.score(x_test, y_test)

print("Best Parameters for polynomial regression: 
    {}".format(grid_search_polyreg.best_params_))

print("Best Score for polynomial regression: 
    {:.2f}".format(grid_search_polyreg.best_score_))

TypeError:如果未指定评分,则传递的估计器应 有一个“得分”的方法。估计器 PolynomialFeatures(degree=4, include_bias=True,interaction_only=False) 没有。

1)我了解 alpha 不是多项式特征的参数。但是当我尝试删除 alpha 并拟合数据时它不起作用。

2) 这是否意味着我不应该使用网格搜索来获取 KNN Regressor、Linear 和 kernel SVM 的分数?

我是 python 新手,非常感谢任何建议。提前致谢。

【问题讨论】:

  • 试试polyreg = PolynomialFeatures()param_grid = {'degree':[2,3,4,5]}
  • @AkshayNevrekar 已经尝试过该选项。给我同样的错误。

标签: python-3.x scikit-learn grid-search


【解决方案1】:

sklearn.preprocessing.PolynomialFeatures() 没有评分功能。它实际上不是一个估计器或机器学习模型,它只是转换一个矩阵。您可以将其作为管道的一部分并测试其参数,但您必须将具有评分功能的实际估计器传递给GridSearchCV

在处理转换器和估算器时,拟合数据具有不同的含义,只有在后一种情况下才意味着 "train"

【讨论】:

    猜你喜欢
    • 2020-02-03
    • 1970-01-01
    • 2022-01-05
    • 2020-04-16
    • 2020-07-13
    • 2019-08-14
    • 1970-01-01
    • 2017-10-03
    • 2018-11-23
    相关资源
    最近更新 更多