《机器学习(周志华)》学习记录之一(西瓜书读书笔记)

      博主准研究生,方向机器学习。正式入学前开始先学习有关机器学习的知识,发一些自己的读书笔记,主要记录我自己在学习西瓜书时的关注点、疑难点和思考。一方面方便自己的复习巩固,一方面也是跟大家交流。如有不妥之处,敬请批评指正,讨论交流。

   第一章 绪论

     一、基本术语

      第一次看绪论的时候,看得很粗糙。接触到后续知识后,再回头看,感觉又有了不一样的收获。

    属性【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曲线:第一次看的时候总是不太理解,反复琢磨才算明白了

==============================插入教材==============================

《机器学习(周志华)》学习记录之一(西瓜书读书笔记)_第1张图片

 =============================插入完毕===============================

     阅读许久,我才明白,其实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是代表这分类排序的准确程度。

    重点二:代价敏感错误率和代价曲线


未完待续····

你可能感兴趣的:(机器学习-西瓜书)