机器学习机器学习攻城师

【Machine Learning】从零开始,了解监督学习的方法

2015-05-05  本文已影响2030人  Jason_Yuan

目录###

1. 概念学习 (concept learning)
2. 变形空间搜索 (Version space search)
3. 决策树 (Decision tree)


1. 概念学习

1.1 一种常见的学习方法 -- 泛化(generalization)

1.2 通过泛化进行概念学习

概念空间

从下至上是一个泛化的过程,比如Obj(X, Y, ball)就可以覆盖Obj(X, red, ball)和Obj(small, X, ball)等等,这也是通过泛化就行概念学习的体现。


2. 变形空间搜索

Version space search (Mitchell 1978, 1979, 1982) illustrates the implementation of inductive learning as search through a concept space.

说白了就是从训练实例可以生成一个概念空间,比如上图。然后再从概念空间中搜索一个能覆盖所有概念的概念。 比如上图的Obj(X, Y, Z)。

2.1 变形空间(version space)的定义

2.2 三种搜索概念空间的算法

特殊到一般 (specific to general)
一般到特殊 (general to specific)
候选解排除 (candidate elimination)
2.2.1 特殊到一般
由特殊到一般的搜索
2.2.2 一般到特殊

下图的背景为:
size = {large, small}
color = {red, white, blue}
shape = {ball, brick, cube}
所以由第一个反例我们可以特化出:
size不能是small => obj(large, Y, Z)
color不能是red => obj(X, white, Z) 和 obj(X, blue, Z)
shape不能是brick =>obj(X, Y, ball) 和 obj(X, Y, cube)

由一般到特殊的搜索
2.2.3 候选解排除
Screenshot at May 04 00-40-53.png

2.3 评估候选解排除算法

2.3.1 优点
2.3.2 缺点

3. 决策树

3.1 什么是决策树?

机器学习中,决策树是一个预测模型;他代表的是对象属性(property)与对象值(value)之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的值。决策树仅有单一输出,若欲有复数输出,可以建立独立的决策树以处理不同输出。
-来自 Wikipedia

下面举个简单的例子助于理解。对于估计个人信用风险(risk)问题,要基于这样一些属性,比如信用历史(credit history)、当前债务(debt)、抵押(collateral)和收入(income)。下表列出了已知信用风险的个人的样本。

已知信用风险的个人的样本

基于上面的信息,我们可以得到下面两个不同的决策树。

决策树 A 决策树 B

我们可以发现,虽然两棵决策树都能对给定实例集进行正确分类,但是决策树B要比决策树A简单得多。可见,对给定实例集分类所必需的树的大小,随测试属性的顺序而不同。

3.2 常见的建立决策树的算法

3.2.1 ID3

ID3 was developed in 1986 by Ross Quinlan. The algorithm creates a multiway tree, finding for each node (i.e. in a greedy manner) the categorical feature that will yield the largest information gain for categorical targets. Trees are grown to their maximum size and then a pruning step is usually applied to improve the ability of the tree to generalise to unseen data.

下文会重点介绍ID3算法

3.2.2 C4.5

C4.5 is the successor to ID3 and removed the restriction that features must be categorical by dynamically defining a discrete attribute (based on numerical variables) that partitions the continuous attribute value into a discrete set of intervals. C4.5 converts the trained trees (i.e. the output of the ID3 algorithm) into sets of if-then rules. These accuracy of each rule is then evaluated to determine the order in which they should be applied. Pruning is done by removing a rule’s precondition if the accuracy of the rule improves without it.

3.2.3 C5.0

C5.0 is Quinlan’s latest version release under a proprietary license. It uses less memory and builds smaller rulesets than C4.5 while being more accurate.

3.2.4 CART

CART (Classification and Regression Trees) is very similar to C4.5, but it differs in that it supports numerical target variables (regression) and does not compute rule sets. CART constructs binary trees using the feature and threshold that yield the largest information gain at each node.

3.3 ID3算法详解

3.3.1 奥卡姆剃刀(Occam's Razor)

奥卡姆剃刀最早是由逻辑数学家William of Occam于1324年提出的:

It is vain to do with more what can be done with less. . . . Entities should not be multiplied beyond necessity.

简单点说,找到能够符合数据的最简单的解!

3.3.2 ID3算法的基本思路

给定训练实例集和能对它们正确分类的一组不同的决策树,我们想要知道哪棵树对未来实例正确分类的可能性最大。ID3算法假定可能性最大的树是能够覆盖所有训练实例的最简单的决策树
注:ID3不能保证每次都生成最小的树,只是一种启发式算法

ID3采用自顶向下决策树归纳(Top-Down Decision Tree Induction):

注:我们可以把所有可能的决策树集合看成是定义一个变形空间(version space)。ID3在所有的可能树的空间中实现一种贪心搜索,对当前树增加一个子树,并继续搜索,而且不回溯

3.3.3 如何判断最佳分类属性

ID3算法是由Quinlan首先提出的,该算法是以信息论(Information Theory)为基础的,ID3通过把每个属性当作当前树的根节点来度量信息增益,然后算法选取提供最大信息增益的属性。

① 信息增益的度量标准 - (Entropy)
熵主要是指信息的混乱程度,变量的不确定性越大,熵的值也就越大。
变量的不确定性主要可以体现在两个方面:

综上,给定消息空间M = {m1, m2, .....}以及相应的概率P(mi),熵的公式为:

熵的公式

未作弊和作弊的熵计算如下:

未作弊的熵值计算 作弊后的熵值计算

为作弊熵值更大,掷硬币的消息更有价值!!!

② 信息增益(Information Gain)
假设有训练实例集C。如果我们通过属性P作为当前树的根结点,将把C分成子集{C1, C2, C3 .....}。再把P当作跟结点完成树所需的信息的期望为:


完成树所需的信息的期望

所以从从属性P得到的增益通过树的总信息量减去完成树的信息期望来计算:

信息增益

还是举信用风险的例子,P(low)=5/14, P(moderate)=3/14,P(high)=6/14。所以总信息量计算如下:


总信息量

如果把收入(income)作为树的根结点,表中的实例被划分为C1 = {1,4,7,11}、C2 = {2,3,12,14}和C3 = {5,6,8,9,10,13}。


决策树的一部分

完成树所需的期望值为:


完成树所需的期望值

最后,gain(income) = 1.531 - 0.564 = 0.967 bits
类似的,可以得到:

属性 信息增益(bits)
gain(credit history) 0.266
gain(debt) 0.063
gain(collateral) 0.206

由于收入提供了最大的信息增益,所以ID3会选择它作为根结点。

3.3.4 评价ID3

虽然ID3算法产生简单的决策树(包括根结点,决策结点和叶结点),但这种树对预测未知实例的分类不见得一定有效。

3.4 评估决策树

参考文献

  1. Artificial Intelligence,6th Edition
  2. 从决策树学习谈到贝叶斯分类算法、EM、HMM
  3. 机器学习经典算法详解及Python实现--决策树(Decision Tree)
  4. Scikit-learn 文档
上一篇下一篇

猜你喜欢

热点阅读