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(度= 4, include_bias = True,interaction_only = False)没有。
1)我理解alpha不是多项式特征的参数。但是,当我尝试删除alpha并使数据适合时,它无法正常工作。
2)这是否意味着我不应该使用网格搜索来获得KNN回归,线性和内核SVM的分数?
我是python的新手,非常感谢任何建议。提前谢谢。
答案 0 :(得分:0)
sklearn.preprocessing.PolynomialFeatures()
没有评分功能。它实际上不是估算器或机器学习模型,它只是转换矩阵。您可以将它作为管道的一部分并测试其参数,但是您必须将具有评分函数的实际估算器传递给GridSearchCV
。
当您处理变换器与估算器时,拟合数据具有不同的含义,仅在后一种情况下它意味着"train"
。