Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在matlab中提高决策树的精度_Matlab_Machine Learning_Classification_Decision Tree - Fatal编程技术网

如何在matlab中提高决策树的精度

如何在matlab中提高决策树的精度,matlab,machine-learning,classification,decision-tree,Matlab,Machine Learning,Classification,Decision Tree,我有一组数据,我在matlab中使用决策树对它们进行分类。我把这一套分成两部分;一个训练数据(85%)和另一个测试数据(15%)。问题是准确率在90%左右,我不知道如何提高它。如果您对此有任何想法,我将不胜感激。我认为您不应该对此进行改进,可能是分类器过度拟合了数据。尝试使用其他数据集,或交叉验证以查看更准确的结果 顺便说一句,如果不是过度拟合,90%是一个很好的结果,也许你甚至不需要改进它。你可以查看树叶来改进决策树的泛化。但是正如前面提到的,90%的准确率可以被认为是相当好的。我想这里更重要

我有一组数据,我在matlab中使用决策树对它们进行分类。我把这一套分成两部分;一个训练数据(85%)和另一个测试数据(15%)。问题是准确率在90%左右,我不知道如何提高它。如果您对此有任何想法,我将不胜感激。

我认为您不应该对此进行改进,可能是分类器过度拟合了数据。尝试使用其他数据集,或交叉验证以查看更准确的结果


顺便说一句,如果不是过度拟合,90%是一个很好的结果,也许你甚至不需要改进它。

你可以查看树叶来改进决策树的泛化。但是正如前面提到的,90%的准确率可以被认为是相当好的。

我想这里更重要的问题是,对于给定的领域,什么是好的准确率:如果你对垃圾邮件进行分类,那么90%可能有点低,但是如果你预测股价,那么90%确实很高

如果您在一个已知的域集上执行此操作,并且之前有一些分类精度高于您的示例,那么您可以尝试以下几种方法:


90%是好是坏,取决于数据的领域

然而,数据中的类可能是重叠的,您不能真正完成超过90%的工作

您可以尝试查看哪些节点是错误,并检查是否有可能通过更改它们来改进分类


你也可以尝试随机森林。

< P>决策树可能因为许多原因而执行低,一个突出的原因,我可以想到的是,在计算一个分裂时,他们不考虑变量或目标变量对其他变量的相互依赖性。 在开始改进性能之前,应注意不会导致过度装配,并应能够概括

要提高性能,可以做以下几件事:

  • 变量预选:可以对变量进行不同的测试,如多重共线性测试、VIF计算、IV计算,以仅选择几个顶部变量。这将导致性能的提高,因为它将严格消除不需要的变量

  • 集成学习使用多棵树(随机森林)预测结果。一般来说,随机森林比单个决策树表现更好,因为它们能够减少偏差和方差。它们也不太容易过度装配

  • K-Fold交叉验证:训练数据本身的交叉验证可以稍微提高模型的性能

  • 混合模型:使用混合模型,即在使用决策树后使用逻辑回归来提高性能


数据集的维度是什么?您是否有理由必须使用决策树,或者您是否可以探索其他算法?