西瓜书第二章(01)

今天起把西瓜书上重要的,经常用的内容简单记录一下,以防自己遗忘。

今天整理西瓜书2.1-2.4

概念问题

学习器在训练集上表现出来的误差叫做训练误差,而在测试集上表现出来的叫做“泛化误差”

当学习器把训练样本学的太好了的时候,很可能已经把训练样本上的一些独特的特点当作了所有对象都会有的特性,这种叫做“过拟合”,与之相对的是”欠拟合“,这两种问题在机器学习中对策大不相同。

在现实生活中,我们一般对一个问题会有多种算法可供选择,甚至对同一个学习算法选择不同的参数配置也会产生不同的模型,那么我们应该怎么对模型进行评估呢,这就是机器学习中的模型选择问题。

模型评估方法

如何进行测试集与验证集划分

①留出法
留出法是直接将数据集D划分为两个互斥的集合,其中一个集合作为训练集,另一个作为测试集。需要注意的是划分时候要尽量保持分布的一致性,避免因为数据划分而出现的偏差。
例如在分类问题中至少要保证样本类别的比例相同,训练集中存在着500个正例,500个反例,那么测试集中应该保持与之相同如300个正例,300个反例。但是即使给出了训练/测试集样本之后仍存在着许多种划分方式,如选正例中的前500个还是后500个做为训练数据中的正例,一般使用留出法时采取的方法是多次随机划分并且最终取绝对值。
留出法还有一个问题就是如果训练集占据了大多数,那么测试数据就不够稳定准确,如果测试集占据了大多数,那么训练出来的模型可能在测试集上表现不是很好,目前一般采用2/3~4/5用作训练集,其余用作测试集。

②交叉验证法
交叉验证法是先将数据集D划分为k个大小的互斥子集,每个子集要尽量保证数据的分布一致性,也就是采取的是分层采样得到的,然后选取其中的k-1个子集做并集当作训练集,余下的一个子集当作测试集,这样可以进行k组测试以及训练,通常将这种称为k折(Kfold)验证,k一般取5,10,20,在sklearn(机器学习包)中有专门的方法来实现关于交叉验证。


k折交叉验证

和留出法存在一样的问题,k折交叉验证划分时会有不同的划分方法,为了减少因为样本不同导致出现差别,k折交叉验证通常要随即使用不同的划分重复p次,所以最终我们应该训练的模型数目应该是p*k,加入是10折且重复划分10次那么我们应该训练100个模型,k折交叉验证有一个特例是当k等于1的时候叫做留一法(Leave_One_Out),显而易见留一法不受样本划分方式的影响,但是缺点也很明显。当数据集很大的时候我们需要训练数量巨大的模型,甚至还不包括后期的参数调整。

③自助法
不管是留出法还是k折交叉验证,我们模型得到的训练数据都要比实际所有的数据要少一些,比如k折交叉验证中我们的模型训练数据是k-1个集合的并集,有什么方法可以克服呢?就是我们接下来讲到的自助法。
我们的数据集D,我们要对他进行采样产生一个大小相同的D1数据集合,如果我们进行放回抽取操作,每次取出来一个然后放回,直到两个集合数据总量相等时停止,这样的话我们就会有一些数据被重复抽取,有一些从来没有被抽取,那么他们的概率是多少呢?


有大概36.8%的数据从来没有被抽取过,我们将用没在训练集中出现的样本用于测试,这样的测试结果我们也称作”包外估计“。

自助法在数据集较小,比较难划分训练/测试集的时候很有用,而且自助法能从初始数据集中产生多个不同的训练集,这在以后我们将会学到的集成学习中很有用。我们应该知道,我们在进行采样也就是抽取值的时候没有进行分层等操作,也就是说数据会出现偏差,所以在数据量足够的时候我们还是应该用前面两种方法。

调参与最终模型

很多初学者认为模型训练完成之后就万事大吉了,但是我们还有很多需要做的内容,比如我们需要对模型进行调参,在进行调参操作中我们会在一个范围比如[0,0.2]之间,以0.05为步长直接进行暴力搜索,看看在参数为多少的时候loss是最小的。如果有两组这样的参数我们就需要进行4*4=16组训练,工程量还是非常大的。

这里有个要注意的地方,也是我们刚开始很容易混淆的内容,就是关于数据的种类,实际上整个数据可以分为三种:测试集,验证集,训练集。测试集是我们模型在测试时候接触到的数据,这些数据都是模型第一次接触,所以对于这些数据的预测可以反映一个模型的泛化能力,而验证集以及训练集是模型在训练中遇到的,训练集就不用说了是模型拿来训练的,而验证集则是模型用来进行调参的,模型用这些数据来进行调整参数,通过这些数据的预测结果反馈给模型,模型记录下来不同参数下的预测结果好坏,最终选择最好的模型。

性能度量

对于学习器而言,不仅要有各种实验估计方法,还需要有衡量模型泛化能力的评价标准,这就是性能度量。

回归任务采用的是一般是均方误差:


均方误差

查准率以及查全率

我们在面对实际问题时候经常会关心如下问题,比如在信息检索中“检索出来的信息有多少是用户感兴趣的”,“用户感兴趣的信息有多少被检索出来了”,用这些来判断一个模型的好与不好,对于二分类问题,只存在正例以及反例,我们先给出混淆矩阵。


混淆矩阵

其中定义查准率以及查全率分别为


查准率以及查全率

需要注意的是,查准率以及查全率是成反比的,查准率高了那查全率要相对下降一些,查全率高了那查准率要下降一些。我们根据学习器的预测结果对样例进行排序,排在最前面的是最有可能的样本,然后把一个一个样本都当作是正例进行预测这样我们可以得到当前的混淆矩阵,然后以查全率作为横轴,查准率作为纵轴可以得到“P-R图”


P-R图

如果一个学习器把另外一个学习器的P-R图完全包住那么证明前者要优于后者,如果发生了交叉,则要具体看在哪种情况下哪种学习器更优。

查准率与查全率相等的点叫做平衡点简称BEP,谁的BEP更大则可能谁更优秀,但是只看BEP事非常简单的操作,更常用的是F1度量:


F1度量

F1 是对查准率以及查全率进行调和平均,其次还有更加普通的度量函数

调和函数

这个调和函数是对查准率以及查全率的加权平均调和。其中的参数

度量了查准率对查全率的相对重要性等于1时候退化为标准的F1度量,当他大于1时候查全率更加重要,当他小于1时候查准率更加重要

ROC 与 AUC

如果想了解ROC曲线那么应该先了解两个函数,一个是TPR(真正例率)一个是FPR(假正例率)两者分别定义如下:


真正例率以及假正例率

画图原理和P-R图是类似的,画出如下:


ROC曲线

但是在实际情况中我们通常只有有限个测试样例来绘制ROC图,所以仅能获得有限个坐标对,绘图原理如下:给定m1个正例和m2个反例将分类阈值设置为最大则会预测所有样例均为反例,这是分别将阈值设置为点的预测值,然后连接相邻点即可。
现实绘制的ROC曲线

同样的如果一个学习器的ROC曲线完全包住了另一个学习器的ROC曲线那么前者是更好的,但是如果有交叉的话这时候可以看曲线下的面积AUC,AUC计算公式为


AUC

如果用AUC来评判模型的好坏那么决定AUC的主要是前面排序的好坏,也就是前面根据模型对样例预测值进行排序的好坏,他的排序损失函数如下图所示,其中Ⅱ()函数表示如果其中的条件为真的话返回1,如果为假的话返回0。


损失函数
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,302评论 5 470
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,232评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,337评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,977评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,920评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,194评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,638评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,319评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,455评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,379评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,426评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,106评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,696评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,786评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,996评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,467评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,043评论 2 341

推荐阅读更多精彩内容