机器学习07应用机器学习的建议


决定下一步做什么(Deciding What to Try Next)

确保在设计机器学习系统时,能够选择一条最合适、最正确的道路。

具体来讲,将重点关注的问题是:假如你在开发一个机器学习系统,或者想试着改进一个机器学习系统的性能。

你应如何决定接下来应该选择哪条道路?

1. 获得更多的训练实例——通常有效,但代价较大,下面的方法也可能有效,可
考虑先采用下面的几种方法。 
2. 尝试减少特征的数量 
3. 尝试获得更多的特征 
4. 尝试增加多项式特征 
5. 尝试减少归一化程度 λ 
6. 尝试增加归一化程度 λ  


不应该随机选择上面的某种方法来改进算法

而是运用一些机器学习诊断法来帮助我们知道上面哪些方法对算法是有效的。 


——————————————————————————————————————


评估学习器性能:

将数据分成训练集和测试集, 通常70%作为训练集, 30%作为测试集。



—————————————————————————————————————————————————————————


模型选择和交叉验证集(Model Selection and Train_Validation_Test Sets)



使用交叉验证集来帮助选择模型。 
即:使用 60%作为训练集, 20%作为交叉验证集,20%作为测试集 。

模型选择的方法为: 

1. 使用训练集训练出 10 个模型 

2. 用 10 个模型分别对交叉验证集计算得出交叉验证误差(代价函数的值) 

3. 选取代价函数值最小的模型 

4. 用步骤 3 中选出的模型对测试集计算得出泛化误差(代价函数的值)——仅是为了得出泛化误差,此步对模型选择无用。



—————————————————————————————————————————————————————————


偏差/方差诊断( Diagnosing Bias vs. Variance)

偏差大,欠拟合;

方差大,过拟合。

是一个很有效的指示器,指引可以改进算法的方法和途径。

 

结论:

交叉验证集误差训练集误差近似时:偏差/欠拟合 ;

交叉验证集误差远大于训练集误差时:方差/过拟合。


—————————————————————————————————————————————————————————


正则化和偏差/方差(Regularization and Bias_Variance)

在训练模型的过程中, 一般会使用一些正则化方法来防止过拟合。



选择一系列的想要测试的 λ 值,通常是 0-10 之间的呈现 2 倍关系的值。

(如:0,0.01,0.02,0.04,0.08,0.15,0.32,0.64,1.28,2.56,5.12,10 共 12 个)。 

我们同样把数据分为训练集、交叉验证集和测试集。


选择 λ 的方法为: 
1. 使用训练集训练出 12 个不同程度归一化的模型; 

2. 用12个 模型分别对交叉验证集计算的出交叉验证误差; 

3. 选择得出交叉验证误差最小的模型; 

4. 运用步骤 3 中选出模型对测试集计算得出泛化误差。——仅是为了得出泛化误差,此步对模型选择无用。



结论:

当 λ 较小时,训练误差较小(过拟合)而交叉验证误差较大 ;

随着 λ 的增加,训练误差不断增加(欠拟合),而交叉验证误差则是先减小后增加 。


—————————————————————————————————————————————————————————


学习曲线(Learning Curves)

经常使用学习曲线来判断某一个学习算法是否处于偏差、方差问题。

学习曲线是学习算法的一个很好的合理检验(sanity check)。

学习曲线是将训练集误差和交叉验证集误差作为训练集实例数量(m)的函数绘制的图表。

 即,如果我们有 100 行数据,我们从 1 行数据开始,逐渐学习更多行的数据。


思想:

当训练较少数据时, 训练的模型将能够非常完美地适应较少的训练数据, 但是训练出来的模型却不能很好地适应交叉验证集数据或测试集数据。


如何利用学习曲线识别高偏差/欠拟合?

作为例子,试用一条直线来适应下面的数据,可以看出,无论训练集有多么大误差都不会有太大改观:

 


如何利用学习曲线识别高方差/过拟合?

 假设我们使用一个非常高次的多项式模型,并且正则化非常小.

可以看出,当交叉验证集误差远大于训练集误差时,往训练集增加更多数据可以提高模型的效果。 



小结:

在高偏差/欠拟合的情况下,增加数据到训练集不一定能有帮助;

在高方差/过拟合的情况下,增加更多数据到训练集可能可以提高算法效果。 


—————————————————————————————————————————————————————————


决定下一步做什么(Deciding What to Do Next)

六种可选方案: 

1. 获得更多的训练实例——解决高方差 

2. 尝试减少特征的数量——解决高方差 

3. 尝试获得更多的特征——解决高偏差 

4. 尝试增加多项式特征——解决高偏差 

5. 尝试减少正则化程度 λ——解决高偏差 

6. 尝试增加正则化程度 λ——解决高方差 


神经网络的方差和偏差:


使用较小的神经网络,类似于参数较少的情况,容易导致高偏差和欠拟合,但计算代价较小;

使用较大的神经网络,类似于参数较多的情况,容易导致高方差和过拟合,虽然计算代价比较大,但是可以通过正则化手段来调整而更加适应数据。 

通常选择较大的神经网络并采用正则化处理会比采用较小的神经网络效果要好。 


对于神经网络中的隐藏层的层数的选择,通常从一层开始逐渐增加层数。

为了更好地作选择,可以把数据分为训练集、交叉验证集和测试集,针对不同隐藏层层数的神经网络训练神经网络, 然后选择交叉验证集代价最小的神经网络。


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/387259.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS3--5.颜色属性

HTML5中添加了一些新的颜色的表示方式 1.RGBA:说得简单一点就是在RGB的基础上加进了一个通道Alpha。RGBA在RGB的基础上多了控制alpha透明度的参数。以上R、G、B三个参数,正整数值的取值范围为:0 - 255。百分数值的取值范围为:0.0%…

逻辑回归的通俗解释 逻辑回归的定位

1 逻辑回归的定位 首先,逻辑回归是一种分类(Classification)算法。比如说: 给定一封邮件,判断是不是垃圾邮件给出一个交易明细数据,判断这个交易是否是欺诈交易给出一个肿瘤检查的结果数据,判断…

机器学习08机器学习系统设计

首先要做什么 一个垃圾邮件分类器算法为例: 为了解决这样一个问题,首先要做的决定是如何选择并表达特征向量 x。 可以选择一个由 100 个最常出现在垃圾邮件中的词所构成的列表,根据这些词是否有在邮件中 出现,来获得我们的特…

数学笔记1——导数1(导数的基本概念)

什么是导数导数是高数中的重要概念,被应用于多种学科。从物理意义上讲,导数就是求解变化率的问题;从几何意义上讲,导数就是求函数在某一点上的切线的斜率。我们熟知的速度公式:v s/t,这求解的是平均速度&a…

python接口自动化(四)--接口测试工具介绍(详解)

简介 “工欲善其事必先利其器”,通过前边几篇文章的介绍,大家大致对接口有了进一步的认识。那么接下来让我们看看接口测试的工具有哪些。 目前,市场上有很多支持接口测试的工具。利用工具进行接口测试,能够提供测试效率。例如&…

机器学习09支持向量机

支持向量机(Support Vector Machines) 在监督学习中,许多学习算法的性能都非常类似,因此,重要的不是你该选择使用学习算法 A 还是学习算法 B,而更重要的是, 应用这些算法时,所创建的大量数据在应用这些算…

数学笔记2

数学笔记2——导数2(求导法则和高阶导数)和、差、积、商求导法则设uu(x),vv(x)都可导,则:(Cu)’ Cu’, C是常数(u v)’ u’ v’(uv)’ u’ v’(u/v)’ (u’v – uv’) / v21、2不解释,下面给出3、4的推导过程乘法法则的推导过乘法法则…

机器学习10聚类

无监督学习 在非监督学习中,我们需要将一系列无标签的训练数据,输入到一个算法中, 然后让它找这个数据的内在结构。 我们可能需要某种算法帮助我们寻找一种结构。图上的数据看起来可以分成两个分开的点集(称为簇)&am…

关联分析(Association analysis)

关联分析(Association analysis) 简介 大量数据中隐藏的关系可以以‘关联规则’和‘频繁项集’的形式表示。rules:{Diapers}–>{Beer}说明两者之间有很强的关系,购买Diapers的消费者通常会购买Beer。 除…

机器学习11主成分分析

降维(Dimensionality Reduction) : 一、 降维目的: 目的一:数据压缩(Data Compression) 目的二:数据可视化(Visualization) 二、 主成分分析(PCA) 主成分…

使用Apriori进行关联分析(一)

使用Apriori进行关联分析(一)大型超市有海量交易数据,我们可以通过聚类算法寻找购买相似物品的人群,从而为特定人群提供更具个性化的服务。但是对于超市来讲,更有价值的是如何找出商品的隐藏关联,从而打包促…

主成分分析法 (PCA) 用于数据可视化实验 -- Matlab版

第一步:下载数据集。 https://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/multiclass.html#pendigits 第二步:改变数据格式。 注:此数据集的各特征值均为像素,即属于同一量纲,故无需归一化步骤。 原格式为&a…

机器学习12推荐系统

推荐系统(Recommender Systems) 推荐系统根据浏览用户过去买过什么书,或过去评价过什么电影来判断并推荐新产品给用户。 这些系统会为像亚马逊和网飞这样的公司带来很大一部分收入。 因此,对推荐系统性能的改善,将对这些企业的有实质性和…

使用Apriori进行关联分析(二)

使用Apriori进行关联分析(二)书接上文(使用Apriori进行关联分析(一)),介绍如何挖掘关联规则。发现关联规则我们的目标是通过频繁项集挖掘到隐藏的关联规则。所谓关联规则,指通过某个…

数学笔记3——导数3(隐函数的导数)

数学笔记3——导数3(隐函数的导数)幂函数的扩展形式f(x) xn的导数:f’(x) nxn-1,n是整数,该公式对f(x) xm/n, m,n 是整数同样适用。推导过程:什么是隐函数引自知乎:“如果方程F(x,y)0能确定y…

机器学习13大规模数据集

大型数据集的学习(Learning With Large Datasets) 如果我们有一个低方差的模型, 增加数据集的规模可以帮助你获得更好的结果。 我们应该怎样应对一个有 100 万条记录的训练集? 以线性回归模型为例,每一次梯度下降…

Java07多线程

14 多线程 操作系统的多任务(multitasking):在同一时刻运行多个程序的能力。 多线程在较低的层次上扩展了多任务的概念:一个程序同时执行多个任务。 通常,每一个任务称为一个线程(tread)&…

MySQL字段拼接Concat

有时候,从数据库中拿出的数据并不是我们想要的格式,比如,有以下的vendors表 如果,想以 name (location)的格式展现出来,那么就要用到MySQL的Concat了。 Concat()拼接串,即把多个串连接起来形成一个较长的串…

使用pycharm调用模块后字体变灰 是什么原因呢?

使用pycharm调用模块后字体变灰 是什么原因呢?点击小灯泡提示出现以下内容:This inspection detects names that should resolve but dont. Due to dynamic dispatch and duck typing, this is possible in a limited but useful number of cases. Top-l…

操作系统01概述

第一章 概论 《Operating System Internals and Design Principles》 《Applied Operating System Concepts》 操作系统——裸机上的第一层软件,它是对硬件系统功能的首次扩充,填补人与机器之间的鸿沟。 1.1 操作系统与计算机同在 1.2 对操作系统的…