![3925e2d22bf170099e38a7e6c56544d7.png](https://i-blog.csdnimg.cn/blog_migrate/b5882369dbeed3063db874e9237795bf.jpeg)
类似SVM,决策树也是非常多功能的机器学习算法,可以分类,回归,甚至可以完成多输出的任务,能够拟合复杂的数据集(比如第二章的房价预测例子,虽然是过拟合了=。=)
决策树也是很多集成学习的组件,比如随机森林和梯度提升树等等
决策树的训练和可视化
还是以熟悉的iris数据集为例:
首先训练一个决策树模型,然后做一些可视化,使用export_graphviz()
方法,通过生成一个叫做iris_tree.dot
。
from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
iris = load_iris()
X = iris.data[:, 2:] # petal length and width
y = iris.target
tree_clf = DecisionTreeClassifier(max_depth=2)
tree_clf.fit(X, y)
from sklearn.tree import export_graphviz
export_graphviz(
tree_clf,
out_file=image_path("iris_tree.dot"),
feature_names=iris.feature_names[2:],
class_names=iris.target_names,
rounded=True,
filled=True
)
可以利用graphviz package(http://www.graphviz.org/) 中的dot命令行,将.dot文件转换成 PDF 或 PNG 等多种数据格式。
$ dot -Tpng iris_tree.dot -o iris_tree.png
![f79ac81c4d93bef413a6db1eeb1be62b.png](https://i-blog.csdnimg.cn/blog_migrate/319ad8055c4f82b1a871b9e16c1d98ff.jpeg)
我们将从这个图开始,简单分析决策树是怎么样工作的<