笔记:机器学习 - Week 7
第七周的学习课程主要讲述了两大主题:机器学习实践的建议与机器学习系统设计。
机器学习实践的建议
当模型在测试样例集没有给出满意的预测数据时,下一步要做什么呢?
- 获取更多的训练数据
- 尝试更少的特征集
- 尝试添加额外的特征
- 尝试多项式特征
- 增加lambda
- 减少lambda
评估一个假设,需要将训练样例分为训练集和测试集。
测试集错误率
- 线性回归 - 均方误差
- 对数几率回归 - 测试集所有的misclassification误差之和
- misclassification误差:预测为真,实际为假,或者预测为假,实际为真时, 取1;反之,取0
模型选择
- 将数据集分为:训练集、交叉验证集与测试集
- 对不同多项式的阶,用训练数据优化参数
- 用交叉验证集选取误差最小的多项式的阶
- 用测试集评估泛化误差
偏差 vs. 方差
- 需要区别是偏差还是方差导致预测不准的
- 高偏差一般都是欠拟合
- 高方差一般是过拟合
- 当增加多项式的阶时,训练误差趋向降低
- 当增加多项式的阶到一个点时,交叉验证误差趋向降低,当过了这个点,则又趋向提高
regularization与 偏差和方差
- lambda很大,欠拟合
- lambda很小,过拟合
学习曲线:训练集大小与误差的映射
- 如果学习算法是高偏差,获取更多的数据并没有大用
- 如果学习算法是高方差,获取更多的数据一般都有用
处理高方差的方法:
- 获取更多的训练数据
- 尝试更少的特征集
- 增加lambda
处理高偏差的方法:
- 增加特征
- 增加多项式特征
- 减少lambda
神经网络分析:
- 很少的参数,很可能欠拟合
- 很多的参数,很可能过拟合
机器学习系统设计
构建一个文本垃圾分类器
- 收集大量数据
- 开发特征
- 设计多样的数据处理算法
误差分析
- 从一个简单算法开始,快速实现,并做交叉验证测试
- 绘制学习曲线,决定是更多数据,更多特征等哪些方式可能会有帮组
- 在交叉验证集里,手动检验误差,尝试分析误差来源
处理skewed数据
- 查准率、查全率与F1