Scikit learn 如何应用从sciki学习决策树中学习到的规则

Scikit learn 如何应用从sciki学习决策树中学习到的规则,scikit-learn,decision-tree,Scikit Learn,Decision Tree,我正在scikit学习中构建决策树。搜索stackoverflow可以找到一种方法来提取与每个叶关联的规则。现在我的目标是将这些规则应用到新的观察中,看看新的观察结果会怎样 这是一个抽象的例子。假设我们得到了叶1的规则。a7,则观察属于叶#1。现在,我想做一个新的观察,并将这些规则应用到它身上,以检查它最后是什么叶子 我试图使用决策树进行分割 可以找到将决策树分类器与scikit学习结合使用的示例。该示例包括训练分类器和验证第二个数据集的结果 将经过训练的决策树应用于新数据样本时,可使用返回结果

我正在scikit学习中构建决策树。搜索stackoverflow可以找到一种方法来提取与每个叶关联的规则。现在我的目标是将这些规则应用到新的观察中,看看新的观察结果会怎样

这是一个抽象的例子。假设我们得到了叶1的规则。a7,则观察属于叶#1。现在,我想做一个新的观察,并将这些规则应用到它身上,以检查它最后是什么叶子


我试图使用决策树进行分割

可以找到将决策树分类器与scikit学习结合使用的示例。该示例包括训练分类器和验证第二个数据集的结果

将经过训练的决策树应用于新数据样本时,可使用返回结果:

 predict(X, check_input=True)
其中X是检查中的新数据样本的特征向量


链接可能会帮助您了解如何输出决策树分类器的规则。

您可以使用
DecisionTreeClassifier
apply
方法来获取每个样本预测为的叶的索引

from sklearn.tree import DecisionTreeClassifier
clf = DecisionTreeClassifier()
clf.fit([[1,2,3],[10,19,20],[6,7,7]],[1,1,0])    
clf.apply([[6,7,7]])
# array([3])

官方网站上的文件不充分@使用graphviz进行Mai可视化可以让您了解规则,但您需要手动编程这些规则,以便在新的观察中使用这些规则(了解leaf)。我期待着从决策树中自动提取一个函数,这将消除手动编码。当树很小时,手动编码是可以的,但是当它很大时,它实际上是不可能的。使用_tree属性如何?我认为您可以查看源代码以了解如何使用_tree属性,然后从那里开始。我不太明白你的问题。也许稍微澄清一下可能会有所帮助。@Mai,这是有道理的,但我希望有一条捷径。我认为ML模型通常是用来预测未来的实例的。DT经过训练并用于预测未来观测的结果。你为什么要提取规则?你完全正确,我知道。我想我是疯了。非常感谢。事实上,直到我研究了你的问题,我才知道这一点,所以我学到了一些新东西;)