【发布时间】:2015-09-27 23:51:06
【问题描述】:
我想从决策树/随机森林中提取有用的规则,以便开发一种更适用的方式来处理规则和预测。所以我需要一个让规则更容易理解的应用程序。
对我的目的有什么建议(例如可视化、验证方法等)吗?
【问题讨论】:
标签: r machine-learning scikit-learn random-forest decision-tree
我想从决策树/随机森林中提取有用的规则,以便开发一种更适用的方式来处理规则和预测。所以我需要一个让规则更容易理解的应用程序。
对我的目的有什么建议(例如可视化、验证方法等)吗?
【问题讨论】:
标签: r machine-learning scikit-learn random-forest decision-tree
至于为什么选择特定拆分,答案总是:“因为拆分创建了目标变量的最佳拆分。”
您引用了 scikit-learn... 继续简单地扫描 scikit-learn 的 documentation on Decision Trees... 它有一个示例,这正是您在页面中间所要求的。它看起来像这样:
生成此图的代码也在那里:
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)
那里还有其他几种图形表示形式,并附有代码:
SKL 文档通常很棒而且非常有用。
希望这会有所帮助!
【讨论】:
虽然这对于决策树来说当然是可能的,并且 AN6U5 很好地描述了随机森林如何使用小树束,这些小树使用数据的随机子集和特征的随机子集进行训练。因此,每棵树仅在特征和数据的有限设置中才是最优的。由于它们通常有 100 甚至 1000 多个,因此通过检查随机数据来找出上下文将是一项吃力不讨好的任务。我认为没有人这样做。
但是,随机森林生成的特征有重要性排名,并且几乎所有实现都会在需要时输出它们。结果证明它们非常有用。
其中最重要的两个是 MDI(平均减少杂质)和 MDA(平均减少准确度)。在这部优秀作品的第 6 章中对它们进行了一些详细的描述:http://arxiv.org/pdf/1407.7502v3.pdf
【讨论】: