ValueError: Unknown label type: 'continuous' using DT with RF

ValueError: Unknown label type: 'continuous' using DT with RF

我正在尝试创建一个决策树,下面是我的代码:

X=updated[['dayofthemonth','hour']]
y=updated['Encounters']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=80, shuffle=True)
gpc = RandomForestRegressor(random_state=0).fit(X_train, y_train)
pre=gpc.predict(X_test)
gpc.score(X_test, y_test)
pre

我也在尝试用它创建一个决策树,所以我更新了代码如下:

X=updated[['dayofthemonth','hour']]
y=updated['Encounters']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=80, shuffle=True)
gpc = RandomForestRegressor(random_state=0).fit(X_train, y_train)
pre=gpc.predict(X_test)
gpc.score(X_test, y_test)
pre
clf = tree.DecisionTreeClassifier()
clf = clf.fit(X, y)

但仍然出现以下错误:

ValueError: Unknown label type: 'continuous'

首先你必须弄清楚你要解决的是哪种类型的机器学习问题:

  • 分类: 您正在尝试预测一个 class(示例:好, 正常,差)
  • Continuous/Regressor: 您正在尝试预测一个连续值(示例: 房价)

那么,你的 y=updated['Encounters'] 是分类的还是连续的?

我会假设(观察错误)你想要的输出是连续的。所以你正在处理 Regressor 问题。在你的随机森林中,你使用了模型:RandomForestRegressor(),所以,顾名思义,它是一个用于回归的随机森林,所以它会起作用。

但是,当您尝试决策树时,您应用了下一个模型:DecisionTreeClassifier()。如您所见,现在您正在实施一个分类器模型,它不适合您的问题。要解决它,请使用下一个代码而不是 DecisionTreeClassifier():

clf = tree.DecisionTreeRegressor()