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

时间:2012-06-06 06:45:00

标签: matlab machine-learning classification decision-tree

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

5 个答案:

答案 0 :(得分:5)

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

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

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

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

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

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

答案 1 :(得分:3)

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

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

您可以查看pruning叶子以改进决策树的推广。但正如所提到的,90%的准确度可以被认为是相当不错的。

答案 4 :(得分:0)

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

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

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

您也可以尝试随机森林。