1.概念准备
-
1.1 递归与迭代
区别 定义 优缺点 递归(recursion) 程序调用自身 1.问题大化小,减少代码量
2.易造成堆栈溢出,浪费空间迭代(iterate) 利用变量的原值推算出变量的新值 1.效率高,不增加空间开销
2.不易理解,代码不如递归简介 -
1.2 信息熵(H(X))
信息论研究信息的量化、传输、存储,一个事件中包含的信息量用自信息(I(X))来量化。
信息熵公式
熵的本质是对不确定性的度量,用数学公式表达只与概率p(x)有关,是信息的期望值。熵值越高,则数据混合的种类越多,其可能的变化越多,携带的信息量也就越大,只与值的种类和各种类发生概率有关。(与具体的值无关)
物理意义是平均编码长度。
信息论中 底数用2,对应单位是 ;机器学习中习惯用 ,对应单位为 ;底数用10,对应单位为 。
通俗理解条件熵。
-
1.4 交叉熵
以上是从信息论来理解信息熵。从**计算机编码角度(物理含义)**来理解:信息熵是随机变量平均编码的最小长度。信息熵是完美编码,交叉熵是不完美编码,相对熵是两者差值,差值也称为差异,即KL散度。
对于一个以 为概率的样本集X(信息熵 ,用 概率分布(非真实分布)来对其进行处理。按照真实分布 来衡量识别一个样本所需要的编码长度的平均值(平均编码长度)为 ,但是按照概率分布 (错误分布)来衡量来自真实分布为p的数据集中的样本所需要的平均编码长度则是 ,也就是所谓的交叉熵。根据Gibis inequality, 恒成立。 时,两者相等。 时,两者差值就是相对熵
交叉熵在神经网络中可以作为损失函数, 为真实标记分布, 为训练后模型的预测标记分布,交叉熵损失函数可以用来衡量 的差异及相似性。 -
1.5 相对熵(relative entropy),又称为信息增益(Information Gain)
交叉熵减去信息熵就是相对熵 ,也就是用 来衡量 分布下识别样本所需的多余的编码长度。相对熵表示了两个概率分布的差异性,无差异那就是0。用来衡量策略与最优策略(信息熵)之间的差异。
相对熵(relative entropy),又称为KL散度(Kullback-Leibler Divergence,KLD),信息散度(Information Divergence),信息增益(Information Gain)。
信息增益(info gain):
表示确定特征 的信息后,数据集 的不确定性(熵)减小的程度。
信息增益最大作为标准(ID3算法),倾向于选择值多的特征,易导致过拟合。通过引入内在信息(Intrinsic Information)概念,采用信息增益率作为评价标准(C4.5算法)。
信息增益率(info gain ratio):
详解机器学习中的熵、条件熵、相对熵和交叉熵 -
1.6 Gini指数
-
1.7 分类问题
分类(Classification)任务就是确定对象属于哪个预定义的目标类。常见算法有SVM、朴素贝叶斯、决策树等。
-
1.8 Hunt算法
参考一 参考二
最早的决策树由Hunt等人1966年提出,因此Hunt算法是多种决策树算法的基础。
Hunt算法:一种采用局部最优策略的决策树构建算法,通过将训练记录划分为较纯的子集,以递归方式建立决策树。 是与节点 相关联的训练记录集, 为类标号,Hunt算法的递归定义为:
- 如果 中所有记录都属于同一个类 ,则该节点 为叶子节点。
- 如果 中记录分为 等多个类,则选择一个 作为测试条件,将记录划分为较小的子集。对于测试条件的每个输出( 分类),分别创建一个子节点,并根据测试结果将 中的记录分布到子节点中,形成 等新的记录集。
- 对每个子节点递归调用此算法。(此算法成立的前提是作为测试条件 的每个分类 在 中都有对应的记录,否则对应子节点就是空的。)
对于成立条件限制之外的情况,
- 依据某特征的具体分类得到的子节点为空。则该节点成为叶子节点,类标号为其父节点关联记录集中类别个数最多的类标号。
- 相关联的记录集中所有记录具有相同的 (类标号除外),不能再进一步划分。则该节点成为叶子节点,类标号为其父节点关联记录集中类别个数最多的类标号(投票原则)。
由Hunt算法原理得到决策树算法必须解决两个问题:
- 如何分裂训练记录集(1-3)
- 每次递归选择一个 作为测试条件—将记录集细分为更深一层子集,标称属性、序数属性、数值(连续)属性;二路划分、多路划分。
划分 | 基于标称属性的划分 | 序数属性 | 数值属性 |
---|---|---|---|
多路 划分 |
1. 输出个数取决于该 属性不同取值的个数 |
1、输出个数取决于该 属性不同取值的个数 2.不违背序数属性值的有序性 |
1、离散化成序数属性 2.静态:开始建树时一次性离散化 3.动态:扩展当前节点时再离散化 |
两路 划分 |
将属性值划分成两个子集 | 将属性值划分成两个子集 |
寻找最佳分裂点 |
-
为 指定测试条件的方法---------------- 用法
-
提供测试条件优劣的评价标准-------------------方法检测,引入不纯性度量(Gini index、Entropy、Misclassification error)
-
如何停止分裂(4-5)
- 所有子集中记录都属于同一个类标号
- 4
- 5
-
二元切分法
连续值转化为离散值(二元)的算法,选取一个分裂值,特征值大于分裂值则被转化为0,特征值小于分裂值则被转化为1。
-
奥卡姆剃刀
简约之法则:切勿浪费较多东西,去做‘用较少的东西,同样可以做好的事情。
-
数据集类型
- 标称型:标称型变量的结果只在有限目标集中选取,如True、False(主要用于分类问题)。
- 数值型:数据型变量的结果可以从无限的数据集合中选取,如0.20、120…(主要用于回归分析)。
两者为监督学习常用变量数据类型。
- 可驻留内存数据。C4.5算法只能处理此类数据
-
待定
2.直观认知
《无耻混蛋 》中 ad 与女特工接头的酒馆里一帮纳粹正在玩一个游戏,每个人脑门上贴一个人物,玩家不知道自己脑门上是谁,只能通过问问题一步步缩小范围,最终猜出。决策树的逻辑框架与此游戏类似。
数据通过特征(分类效果最明显)决定根节点,依次递归出叶子节点(分类完成)的过程。
决策树由节点(node)和有向边(directed edge)组成。节点分为两类:
- 内部节点:表示feature的测试条件(用于分开具有不同feature的记录)
- 叶子节点:表示一个分类
3.算法流程
-
特征选择
选出所有特征中分类效果最好的作为根节点,依据不同的选择标准(基于信息论得到ID3以及衍生出来的CARD&C4.5)得到不同的决策树算法。
划分数据集的最大原则是:数据从无序变为有序。
理论基础 特征依据 适用数据集 优缺点 ID3 奥卡姆剃刀 信息增益大 标称型 1.偏向取值多的特征
2.无剪枝C4.5 ID3+连续型 信息增益率 标称型
连续
&驻留内存1.效率低
2.多次对数据集顺序扫描&排序
3.连续特征离散化
4.可处理不完整数据集;
5.决策树构造过程中剪枝CART ID3+连续型 Gini指数小 标称型
连续1.规模小
2.效率高
3.后剪枝C4.5&CART通过二元切分处理连续型变量,分裂值的选取原则是使划分后的子树中“混乱程度”(熵)最低。
-
决策树生成
Hunt算法为理论基础。
-
减枝
4. ID3算法详解
ID3由 发明,以“奥卡姆剃刀”为基础:决策树越小越好(一定程度上,末抠字眼)。
算法参考1
5. C4.5算法详解
6. CART算法详解
7. 分类算法常见问题
未完待续2018.11.10