数据蛙数据分析每周作业

机器学习(三) 决策树

2019-05-11  本文已影响0人  晓迦

决策树是最经典的机器学习模型之一。它的预测效果容易理解,易于向业务部门解释,可以做分类问题和回归问题。
本篇文章主要做以下几个方面的归纳总结:

3.1 决策树的算法原理

算法思想:从决策到决策树

3.1.1 决策

什么是决策?
我们在生活中经常会依靠各种信息做出各种决策,比如说选择大学,选择专业,找工作,找对象。
以找工作为例,假如我们要对“我们是否要找一份数据分析相关的工作?”这样的问题进行决策时,通常会进行一系列的判断或者“子决策”:我们先看”这份工作是自己喜欢的吗?”,如果是自己喜欢的,则我们再看“它的待遇好吗?”,如果待遇不错,我们再判断“它是否有前景呢?”,最后我们得出最终结论:我们要从事一份数据分析相关的工作。

决策的过程为我们理解决策树的建立提供了很大的帮助。计算机是通过数据来对事情做出预测,下面给一个更加直观的例子如图:



通过给出10组数据来构建决策树判断是否能偿还贷款债务。
依据决策画出决策树如下:


3.1.2 决策树

对于是否有能力偿还贷款债,我们根据年收入、房产信息、婚姻情况来判断他是否有能力偿还贷款。
分别对年收入、房产信息、婚姻情况三个特征进行测试,并根据测试结果决定行为的类别。每选择一个特征进行测试,数据集就被划分成多个子数据集。接着继续在子数据集上选择特征,并进行数据集划分,直到创建一个完整的决策树。
问题来了,在决策树的创建过程中,要先对哪个特征进行分裂?怎样进行特征的选择呢?

3.2 怎样进行特征选择

遍历所有的特征,分别计算,使用这个特征划分数据集前后信息熵的变化值,然后选择信息熵变化幅度最大的那个特征,来优化作为数据集划分的依据。即选择信息增益最大的特征作为分裂节点。
特征选择标准除了信息增益,还有增益率基尼不纯度

3.2.1 信息增益

信息熵主要解决的是信息量化的问题。一条信息的信息量和它的不确定性有直接的关系。一个问题不确定性越大,要搞清楚这个问题,需要了解的信息量就越多,其信息熵就越大。
信息熵计算公式:


信息增益:
信息增益指的是当按照这个特征划分之后,信息熵下降的量。在特征选择的过程中,选信息增益最大的特征。

ID3算法使用信息增益作为特征选择指标的决策树构建算法。

3.2.2 增益率

由于权重的存在,信息增益准则对包含数目较多的属性有偏好。为了减少这种不“客观”的判定,选择增益率来作为划分指标。


C4.5算法是使用增益率作为特征选择指标的决策树构建算法。
3.2.2 基尼不纯度

信息熵是衡量信息不确定性的指标,也是衡量信息纯度的指标。除此之外,基尼不纯度也是衡量信息不纯度的指标,其计算公式如下:


CART算法是使用基尼不纯度来作为特征选择指标的决策树构建算法。

3.3 决策树的创建过程

3.4 决策树的剪枝过程

使用决策树模型拟合数据时,容易造成过拟合。解决过拟合的方法是对决策树进行剪枝处理。决策树的剪枝有两种思路:预剪枝和后剪枝。

3.4.1 预剪枝

预剪枝是在构造决策树的同时进行剪枝。在决策树的构建过程中,如果无法进一步降低信息熵的情况下,就会停止创建分支。为了避免过拟合,可以设置一个阈值,即使还可以继续降低信息熵,但如果信息熵的减少量低于这个阈值,也停止创建分支。
其他的预剪枝算法:如限制叶子节点的样本个数等。

3.4.1 后剪枝

后减枝是指决策树构造完成之后进行剪枝。剪枝的过程是对拥有同样父节点的一组节点进行检查,判断如果将其合并,信息熵的增加量是否小于某一阈值。如果小于阈值,则这一组节点可以合并一个节点。

3.5 sklearn调用以及相关参数解释

scikit-learn 使用 sklearn.tree.DecisionTreeClassifier类实现决策树分类算法。其中几个典型的参数类型解释如下:

总结

决策树的建立过程就是信息熵减少的过程。
怎样来选择要划分的特征?决策树的停止指标?为了避免过拟合,采取了哪些剪枝方法?调用sklearn时,需要调整的参数有哪些?参数的含义?
弄懂上面这些,应该达到了一个调参侠的入门标准吧。

文章参考:机器学习(6)——决策树
《scikit-learn 机器学习》

上一篇 下一篇

猜你喜欢

热点阅读