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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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