详细 小白的决策树学习笔记( 二 )


##sklearn官方文档中的应用示例from sklearn.datasets import load_irisfrom sklearn.model_selection import cross_val_scorefrom sklearn.tree import DecisionTreeClassifierclf = DecisionTreeClassifier(random_state=0) ##调用决策树分类器,并设定随机种子iris = load_iris()##加载数据集cross_val_score(clf, iris.data, iris.target, cv=10) '''对全数据集进行交叉验证,交叉验证折数为10即将全数据集分为十份,每次取其中一份作为测试集,剩下九份作为训练集,决策树分类器在训练集上训练,训练后在测试集上测试'''

详细  小白的决策树学习笔记

文章插图
对新数据的预测可调用clf.(),中的clf.()还可输出分类的概率值,库中可直接调用实现的功能如下:
官方文档中提到基于基尼指数作为分裂指标时,可使用clf.得到由基尼指数决定的特征重要性,但此特征重要性分析会偏向于把特征值多(即特征纯度低)的特征视为重要特征,推荐使用..ce作为替代,即依次随机打乱某列特征,观察打乱前后分类性能指标的变化判断该特征的重要性 。
决策树中的重要参数以及调参注意事项这篇文章归纳得比较全
决策树的可视化
决策树的最大特点就是可解释性强,其可视化的手段也是比较多,具体实现参考这篇文章 。
##简单绘制决策树from sklearn import treetree.plot_tree(clf) ##调用graphviz库可视化决策树,与简单绘制决策树相比返回iris.pdf文档import graphviziris = load_iris()dot_data = http://www.kingceram.com/post/tree.export_graphviz(clf, out_file=None)graph = graphviz.Source(dot_data)graph.render("iris")##tree.export_graphviz()可对决策树可视化中的各要素进行视觉优化,graph为视觉优化后的决策树可视化图dot_data = http://www.kingceram.com/post/tree.export_graphviz(clf, out_file=None,feature_names=iris.feature_names,class_names=iris.target_names,filled=True, rounded=True,special_characters=True)graph = graphviz.Source(dot_data)##以文本的形式可视化决策树from sklearn.tree.export import export_textr = export_text(clf, feature_names=iris['feature_names'])
基于决策树的相关算法
基于决策树的优秀集成算法非常多,基于集成策略的主要有随机森林,近年来性能及其突出的、、等则是基于集成策略的,集成后性能大幅度优于决策树,同时也一定程度上保留了决策树的可解释性 。由于本篇笔记的主角是决策树,要详细介绍这几种优秀的基于决策树的算法的话没有一万字也是说不完的,而我此前做的项目主要也是集成学习这一块,之后也打算总结一下项目过程中学习到的关于各大集成学习算法的知识,所以本篇笔记就先到此为止吧 。关于、、的对比,这一篇文章写得非常好,不过可能得翻墙 。
决策树补充+调参
决策树算法
官方文档
《深度学习原理与实践》黄理灿
《统计学习方法》 李航