机器学习 第六周 总结 知识点

来源:互联网 发布:java 邮箱匹配 编辑:程序博客网 时间:2024/03/29 10:31

主要讲怎样改进机器学习的性能(从哪些方面入手)遇到哪种情况用何种方法比较有效,查准率(Precision)和查全率(概率统计大法)

 

让模型变得更好的方法

1. 获得更多的训练

2. 尝试减少特征的数量

3. 尝试获得更多的特征

4. 尝试增加多项式特征

5. 尝试减少归一化程度 λ

6. 尝试增加归一化程度λ


评估假设



对于线性回归模型,我们利用测试集数据计算代价函数 J

对于逻辑回归模型,我们除了可以利用测试数据集来计算代价函数外:


然后对结果求平均


过拟合是什么


如何选择一个合适的模型

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

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

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

4. 用步骤 3 中选出的模型对测试集计算得出推广误差(代价函数的值)

 

检验算法是否过拟合,我们将数据分成训练集和测试集,通常用 70%的数据作为训练集,用剩下 30%的数据作为测试集。很重要的一点是训练集和测试集均要含有各种类型的

数据,通常我们要对数据进行“洗牌”,然后再分成训练集和测试集。


诊断高方差和高偏差





如果训练集的代价函数和交叉验证集中代价函数差不多,是高偏差的情况(欠拟合)

如果训练集的代价函数较小而交叉验证集中的代价函数很大,是高方差的情况(过拟合)

训练集的代价函数一直在减小,交叉验证集的代价函数先变小后变大

我们要做的就是找出交叉验证集随着d的增大先变小后变大的那个点

 

归一化和选择一个合适的参数λ


我们选择一系列的想要测试的λ 值,通常是 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 中选出模型对测试集计算得出推广误差,我们也可以同时将训练集和交叉验证集模型的代价函数误差与 λ 的值绘制在一张图表上

当λ很小时,容易过拟合,当λ很大时,容易欠拟合(见以前学到的内容,因为两者是乘积的关系)然后再根据刚刚学到的内容,判断是方差还是偏差。

 

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


学习曲线

 

判断某一个学习算法是否处于偏差、方差问题。学习曲线是学习算法的一个很好的合理检验(sanity check)。学习曲线是将训练集误差和交叉验证集误差作为训练集实例数量(m)的函数绘制的图表。  


总结以上的各种情况



神经网络和过拟合




用小的神经网络容易造成欠拟合,但是容易计算;用一个复杂的有很多隐藏层的神经网络容易过拟合,计算的代价大。

 

 

 

第十一章

主要讲类偏斜的误差度量,查准率

 

构建一个学习算法的推荐方法为:

1. 从一个简单的能快速实现的算法开始,实现该算法并用交叉验证集数据测试这个算法

2绘制学习曲线,决定是增加更多数据,或者添加更多特征,还是其他选择

3. 进行误差分析:人工检查交叉验证集中我们算法中产生预测误差的实例,看看这些实例是否有某种系统化的趋势

 

                                                          

 

类偏斜的误差度量

 

查准率(Precision)和查全率(Recall)我们将算法预测的结果分成四种情况:

1. 正确肯定(True Positive,TP):预测为真,实际为真

2. 正确否定(True Negative,TN):预测为假,实际为真

3. 错误肯定(FalsePositive,FP):预测为真,实际为假

4. 错误否定(FalseNegative,FN):预测为假,实际为假

 

查准率=TP/(TP+FP)例,在所有我们预测有恶性肿瘤的病人中,实际上有恶性肿瘤的病

人的百分比,越高越好。

查全率=TP/(TP+FN)例,在所有实际上有恶性肿瘤的病人中,成功预测有恶性肿瘤的

病人的百分比,越高越好。