假设我进行了决策树分析。
但是性能特征并不好(例如 ROC 没什么好)。
这棵“不太好”的树有什么我可以做的吗?还是我通常需要丢弃它并尝试其他方法(新数据集或对相同数据的新分析)?
假设我进行了决策树分析。
但是性能特征并不好(例如 ROC 没什么好)。
这棵“不太好”的树有什么我可以做的吗?还是我通常需要丢弃它并尝试其他方法(新数据集或对相同数据的新分析)?
决策树有一大特点和一大缺点。它们的最大特点是它们是所谓的玻璃盒模型。我的意思是,他们以非常清晰和直观的方式展示他们学到的东西。这个名字来源于你可以透过玻璃盒子看到的事实。因此,正因为如此,决策树对分析非常有用,它们很好地支持了理解变量之间的关系,哪些变量很重要,它们以何种方式重要。即使他们没有提供清晰的信息,他们也可以为您带来有关这方面的想法。这可能非常有用,尤其是如果您具有领域专家知识并且可以以有意义的方式将事物组合在一起。
它们的主要缺点是它们的高可变性。这个问题主要是由他们的贪婪方法引起的。第一级节点中的每个决策对树的形状都不同。您甚至可以更进一步发现,在许多情况下,一个额外的数据点就足以获得一棵完全不同的树,尤其是在样本很小或数据嘈杂的情况下。
有两种方法可以解决这个问题。第一种方法试图改进您构建的单棵树。这种方法称为剪枝。一个简单的例子是减少错误修剪。这种方法简单并且产生良好的效果。您在数据样本上训练您的树。然后你取另一个数据样本,将新数据拟合到树上,然后从新数据的角度再次评估树的节点。如果一个非叶节点如果不被分裂与如果它被分裂至少得到相同的错误,那么您可以决定切割子节点并将该节点转换为叶节点。然而,有更好的剪枝策略,它们更强大,可能基于交叉验证或其他一些标准,主要是基于统计的。但是请注意,为了减少错误修剪,您需要额外的数据,或者将原始样本一分为二,一个用于训练,另一个用于修剪。如果您进一步估计预测误差,则需要第三个样本。
第二种方法是多次构建一些树,然后根据交叉验证、引导或您使用的任何方法选择一些树,或者使用诸如 bagging 或 boosting 算法之类的树集合。请注意,为了提升和装袋,您会失去玻璃盒的属性。
最终,您必须在理解和性能之间做出选择,将修剪过程作为一个不错的折衷方案。
可以做两件事。
简而言之:是的,把它扔掉。您使用的任何 ML 模型都有一项工作——预测。如果它不能完成这项工作,那么你到底为什么要使用它呢?使用 ML 算法的全部动力是预测比随机猜测更好。理想情况下,比随机猜测要好得多。
理解模型为什么做出决策当然有一定的价值,但前提是该决策对最终用户有价值/解决了业务问题。