能够将先验知识整合到决策树中的机器学习方法
Posted
技术标签:
【中文标题】能够将先验知识整合到决策树中的机器学习方法【英文标题】:Machine learning method which is able to integrate prior knowledge in a decision tree 【发布时间】:2016-12-22 11:48:27 【问题描述】:你们中有人知道一种机器学习方法或方法组合,可以将先验知识整合到决策树的构建过程中吗?
对于“先验知识”,我指的是特定节点中的特征是否真正负责结果分类的信息。想象一下,我们只有很短的时间来测量我们的特征,并且在这段时间内,我们有特征之间的相关性。如果我们现在再次测量相同的特征,我们可能不会得到这些特征之间的相关性,因为它们之间的相关性只是巧合。很遗憾,无法再次测量。
随之而来的问题是:算法选择来执行分割的特征并不是在现实世界中实际导致分割的特征。换句话说,算法选择了强相关特征,而另一个特征是应该选择的特征。这就是为什么我要为树学习过程设置规则/因果关系/约束。
【问题讨论】:
【参考方案1】:“已学习树中的特定特征” - 典型的决策树每个节点都有一个特征,因此每个特征可以出现在许多不同的节点中。同样,每个叶子都有一个分类,但每个分类可能出现在多个叶子中。 (并且对于二元分类器,任何非平凡的树都必须有重复的分类)。
这意味着您可以枚举所有叶子并按分类对它们进行排序以获得统一的叶子子集。对于每个这样的子集,您可以分析从树根开始的所有路径,以查看出现了哪些特征。但这将是一个大集合。
“但在我的例子中,有一些特征是强相关的……算法选择来执行分裂的特征并不是在现实世界中实际导致分裂的特征。” 有人说每个模型都是错误的,但有些模型是有用的。如果特征确实是强相关的,那么选择这个“错误”的特征并不会真正影响模型。
您当然可以只修改树构建中的拆分算法。简单地说,“如果剩余的类是 A 和 B,则使用拆分 S,否则使用算法 C4.5 确定拆分”是一种有效的拆分算法,它可以硬编码关于两个特定类的预先存在的知识,而不仅限于这种情况。
但请注意,在决策树中引入组合类 A+B
可能更容易,然后在后处理中在 A 和 B 之间做出决定。
【讨论】:
在我的情况下,选择错误的特征确实会影响模型,因为我想使用决策树来可视化数据中的因果关系并且特征是随机相关的......你到底是什么意思“引入一个组合类”?您是否有一个特定的计划可以做到这一点?谢谢 @JanLob:如果你想可视化因果关系,C4.5 不会给你这个。事实上,没有任何面向数据的方法可以为您提供这一点。他们致力于相关性,而不是因果关系。当问题说完全相反的“强相关”时,我不明白你在这里怎么说特征是“随机相关”。我怀疑您需要更好地定义您的问题;您可能看不到答案,因为您还没有真正的问题。 @MSalters:很抱歉措辞不好!我并不是说特征是随机相关的,而是随机特征是相关的。这意味着,我们只有很短的时间来测量我们的特征,并且在这段时间内,我们有特征之间的相关性。但是如果我们再次测量相同的特征,我们可能不会得到这些特征之间的相关性,因为它们之间的相关性只是一个巧合。这就是为什么我想手动设置一些规则(先验知识)。 好吧,从技术上讲,没有什么能阻止您对初始树进行硬编码,然后让 C4.5 从那里开始运行。该算法非常无状态,它执行节点拆分而不考虑节点父节点。以上是关于能够将先验知识整合到决策树中的机器学习方法的主要内容,如果未能解决你的问题,请参考以下文章