《机器学习(周志华)》学习记录之一(西瓜书读书笔记)
博主准研究生,方向机器学习。正式入学前开始先学习有关机器学习的知识,发一些自己的读书笔记,主要记录我自己在学习西瓜书时的关注点、疑难点和思考。一方面方便自己的复习巩固,一方面也是跟大家交流。如有不妥之处,敬请批评指正,讨论交流。
第一章 绪论
一、基本术语
第一次看绪论的时候,看得很粗糙。接触到后续知识后,再回头看,感觉又有了不一样的收获。
属性【attribute】/特征【feature】:事件对象在某方面的表现或者性质
属性值【attribute value】:属性上的取值
示例 【instance】 / 样本【sample】:一组数据中的值,包含事件或者对象的属性特征
数据集【data set】:获取的一组数据,内含多个示例或样本
属性空间 【attribute space】:每组样本的n个属性值,构成一个向量。每类属性的不同取值,构成了一个完整的样本空间。【个人思考:从矩阵的角度考虑,这样的矩阵应该是一个高维矩阵,其中每个属性的取值数量总和就是空间矩阵的维度。数据集就可以表示为属性空间矩阵和类型矩阵的乘积。这时候,类型矩阵的取值就与各样本一一对应】
维数【dimension】:样本的属性值数量
以上术语为通用的。下面针对监督学习【supervised learning】和无监督学习【unsupervised learning】
标记【label】:赋给数据集中数据的一个属性,用于区分数据的结果或是状态。比如水煮鱼的属性是鱼、辣等等,而小笼汤包的属性是鲜美等等。它们属性不同,但是都有一个共同的标记,那就是【好吃】。由于标记是另外赋予的,所以就存在有的数据有,有的数据没有。有标记的数据,我们用来学习去按照它们表现出来的某种规则来识别新的类型,比如水煮鱼和小笼包都是好吃的,那么烤鸭是不是好吃的呢?这就是监督学习。无标记的数据,我们用来学习数据间的内在关系,然后人为的依据某种算法去赋予其标记,这就是无监督学习。关于标记,我觉得在编程实现中是一个重点需要理解的概念。
二、没有免费午餐定理
以下内容摘自书本。
=============================分割线======================================
==============================================分割线==================================================
该部分的推导其实写的很清楚了。只是我第一次看的时候有点懵,可能是对机器学习整体内涵没有把握好。
在这个推导过程里,要明确的是各函数的含义。首先,给定了一个数据集。它被分成了两个部分,一是训练集X,剩下的是测试集。x就是测试集里的元素。P(x)是在测试时选取到x的概率。我认为【】
其余的示性函数和概率函数都已经有说明了。
所以,该段推导的思路就可以表述为:
【我们的算法和训练集给出的模型h的概率,乘以测试集上选取的某一点x的概率,再乘上示性函数:该模型预测值h(x)与真实值f(x)的差别。这三部分的在各自取值空间的加总】
关于示性函数的求和,需要理解的是,给定的真实分布f是一个2分类,并且是均匀分布,所以是0、1一半一半的可能。我们预测h是0或1,那么与真实值吻合的比例一定是50%。
另外,的具体含义我还没有太理解。
三、个人补充的知识
在此插入一些张志华教授在统计机器学习的授课内容,关于机器学习和统计之间的对应联系。我个人觉得这个逻辑很赞。
machine learning | statistic |
network,graph (网络和图) | models (模型) |
weights (权值) | parameters (参数) |
learning (学习) | fitting(拟合模型) or estimating (参数估计) |
generalization(泛化能力) | test set (模型测试) |
supervised learning (监督学习) | regression(回归) or classification(分类) |
unsupervised learning (无监督学习) | density estimation(密度估计) or clustering(聚类) |
张志华教授的公开课认真看还是蛮不错的。就是张教授的表达能力跟不上他的思维
第二章:模型评估和选择
第二章主要的思想是描述学习模型的内在要求:尽可能反映出样本数据所展示的一般性规律,提高泛化能力。一方面,我们的模型估计值需要尽可能地逼近样本值;另一方面,由于样本点本身的固有误差或者样本数据记录的差错等原因,有一些不是一般性规律不可以被学习到。
本章开头前两节较简单。笔记从第三节开始吧
一、性能度量
本节以分类任务(classification)中的性能度量为重点。
查准率:模型预测结果为真的样本(TP+FP)里,真正例(TP)的比例
查全率:所有实际为真的样本里(TP+FN),被模型预测出结果为真正例的比例
查准率和查全率有点类似假设检验里纳伪和弃真这两类错误。如果希望预测出的结果一定是准的,势必要严格标准,从而导致泛化能力下降,查全率就会降低。如果要求所有真例都被预测出来,那么势必会放松标准,接受错误样本,导致查准率下降。直观一点,就类似于photoshop中的魔棒功能,容差就相当于调节查准和查全的参数。
平衡查准和查全的一个指标,我喜欢记一个,
,毕竟记住这一个,其他就都能记住了。
重点一:ROC曲线:第一次看的时候总是不太理解,反复琢磨才算明白了
==============================插入教材==============================
=============================插入完毕===============================
阅读许久,我才明白,其实ROC曲线不是传统意义上的函数图像一一对应。书中用坐标轴一词来形容该图,我觉得可能不太恰当。
这个图其实就是一个计分板。
以2分类问题为例,我们判断一个模型的预测情况,采用一段连续的曲线来模拟实际的分类。给定一个输入后,模型输出是一个[0,1]上的数值。此时约定一个阈值:大于阈值则为真,小于阈值则为假,就实现了分类。
模型的结果出来以后,先将结果的按照预测结果的数值从上往下依次排序。
当我们将阈值约定为1时,所有的样本预测结果均为假【由TN和FN组成】,因此作为计分板的真正例率和假正例率均为0.
此后,依次调整阈值,使次序中每一个样本的预测结果为真。如果是TP,则真正例率记1/m分,反之,则假正利率记1/m分。
ROC曲线本身是代表一个计分结果的计分板。
AUC则是ROC曲线与假正例率围成的区域面积。但是,问题来了,书中给出的ROC图,只有直上直下。然而,AUC的公式却是这个样子的:
如果只是直上直下的图,为什么要有这样的表达式呢?
翻阅了论坛里其他高手的笔记,才明白ROC曲线并不是一直都是方块的。当阈值等于预测值时,这种情况下,分类器是无法判断分类的,只能靠猜。所以,这种情况下,在真正例率和假正例率上各加1分,这一步是斜线。所以,我认为,我刚截图的书中关于ROC曲线的绘制表述应该是不准确的,分类阈值不可能每次都是样本的预测值,那样岂不是全部靠猜?如果我的理解不准确,还请不吝赐教。
关于AUC值,其实是代表排序的准确性。
设想一下两个极端的情况,如果我们的分类器模型对样本的分类完全正确,排序中前m个样本都是正例,后M个都是反例,那么PROC曲线直线上升到顶后右转,AUC=1。如果分类后的结果排序完全错误,反例的值最大,正例最小,那么表现在ROC曲线上就是直接右转到底后再上升,此时AUC=0。
因此,AUC是代表这分类排序的准确程度。
重点二:代价敏感错误率和代价曲线
未完待续····