2012-06-06 244 views
2

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

+0

什么是数据集的维度?是否有某些原因必须使用决策树,或者您可以探索其他算法吗? –

回答

1

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

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

0

您可以查看pruning叶子来改进决策树的泛化。但正如所提到的,90%的准确率也算是相当不错的..

0

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

但是,您的数据中的类可能会重叠,而且您无法真正做到超过90%。

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

您还可以尝试随机森林。

5

决策树可能因为很多原因而低性能,这是我能想到的一个突出的原因是,在计算分裂他们不考虑的变量或其他变量目标变量的相互依存关系。 在改进性能之前,应该意识到它不应引起过度拟合并能够推广。

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

  • 可变预选:不同的测试可以像多重测试,VIF计算,IV计算来完成对变量的选择只有少数顶级的变量。这将会提高性能,因为它会严格削减不需要的变量。

  • Ensemble Learning使用多棵树(随机森林)来预测结果。随机森林通常比单一决策树表现出色,因为他们设法减少偏见和变异。它们也不太容易过度配合。

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

  • 混合模型:使用混合模型,即使用决策树改进性能后使用逻辑回归。