我们可以将 sklearn 的 DecisionTreeClassifier 用于连续目标变量吗?

数据挖掘 Python 分类 scikit-学习 回归 决策树
2022-02-22 09:48:53

我有一个名为“质量”的连续目标变量,范围从 0 到 10。我的数据集中还有 11 个输入变量。

当我使用 sklearn 的 DecisionTreeClassifier() 构建模型时,我得到了 60% 的分数,但是当我使用 sklearn 的 DecisionTreeRegressor() 构建模型时,我得到的准确度只有 3%,而且 RMSE为 85%。

此外,当使用线性回归时,我的 R 平方值为 0.376。好吗?

数据集链接:https ://archive.ics.uci.edu/ml/datasets/Wine+Quality

难道我做错了什么?

我需要帮助。谢谢你。

2个回答

在您链接的 Wine 数据集中,该quality列不是连续变量而是离散的。它取 0 到 10 之间的整数值。

当您使用 时DecisionTreeClassifier,您假设您的目标变量是具有值的多类变量0,1,2,3,4,5,6,7,8,9,10因此,模型试图预测其中之一,并且仅预测这些值。

当您使用 时DecisionTreeRegressor,假设 0 到 10 之间的任何数字都是可以接受的。喜欢的号码4.52356结果,准确性将明显最差。如果出于某种原因仍想使用 Regressor,可以尝试对结果进行四舍五入,然后计算准确度。请记住,RMSA 不适合您的问题。你有一个多类而不是回归模型。

所有算法都支持分类和回归(连续目标变量)。有趣的部分是关于我们要训练模型的数据以及它们在测试数据上的表现。我们将考虑数据的最佳结果。