机器学习评估与优化方法
2015-08-05 11:19
330 查看
https://www.coursera.org/learn/machine-learning/home/week/6
提高算法精度的方法
用更多样本减少特征
增加特征
增加ploynormial项
增加lambda
减少lambda
对假设函数的评估
一般情况下训练误差并不是越小越好, 也会有过拟合现象判断方法是否过拟合:
plot切分出训练集和测试集
模型选择
切分出训练集测试集验证集(交叉验证)交叉验证集用来选取最优的模型
测试集用来测试泛化程度
欠拟合和过拟合Bias/variance
可以通过交叉验证验证是否过拟合和欠拟合,寻找最好模型
对于训练集的误差如图中的曲线, 随着线性拟合的阶数的提高误差减少
但是交叉验证的误差由高到低, 由欠拟合到过拟合, 最低点是最优模型.
bias/variance与正则化之间的关系
我们需要选择一个合适的正则化参数λ\lambda得到最优的模型由于模型是4次幂, 不加入正则项试过拟合的, 所以对于训练集的误差在λ\lambda小时候误差小, 在λ\lambda变大时候过拟合逐渐变成欠拟合,误差变大
对于交叉验证的曲线, 只有在合适的λ\lambda下才是最小误差, 无论过拟合欠拟合都会有大误差.
学习曲线
学习曲线可以使我们轻松地看出拟合和过拟合问题采用不同训练集会对训练误差和测试误差有不同的影响
无过拟合和欠拟合情况下的学习曲线
此种情况下的训练误差随着训练集的增加而增加
测试集减少, 最终二者得到误差是有一些距离的
欠拟合情况
欠拟合的情况下, 最终的误差都会很大,并且二者的值非常接近过拟合情况
过拟合情况下, 训练误差会很下, 测试误差很大, 二者在一定样本下距离很大, 但是训练集很多情况下, 会取得好效果!方法选择?
神经网络结构与连接形式的选择技巧
一般情况下选用一个大型的网络和合适的正则化参数会比小网络的效果好,但是计算量大偏斜类问题
例如, 对癌症进行分类, 给定的训练集和有0.5%的患者, 只需要预测所有人都不是癌症患者那么误差就能保证在0.5%.Precision/recall 查准率/召回率
例子: 逻辑回归来判断癌症患者
我们知道用逻辑回归预测的值在[0,1]之间, 一般情况我们将0.5设为阈值, 大于0.5的情况是认为患有癌症, 小于则认为没有癌症.
1. 若我们提高这个阈值,例如0.7, 那么我们只有在很确信的情况下认为样本是癌症, 即具有较高的查准率.
2. 若降低到0.3, 那么没病的人不会轻易被判断到有病的情况即(False negative)且几乎所有的病人会成功被判断出来, 那么具有较高的召回率, 但是会有很多不是病人的人被判断成病人, 降低了查准率.
二者是一个此消彼长的关系.
二者数值的优劣判断
UsinglargeDataSets训练集的规模选取
取得成功的人不是拥有最好算法的人, 而是拥有最多数据的人.大数据集的rationale
使用多特征 可以减少欠拟合
使用大训练集合 减少过拟合
相关文章推荐
- HDU - 1677Nested Dolls最长上升子序列变式
- FastDFS的配置、部署与API使用解读(8)FastDFS多种文件上传接口详解
- 学习scheme的笔记
- QT国际化
- 关于linux下shutdown关闭不掉tomcat问题的解决办法
- linux sort,uniq,cut,wc命令详解
- HOW TO CHANGE THE DEFAULT KEY-VALUE SEPARATOR OF A MAPREDUCE JOB
- 极限挑战—C#+ODP 100万条数据导入Oracle数据库仅用不到1秒
- 南邮 OJ 1222 序关系计数问题
- oracle列相乘
- iOS开发问题——UISearchBar背景颜色去除问题
- hdu 5316 多校(3)
- java实现的小工具并用bat文件执行该工具
- Oracle会话及连接数优化
- 2015十大视错觉
- 性能优化之布局优化
- Win7,Win8下多窗口运行Excel 2010
- modprobe 及 配置文件 /etc/modprobe.conf
- java文件的上传操作
- Unity中从Txt文件读取Json数据