GridSearchCV 引发 ValueError: continuous is not supported for DecisionTreeRegressor

我正在学习机器学习,并在进行波士顿房价预测任务。我有以下代码:

from sklearn.metrics import fbeta_score, make_scorer
from sklearn.model_selection import GridSearchCV
def fit_model(X, y):
    """ 使用 GridSearchCV 在输入数据 X 和目标标签 y 上调整决策树回归模型的参数,并返回这个最优模型。 """
    # 创建一个决策树回归器对象
    regressor = DecisionTreeRegressor()
    # 设置我们希望调整的参数
    parameters = {'max_depth':(1,2,3,4,5,6,7,8,9,10)}
    # 创建一个合适的评分函数
    scoring_function = make_scorer(fbeta_score, beta=2)
    # 创建 GridSearchCV 对象
    reg = GridSearchCV(regressor, param_grid=parameters, scoring=scoring_function)
    print reg
    # 拟合学习器到数据上以获得参数调整后的最优模型
    reg.fit(X, y)
    # 返回最优模型
    return reg.best_estimator_
reg = fit_model(housing_features, housing_prices)

这会引发 ValueError: continuous is not supported 错误,错误发生在 reg.fit(X, y) 这一行,我不明白为什么会这样。是什么原因导致的,我在这里遗漏了什么?


回答:

这是因为以下这行代码:

scoring_function = make_scorer(fbeta_score, beta=2)

这行代码将评分指标设置为 fbeta,这是一个用于分类任务的指标!

而你在这里进行的是回归任务,如下所示:

regressor = DecisionTreeRegressor()

根据文档

enter image description here

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注