ValueError: 未知标签类型: ‘continuous’ 在 DecisionTreeClassifier()

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

    Date    Open    High    Close   Result1/22/2010   25.95   31.29   30.89   0.1761042/19/2010   23.98   24.22   23.60   -0.3437603/19/2010   21.46   23.16   22.50   0.1249944/23/2010   21.32   21.77   21.06   -0.7656015/21/2010   55.41   55.85   49.06   0.302556

我使用的代码是:

但我得到了一个错误:

ValueError: Unknown label type: 'continuous'

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


回答:

在机器学习中,第一步需要考虑问题的性质非常重要。这是回归还是分类问题?你是否有目标数据(监督学习),还是这是一个没有目标且想要了解数据内在结构的问题(如无监督学习)。然后,考虑在你的数据处理流程中需要采取哪些步骤来准备数据(预处理)。

在这种情况下,你将浮点数传递给了分类器(DecisionTreeClassifier)。这样做的问题在于,分类器通常用于区分不同的类别,因此这个分类器期望一个stringinteger类型来区分不同的类别(这被称为“目标”)。你可以在分类器的介绍中阅读更多相关内容。

你试图解决的问题是确定一个连续的数值输出,Result。这被称为回归问题,因此你需要使用回归算法(如DecisionTreeRegressor)。一旦你让这个简单的算法工作起来,你可以尝试其他回归算法,这是一个很好的起点,因为它相当简单易懂,透明度高,速度快,易于实现——因此决策树是一个很好的起点!

进一步来说,考虑对数据进行预处理是很重要的。你已经通过将目标数据与输入数据分离开来做了一些预处理:

X = dataset.drop(columns=['Date','Result'])y = dataset.drop(columns=['Date', 'Open', 'High', 'Close'])

然而,你可能希望进一步研究预处理,特别是标准化你的数据。这通常是实现的任何机器学习算法能够解释你的数据所需的一个步骤。有一句谚语说:“垃圾输入,垃圾输出”。

预处理有时需要更改给定列的数据类型。你在问题中发布的错误,从表面上看,让人认为手头的问题是你需要更改数据类型。但正如解释的那样,在你的问题情况下,这样做没有帮助,因为你寻求使用回归来确定一个连续的输出。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注