当前课程知识点:机器学习概论 > 第三章 决策树学习(II)和贝叶斯学习 > 3.3 决策树的改进和归纳学习假设 > 决策树的改进和归纳学习假设
这显然不是我们想要的 那怎么办 我们就提出既然会有这样情况
我们就要对它做一个惩罚
这个惩罚我们就把它用Split Information来去惩罚
也就是说我们现在每一个计算每一个信息增益的时候 不是计算信息增益
而是信息增益的比例
它是等于一个信息增益再除以一个分母上的值
做一个正规化 这个分母是什么 就是我的这个节点在这个属性下面
它的信息熵 就是我一共分成了多少个类 每一个类
它的熵之和 所以把熵作为我当前的一个分母 事实上做了正规化
事实上是去看 不是我绝对的信息增益有多少
而是我相对于我原来的熵相比 我的获得的信息增益的比例有多大
这个办法就能够比较好的把这种有多个属性值的这种偏置
就是有的属性 有多个分支取值 把这种偏置能够消除的比较好一些
第三个也是非常常用到的就是在我们有一些未知的属性
其实你在真实环境下 往往会发现你数据并不是所有的点
样本点都有的 比如说如果你是一个医生
然后你去检查某一个病 你是负责某一个病的医生
然后发现并不是所有来你这里看病的病人
他都做了所有的每一项检查 他可能有一些检查是缺失的
有一些检查是正常的 现在他一样要向你做出一些咨询
那好 我们这样决策数的系统 这个缺失的属性值要怎么办呢
很显然当然一种办法是说这个数据不要了 这个可以
但通常我们不做这么奢侈的事情 因为在现实情况下
获取数据的代价还是蛮大的 所以能用多少 就尽量用多少
好 接下来比如说在这个里面我们已经知道了 有五个正例
然后有四个反例 最后的这个正例我们到底应该怎么用
它应该是放在分支的左边 还是右边呢 其实有不同的办法
有同学 我们虽然在上节课已经把幻灯片给出来了
那有没有同学还没有看到这个幻灯片内容 然后现在想一想看
你能想到什么样的办法 如果是你 这个数据如果不丢掉它
你想怎么用
非常好 你在这里面觉得normal和正例现在只出现了这个例子
所以你事实上都是正例 那这样的话 会不会带来一个问题
你事实上有很多个特征 如果很多特征都一样 这个也是正例
其实你这个数据点就跟之前的数据点重复了
因为你其他的这个标签都是一样了
所以相当于是完全一样的点重复用了一次 就是重复出现了一次
但这个其实是有可能有用的 因为其实在我们真实情况下
它可能就是这样采样 尤其在我们做统计相关的特征
上面的确是很有用的 但它相当于是这个数据点多了一次
但这个思路特别好 这个思路刚才同学其实已经把它用更多了一步
除了这种办法以外 这是可行的办法
我们同时也要知道它的问题在哪里 同时我们还有什么办法
刚才同学说normal和正例放在一起 那其中有一种办法是说
我只看normal 不管它的标签 我只看到
现在特征里面占最大比例的特征
那么其他相同的特征里面 其实是这样
看你缺失这部分的特征占最大比例的是什么 就给它是什么
只看这个特征 这种情况对于你的特征之间 相对比较独立的时候
是比较有用的 其实这里就是做了一个最大的似然估计
这个我们今天刚好会谈到极大似然估计的事情
所以你会看到这种情况来说 在决策树你缺失的这个值上面
最多的是负例 所以我们就把它作为负例
还有一种情况看最后的标签 就是看这个标签最多的时候
当你这个标签相同的时候 标签都是正的时候
它的这个值最多的是什么 比如说标签一样的时候
都是正的时候 最大可能的这个标签
它的这个属性是正例 所以我们这个就给正例 所以你看蛮好玩
你用不同的策略 你给它恢复出来的缺失值
恢复出来的值是完全不一样的 但是这个策略你需要有一定的理由
但刚才这两个其实都是可能接受的办法 还有一种办法是说好吧
那我不要给它一个值 我把它分一分 比如说
八分之五是负例 八分之三是正例 这个都是有好多种不同的做法
所以我们刚才提到了这个办法 还可能有其他的办法
大家你可以再去多一想想 最后一个问题
其实我们不同的属性是有代价的
就不同的属性你可以认为它有的时候是
这个属性的重要性程度不一样 然后有的时候
可能是说是这个属性比如说它本身你获得的时候比较困难
你比较难问到这样的信息 所以属性本身是有代价的
因此我们会在计算信息增益 在挑属性的时候
会把每一个属性底下除以它的一个代价的值
至于这个代价怎么给 你可以根据自己的实际问题去设计
这个是我们属性代价的问题 把这几个问题讨论完
基本上我们决策树学习 大家了解了基本概念
了解了通常都要解决的问题 以及在实际运用中可能遇到的问题
那我们讨论就差不多了 还有更多的一些问题
比如说决策树学习的好处 就是容易理解 容易实现等等
还有就是我们另外还有一种是Decision Forest决策森林
其实这个决策森林我们就不在课上跟大家讲了
作为扩展阅读的内容 大家感兴趣的可以自己去看一看
基本核心思想 所谓森林就是很多棵树
然后其中每一棵树是用C4.5算法来构建出来的
我们刚才介绍的是规则后剪枝就是C4.5算法里用到的
那么如果感兴趣的同学 你其实可以获得更多的C4.5
事实上现在已经又进化到C5.0版本了
它是在Quinlan的主页上和我们给出来的这个链接上
我们会看到具体的信息 所以Quinlan已经宣布
他现在已经不再对C4.5做更多的维护了 就他公开的代码
C5.0开始 所有的都一直到C5.0版本里面去
还有一些更新的变化 大家感兴趣的东西可以再自己学习
和了解一下 在你最终的大实验里面
你也可以作为可能的候选的算法之一
如果这个方法比较适合你的问题的话 好
那么接下来我们在这里面给大家介绍一个重要的概念
叫做归纳学习假设 什么是归纳学习假设
我们其实往往现在的机器学习的问题
往往说我们根据一些训练样例 你看到的几棵树
我们用一些训练样例 把它总结出一些规律来
这个规律来可以把它用一些函数或者是用决策树
或者是用其他的什么方法来把它描述出来 就是描述成我们假设
然后就用来描述我们更大范围 更通用的概念
就是在一般情况下它是怎么样的
这是我们机器学习经常用的办法 所以归纳学习假设
其实就为我们带来了这样一个处理
但事实上我们要注意的一个问题就是你这一定要避免过拟合问题
就是你从之前得到的规律 它不能是过于限定受局限于我
当前的这个数据集 比如说你看到了门口的树
你说现在的玉兰花开花了 现在门口
你比如说你可能说玉兰花我在门口看到说它开花了
在南门外有三棵树开花了 我可以归纳说也许三月底
就是玉兰花要开花的季节 但是说不定我看到的
只是在那一个位置的三棵玉兰树 而我们现在门口如果还有玉兰树
事实上你会发现更多的玉兰树还没有开花
所以事实上要避免它针对你观察到这个数据的过拟合的问题
那怎么避免呢 其中我们在归纳学习假设里面
这个假设是这样说的 这个假设Hypothesis不是指
我们之前假设空间的那个假设 它也可以认为是一种假说
就是它是这样的一个assumption
一个基本的假设的说法是说任何一个假设
如果它能够在足够大的训练集合上
如果能够很好地逼近目标函数 那么我们认为它也能够在
未见实例上 也能够很好地逼近目标函数
其实这个基本上是机器学习系统的一个基本需要
所依赖的这样的假设
就是因为你如果有足够大的训练案例集
你在这个训练案例面你选定的这个假设
能够很好地逼近目标函数 就它的效果跟目标函数差不多
它的输出很一致 在很大程度上都一致
那我们就会认为我们学习的东西是有用的
它在那些没有看到的样例里面
在同样问题下的没有看到的样例里面也能够代表我们的
真实的情况 如果没有这个的话 那你学习就没有意义了
就是你从训练数据集上获得的信息
你如果完全不能够使用在真实情况下 那这个就没有意义了
所以它是我们机器学习非常重要的一个基础假设
但是我这里面高亮出来的一些词 比如说足够大的训练样例
那么有多少 多大就是足够大的
如果有20个样例算不算足够大 我的训练集 一百个呢
一千个呢 或者十万个呢 足够大要多少才算够大
还有就是很好地逼近目标函数 什么叫做很好
如果我在训练样例集上 精度是99%算不算很好
如果精度80%可以吗 精度65%行不行
到底什么是很好地逼近
再有第三个问题就是它也能在未见实例中很好地逼近目标函数
这句话一定不是绝对正确的 它可能会是有一个概率正确
还有一些情况下 这句话是不对的 那么多大可能性
我们这样说是对的 可以得到这个结论 三个问题都没有解决
所以这三个问题是我们埋给大家的一些小的引子
我们会在我们的学习理论上面 比如说期中的那堂学习理论
我们会讨论其中的一两个问题 然后一直到期末的时候
我们会讨论到在可能 就是PAC学习 可能近似正确学习的问题上
去考虑我们这样的说法在多大程度上有可能成功
所以这个只是一个这样的基本的想法和假设
大家以后看到这样的结论
一定要有这样的怀疑精神去多想一步足够大 多大才可以
然后很好的逼近 有多好才行 这个也是我们在做学术研究上面
未来要训练的一种素质 就是我们要比较精确
在我们学术研究上面 我们研究生同学 他们经常会写论文
一开始写成这样说 在摘要里面说本算法取得了
非常好的效果和取得了很好的效果
凡是这样的论文都被我打回去了 说你很好的效果
提高了很大的改进 最后一问3%的改进 一点都不大
所以事实上这个是非常的主观的说法 我们要在学术研究上避免
要用数据来说话 这个数据我们期中的时候跟大家一起讨论
怎么分析 大家课间休息五分钟 好 我们继续来课程的学习
接下来我们将会带大家讨论一个新的话题叫做贝叶斯学习
贝叶斯学习事实上它有一个背景 什么是贝叶斯学习呢
其实我们先想一想医生看病的过程 这个过程蛮好玩的
一般病人去找医生看病 假设有一个病人他想说医生我得了肺炎
我有多大可能会是肺癌呢
-1.1 课程介绍
--课程介绍(1)
--课程介绍(2)
-1.2 机器学习的背景
--机器学习的背景
-1.3 什么是机器学习
--什么是机器学习
-1.4 机器学习系统设计
-第一章作业
-2.1 决策树的基本概念
--决策树的基本概念
-2.2 决策树的实例和发展历史
-2.3 经典决策树算法ID3
-2.4 过拟合和前剪枝
--过拟合和前剪枝
-第二章作业
-3.1 下午茶时间:勒索软件
-3.2 后剪枝
--后剪枝
-3.3 决策树的改进和归纳学习假设
-3.4 贝叶斯学习的背景
--贝叶斯学习的背景
-3.5 极大似然假设、朴素贝叶斯和最小描述长度
-第三章作业
-4.1 下午茶时间:微博的垃圾检测
-4.2 马尔可夫模型
--马尔可夫模型
-4.3 隐马尔可夫模型
--隐马尔可夫模型
-4.4 评估问题
--评估问题(1)
--评估问题(2)
-4.5 解码问题
--解码问题
-4.6 隐马尔可夫模型的应用
-第四章作业
-5.1 下午茶时间:图灵奖
-5.2 假设评估
--假设评估(1)
--假设评估(2)
--假设评估(3)
-5.3 置信度和置信区间
-5.4 有限数据下的比较
--有限数据下的比较
-第五章作业
-6.1 下午茶时间:黑洞照片
-6.2 基于实例的学习的基本概念
-6.3 最近邻算法
--最近邻算法
-6.4 K邻近算法
--K近邻算法
-6.5 KD树
--KD树
-6.6 距离加权的K近邻算法
-第六章考试
-7.1 支持向量机的背景
--支持向量机的背景
-7.2 线性支持向量机
-第七章作业
-8.1 核函数支持向量机
-8.4 支持向量机总结
--支持向量机总结
-8.5 无监督学习简介
-8.6 层次聚类
--层次聚类
-8.7 K-means聚类和K-medoids聚类
-第八章作业


