6.1_算法改进


评估机器算法的性能
- 70%训练+30%检测
2.随机打乱
改进算法(偏差、方差)
- 训练集60% 交叉集20% 检验集20%
2.why分成三段,因为两段只能看出test训练得好不好,我们的目的是看新数据进入后能不能得到好的预测

- 判断是过拟合和欠拟合的方法:--使用误差函数
- why 交叉函数为什么像是二次函数?
答:交叉函数的theta,是根据train训练组得到。当d=2时,是error最小的
偏差值(欠拟合): Jtrain high; Jcv ~ Jtrain
方差值(过拟合): Jtrain low; Jcv >> Jtrain (eg. 0.1 and 0.3)

偏差方差和正则化的关系
- 正则化防止过拟合,减小参数θ
- 当 λ 过大时(惩罚函数大),参数都基本为 0,导致欠拟合;而当 λ 小(→0),即参数的求解主要考虑的训练集,那么就会导致过拟合
- 误差函数和正则化没有关系(不加后面的一坨)
- 如何选择λ?
- 2的倍数 (12个)
- 选择Jcv 最小值对应的θ


学习曲线(常用)
避免学习算法偏差、方差或两者都有的方法
不管怎么增加训练集,因为他谁一次函数就注定error大


6.2 调试建议
措施 |适合情况
更多训练集 |高方差(过拟合)
尝试更小的特征值 |高方差(过拟合)
添加新的特征 |高方差(欠拟合)
添加高次特征量 |高方差(欠拟合)
减小λ |欠拟合
增加λ |过拟合


学习曲线(常用)
检查算法在过拟合还是前拟合
构建机器学习系统
构建一个邮件选择系统
- 遍历整个收件箱,统计出所有的单词的出现频次,选出Top100
误差分析
1.构建一个简单的系统
2.学习曲线
2.误差分析:什么类型的邮件总是被错误分类→构建相关的更复杂的系统
skewed classes
样本数A比B少很多

浙公网安备 33010602011771号