第七周的学习课程主要讲述了两大主题:机器学习实践的建议与机器学习系统设计。

机器学习实践的建议

当模型在测试样例集没有给出满意的预测数据时,下一步要做什么呢?

  • 获取更多的训练数据
  • 尝试更少的特征集
  • 尝试添加额外的特征
  • 尝试多项式特征
  • 增加lambda
  • 减少lambda

评估一个假设,需要将训练样例分为训练集和测试集。

测试集错误率

  • 线性回归 - 均方误差
  • 对数几率回归 - 测试集所有的misclassification误差之和
    • misclassification误差:预测为真,实际为假,或者预测为假,实际为真时, 取1;反之,取0

模型选择

  • 将数据集分为:训练集、交叉验证集与测试集
  • 对不同多项式的阶,用训练数据优化参数
  • 用交叉验证集选取误差最小的多项式的阶
  • 用测试集评估泛化误差

偏差 vs. 方差

  • 需要区别是偏差还是方差导致预测不准的
  • 高偏差一般都是欠拟合
  • 高方差一般是过拟合
  • 当增加多项式的阶时,训练误差趋向降低
  • 当增加多项式的阶到一个点时,交叉验证误差趋向降低,当过了这个点,则又趋向提高

regularization与 偏差和方差

  • lambda很大,欠拟合
  • lambda很小,过拟合

学习曲线:训练集大小与误差的映射

  • 如果学习算法是高偏差,获取更多的数据并没有大用
  • 如果学习算法是高方差,获取更多的数据一般都有用

处理高方差的方法:

  • 获取更多的训练数据
  • 尝试更少的特征集
  • 增加lambda

处理高偏差的方法:

  • 增加特征
  • 增加多项式特征
  • 减少lambda

神经网络分析:

  • 很少的参数,很可能欠拟合
  • 很多的参数,很可能过拟合

机器学习系统设计

构建一个文本垃圾分类器

  • 收集大量数据
  • 开发特征
  • 设计多样的数据处理算法

误差分析

  • 从一个简单算法开始,快速实现,并做交叉验证测试
  • 绘制学习曲线,决定是更多数据,更多特征等哪些方式可能会有帮组
  • 在交叉验证集里,手动检验误差,尝试分析误差来源

处理skewed数据

  • 查准率、查全率与F1