GridSearchCV 给出 ValueError:DecisionTreeRegressor 不支持连续
Posted
技术标签:
【中文标题】GridSearchCV 给出 ValueError:DecisionTreeRegressor 不支持连续【英文标题】:GridSearchCV gives ValueError: continuous is not supported for DecisionTreeRegressor 【发布时间】:2018-05-19 11:46:38 【问题描述】:我正在学习机器学习并完成波士顿房价预测的任务。我有以下代码:
from sklearn.metrics import fbeta_score, make_scorer
from sklearn.model_selection import GridSearchCV
def fit_model(X, y):
""" Tunes a decision tree regressor model using GridSearchCV on the input data X
and target labels y and returns this optimal model. """
# Create a decision tree regressor object
regressor = DecisionTreeRegressor()
# Set up the parameters we wish to tune
parameters = 'max_depth':(1,2,3,4,5,6,7,8,9,10)
# Make an appropriate scoring function
scoring_function = make_scorer(fbeta_score, beta=2)
# Make the GridSearchCV object
reg = GridSearchCV(regressor, param_grid=parameters, scoring=scoring_function)
print reg
# Fit the learner to the data to obtain the optimal model with tuned parameters
reg.fit(X, y)
# Return the optimal model
return reg.best_estimator_
reg = fit_model(housing_features, housing_prices)
这给了我 ValueError: Continuous is not supported for the reg.fit(X, y) 行,我不明白为什么。这是什么原因,我在这里缺少什么?
【问题讨论】:
【参考方案1】:那是因为这条线:
scoring_function = make_scorer(fbeta_score, beta=2)
这会将评分指标设置为fbeta,用于分类任务!
您在此处进行回归,如下所示:
regressor = DecisionTreeRegressor()
来自the docs
【讨论】:
以上是关于GridSearchCV 给出 ValueError:DecisionTreeRegressor 不支持连续的主要内容,如果未能解决你的问题,请参考以下文章
与 xgboost.cv 相比,GridSearchCV 没有给出与预期相同的结果
如果 GridSearchCV 给出了一些排名为 1 的估计器,它将选择哪一个作为最佳估计器?
GridSearchCV 打分参数:使用打分='f1' 或打分=无(默认使用准确度)给出相同的结果
sklearn GridSearchCV 给出了有问题的结果