繁体   English   中英

如何提高matlab中决策树的准确性

[英]How to improve accuracy of decision tree in matlab

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

由于许多原因,决策树可能表现较低,我可以想到的一个突出原因是,在计算拆分时,他们不考虑变量或目标变量对其他变量的相互依赖性。 在改进性能之前,应该意识到它不会导致过度拟合并且应该能够推广。

为了提高性能,可以完成以下几项工作:

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

  • 集成学习使用多个树(随机森林)来预测结果。 随机森林通常比单一决策树表现良好,因为它们设法减少偏差和方差。 它们也不太容易过度拟合。

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

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

我想这里更重要的问题是给定域名的准确性是多少:如果你对垃圾邮件进行分类,那么90%可能有点低,但如果你预测股票价格,那么90%真的很高!

如果您在已知的域集上执行此操作,并且之前的分类准确性示例高于您的,则可以尝试以下几种方法:

我不认为你应该改进这个,可能是数据被分类器过度装配了。 尝试使用其他数据集或交叉验证来查看更准确的结果。

顺便说一句,90%,如果没有过度装配,是很好的结果,可能你甚至不需要改进它。

您可以考虑修剪树叶以改进决策树的泛化。 但正如所提到的,90%的准确度可以被认为是相当不错的..

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

但是,您的数据中的类可能是重叠的,并且您实际上不能超过90%。

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

您也可以尝试随机森林。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM