我有一组数据,我使用决策树在matlab中对它们进行分类。我将这组分为两部分;一个训练数据(85%)和其他测试数据(15%)。问题是准确率在90左右,我不知道如何改进它。如果您对此有任何了解,我将不胜感激。
答案 0 :(得分:5)
由于许多原因,决策树的表现可能很低,我可以想到的一个突出原因是,在计算拆分时,他们不考虑变量或目标变量对其他变量的相互依赖性。 在改进性能之前,应该意识到它不会导致过度拟合并且能够推广。
为了提高性能,可以做以下几件事:
变量预选:可以进行不同的测试,如多重共线性测试,VIF计算,变量IV计算,只选择少数顶级变量。这将提高性能,因为它会严格删除不需要的变量。
集合学习使用多棵树(随机森林)来预测结果。随机森林通常比单一决策树表现良好,因为它们设法减少偏差和方差。它们也不太容易过度拟合。
K-fold交叉验证:训练数据本身的交叉验证可以稍微改善模型的性能。
混合模型:使用混合模型,即在使用决策树后使用逻辑回归来提高性能。
答案 1 :(得分:3)
我想这里更重要的问题是给定域名的准确性是多少:如果你对垃圾邮件进行分类,那么90%可能会有点低,但如果你预测股票价格那么90%真的很高!
如果您在已知的域集上执行此操作,并且之前的分类准确性示例高于您的,则可以尝试以下几种方法:
答案 2 :(得分:1)
我认为你不应该改进这个,可能是数据被分类器过度装配了。尝试使用其他数据集或交叉验证来查看更准确的结果。
顺便说一句,90%,如果没有过度装配,是很好的结果,可能你甚至不需要改进它。
答案 3 :(得分:0)
您可以查看pruning叶子以改进决策树的推广。但正如所提到的,90%的准确度可以被认为是相当不错的。
答案 4 :(得分:0)
90%是好还是坏,取决于数据的域。
但是,您的数据中的类可能会重叠,而且您实际上不能超过90%。
您可以尝试查看哪些节点是错误,并检查是否可以通过更改它们来改进分类。
您也可以尝试随机森林。