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()精度的方法吗?当然,在这方面,您希望了解“度量”或。这可能有点让人不知所措,但您需要专门寻找“回归”指标。一个常用的度量是。为了使用它,你把实际值和预测传递给它,它会给你一个衡量你做得有多好的指标。