Python ValueError:未知的标签类型:';连续';在DecisionTreeClassifier()中

Python ValueError:未知的标签类型:';连续';在DecisionTreeClassifier()中,python,pandas,machine-learning,scikit-learn,decision-tree,Python,Pandas,Machine Learning,Scikit Learn,Decision Tree,我正在尝试创建一个模型,预测以下列的结果: Date Open High Close Result 1/22/2010 25.95 31.29 30.89 0.176104 2/19/2010 23.98 24.22 23.60 -0.343760 3/19/2010 21.46 23.16 22.50 0.124994 4/23/2010 21.32 21.77 21.06 -0.765601 5/2

我正在尝试创建一个模型,预测以下列的结果:

    Date    Open    High    Close   Result
1/22/2010   25.95   31.29   30.89   0.176104
2/19/2010   23.98   24.22   23.60   -0.343760
3/19/2010   21.46   23.16   22.50   0.124994
4/23/2010   21.32   21.77   21.06   -0.765601
5/21/2010   55.41   55.85   49.06   0.302556
我使用的代码是:

导入熊猫
从sklearn.tree导入DecisionTreeClassifier
dataset=pandas.read\u csv('data.csv'))
X=dataset.drop(列=['Date','Result'])
y=dataset.drop(列=['Date'、'Open'、'High'、'Close'])
模型=DecisionTreeClassifier()
模型拟合(X,y)
但我得到了一个错误:

ValueError:未知的标签类型:“连续”

也欢迎使用其他算法的建议。

您使用的是
DecisionTreeClassifier
,它是一个分类器,只会预测分类值,如
0
1
,但您的
结果列是连续的,因此您应该在ML中使用,重要的是第一步考虑你的问题的本质。这是个问题吗?您是否有目标数据,或者这是一个问题,您没有目标,希望了解更多有关数据固有结构的信息(例如)。然后,考虑在流水线中需要准备哪些步骤来准备数据()
在这种情况下,将浮点(浮点数)传递给分类器(DecisionTreeClassifier)。问题在于,分类器通常会分离不同的类,因此该分类器需要
字符串
整数
类型来区分不同的类(这称为“目标”)。你可以在一篇文章中了解更多

您要解决的问题是确定一个连续的数值输出,
Result
。这就是所谓的回归问题,因此您需要使用回归算法(例如)。你可以尝试其他回归算法,一旦你有了这个简单的工作,这是一个很好的开始,因为它是一个相当直截了当的理解,它是相当透明的,它是快速的,很容易实现-所以决策树是一个伟大的选择出发点

作为进一步的说明,考虑预处理数据是很重要的。您只需将目标与输入数据分离即可完成其中一些操作:

X = dataset.drop(columns=['Date','Result'])
y = dataset.drop(columns=['Date', 'Open', 'High', 'Close'])
但是,您可能希望进一步研究预处理,尤其是数据的预处理。这通常是实现哪种ML算法能够解释数据所必需的步骤。俗话说:“垃圾进,垃圾出”

预处理的一部分有时需要更改给定列的数据类型。问题中的错误,从表面上看,让人认为手头的问题是您需要更改数据类型。但是,如前所述,在您的问题中,如果您试图使用回归来确定连续输出,那么这样做是没有帮助的。

  • 你的方法是一个很好的尝试,但我认为这不是正确的方法
  • 在ML建模中,有三大类模型
  • 回归:你有牛顿定律的负责人吗?这些是帮助识别数据中隐藏的规则和逻辑的ML模型
  • 分类:这是一种用于将数据划分为不同类别的ML模型
  • 时间序列ML模型:这类似于股市数据分析。与上面不同,这里的日期X的值取决于X-1、X-2、X-3等等。这是一些更接近回归的东西,但这些需要像ARIMA这样的模型
  • 至于错误
    DecisionTreeClassifier
    应该用于识别1、2、3、4等类别。。依此类推,但仅限于一组有限的类


    对于像您的
    结果这样的连续和分数系列,您应该使用类似回归的模型或类似ARIMA的时间序列ML模型。

    顺便说一句,标签中有连续值(用于回归任务)。但是你正在执行分类器。哪些将采用离散值(二进制或多类)使用
    DecisionTreeGressor
    您能告诉我如何计算DecisionTreeGressor()精度的方法吗?当然,在这方面,您希望了解“度量”或。这可能有点让人不知所措,但您需要专门寻找“回归”指标。一个常用的度量是。为了使用它,你把实际值和预测传递给它,它会给你一个衡量你做得有多好的指标。