【问题标题】:ValueError: Unknown label type: 'continuous' when applying Random ForrestValueError:未知标签类型:应用随机森林时“连续”
【发布时间】:2018-06-05 03:52:15
【问题描述】:

我有一个数据集df_train 和一些标签df_train_labels

print(df_train.shape)
print(df_train_labels.shape)

输出:

(1460, 6)
(1460,)

print(df_train[0:4])
print(df_train_labels[0:4])

输出

   OverallQual  GrLivArea  GarageCars  TotalBsmtSF  FullBath  YearBuilt
0            1   0.000000           1            1         1          1
1            1   0.000000           0            1         0          1
2            0   0.693147           0            2         0          2
3            0   1.098612           1            3         1          3
0    2.505338
1    2.493950
2    2.510994
3    2.472277
Name: SalePrice, dtype: float64

我正在尝试根据这些数据拟合模型:

from sklearn.ensemble import RandomForestClassifier
clf = RandomForestClassifier(n_estimators=10)
clf = clf.fit(df_train, df_train_labels)

但是,最后一行失败并出现此错误:

raise ValueError("Unknown label type: %r" % y_type)
ValueError: Unknown label type: 'continuous'

我查看了herehere,但没有看到任何与我的问题相关的信息。

知道可能出了什么问题吗?

【问题讨论】:

  • 您的问题的答案在您在此处链接的两个帖子中。 df_train_labels 包含实数,但您使用的 分类器 需要离散数字 (labels)。也许,你想要RandomForestRegressor 而不是RandomForestClassifier

标签: python pandas dataframe scikit-learn


【解决方案1】:

如果您的解决方案需要 分类 而不是 回归,那么我建议您使用非连续标签列表,例如 [0,1,2,3] 并创建一个与原始标签列表的一对一映射。

【讨论】:

    【解决方案2】:

    RandomForestClassifier 似乎不适用于浮点数,所以我改用了RandomForestRegressor

    【讨论】:

    • “似乎不起作用”并没有完全涵盖它根本不是为它设计的事实!你正在做回归而不是分类,所以使用了错误的东西。
    • 请先了解您在这里解决的问题。您正在尝试预测连续值,这是一项回归任务。
    猜你喜欢
    • 2021-08-19
    • 2017-08-29
    • 2018-12-10
    • 2018-02-15
    • 2021-07-17
    • 2020-05-11
    • 2018-07-22
    • 2021-04-04
    • 2021-06-05
    相关资源
    最近更新 更多