本章是决策树在sklearn 中的实现和调参
开发环境是Jupyter,所用的库:
Python 3.6.4
Scikit-learn
Graphviz (用于画决策树)
Numpy,Pandas,Matplotlib,Scipy
一、sklearn 入门
scikit-learn,又称为sklearn,开源的机器学习包。通过Numpy,Matplotlib等Python数据计算的库实现高效的算法应用,并且涵盖了所有的主流机器算法。
sklearn的官方网站(里面涵盖了sklearn对所有算法的实现和简单应用):
https://scikit-learn.org/stable/index.html
了解算法的原理,可以参考以下两本书:
数据挖掘导论(机器工业出版社(英文版))、机器学习(清华大学出版社-作者周志华)
二、决策树
决策树是一种非参数的有监督学习方法,它能够从一系列有特征和标签的数据中总结出决策规则,并用树状图的结构来呈现这些规则,以解决分类和回归问题。
决策树算法本质上是一种图结构,我们只需要问一系列的问题就可以对数据进行分类了。
在决策过程中,一直对记录的特征进行提问。最初的问题所在的地方叫做根节点,在得到结论前的每一个问题都是中间节点,而得到的每一个结论,都是叶子节点。
关键概念:节点 |
根节点:没有进边,有出边。包含最初的,针对特征的提问。 中间节点:既有进边也有出边,进边只有一条,出边可以有很多条。针对特征的提问。 叶子节点:有进边没有出边,每个叶子节点都是一个类别标签。 子节点和父节点:在两个相邻的节点中,更接近根节点的是父节点,另一个是子节点。 |
决策树算法的核心是要解决两个问题:
1)如何从数据表中找出最佳节点和最佳分枝;
2)如何让决策树停止生长,防止过拟合?
(根据菜菜的机器学习整理)