如何使决策树规则更容易理解?

时间:2015-07-09 14:20:26

标签: r machine-learning scikit-learn random-forest decision-tree

我想从决策树/随机森林中提取有用的规则,以便开发更适用的方法来处理规则和预测。所以我需要一个能让规则更容易理解的应用程序。

出于我的目的有任何建议(例如可视化,验证方法等)吗?

2 个答案:

答案 0 :(得分:1)

为什么选择特定的分割,答案总是如下:"因为分割创造了目标变量的最佳分割。"

你引用了scikit-learn ...继续并简要地扫描scikit-learn的documentation on Decision Trees ...它有一个例子,这正是你在中间要求的这页纸。它看起来像这样:

graphical representation of decision tree

生成此图的代码也是:

from sklearn.datasets import load_iris
from sklearn import tree
iris = load_iris()
clf = tree.DecisionTreeClassifier()
clf = clf.fit(iris.data, iris.target)
from sklearn.externals.six import StringIO
with open("iris.dot", 'w') as f:
f = tree.export_graphviz(clf, out_file=f)

还有其他一些图形表示,附带代码:

enter image description here enter image description here

SKL文档通常很棒,非常有用。

希望这有帮助!

答案 1 :(得分:0)

虽然决策树确实可以做到这一点,但AN6U5在描述如何使用随机森林如何使用数据的随机子集和特征的随机子集训练的小树丛时做得很好。因此,每个树仅在特征和数据的有限设置中是最佳的。由于它们通常有100个甚至1000个,因此通过检查随机数据来确定上下文将是一项吃力不讨好的任务。我不认为有人这样做。

然而,为随机森林生成的功能有重要性排名,几乎所有实现都会在请求时输出它们。结果证明它们非常有用。

其中两个最重要的是MDI(平均降低杂质)和MDA(平均降低精确度)。这篇出色的着作的第6章详细描述了它们:http://arxiv.org/pdf/1407.7502v3.pdf