6.1_算法改进


评估机器算法的性能

  1. 70%训练+30%检测
    2.随机打乱

改进算法(偏差、方差)

  1. 训练集60% 交叉集20% 检验集20%
    2.why分成三段,因为两段只能看出test训练得好不好,我们的目的是看新数据进入后能不能得到好的预测

  1. 判断是过拟合和欠拟合的方法:--使用误差函数
  2. why 交叉函数为什么像是二次函数?
    答:交叉函数的theta,是根据train训练组得到。当d=2时,是error最小的

偏差值(欠拟合): Jtrain high; Jcv ~ Jtrain

方差值(过拟合): Jtrain low; Jcv >> Jtrain (eg. 0.1 and 0.3)

偏差方差和正则化的关系

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

学习曲线(常用)

避免学习算法偏差、方差或两者都有的方法

不管怎么增加训练集,因为他谁一次函数就注定error大


6.2 调试建议

措施 |适合情况

更多训练集 |高方差(过拟合)
尝试更小的特征值 |高方差(过拟合)
添加新的特征 |高方差(欠拟合)
添加高次特征量 |高方差(欠拟合)
减小λ |欠拟合
增加λ |过拟合

学习曲线(常用)

检查算法在过拟合还是前拟合

构建机器学习系统

构建一个邮件选择系统

  1. 遍历整个收件箱,统计出所有的单词的出现频次,选出Top100

误差分析

1.构建一个简单的系统
2.学习曲线
2.误差分析:什么类型的邮件总是被错误分类→构建相关的更复杂的系统

skewed classes

样本数A比B少很多

posted @ 2016-05-10 18:38  nice_day  阅读(516)  评论(0)    收藏  举报