【问题标题】:How to improve accuracy of decision tree in matlab如何提高matlab中决策树的准确性
【发布时间】:2012-06-10 04:21:53
【问题描述】:

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

【问题讨论】:

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

标签: matlab machine-learning classification decision-tree


【解决方案1】:

决策树可能由于多种原因而表现不佳,我能想到的一个突出原因是,在计算拆分时,他们没有考虑变量或目标变量对其他变量的相互依赖性。 在进行性能提升之前,应该知道它不会导致过拟合,并且应该能够泛化。

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

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

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        您可以查看pruning 叶子以改进决策树的泛化能力。但如前所述,90% 的准确率可以认为是相当不错的......

        【讨论】:

          【解决方案5】:

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

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

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

          你也可以试试随机森林。

          【讨论】:

            猜你喜欢
            • 2017-06-22
            • 2020-03-27
            • 2018-07-03
            • 2018-04-11
            • 2023-04-08
            • 2014-05-12
            • 1970-01-01
            • 2018-08-26
            相关资源
            最近更新 更多