机器学习系统设计和诊断方法学习总结

20 篇文章 0 订阅
4 篇文章 0 订阅

过拟合:对训练数据拟合精准,但是对未知的数据预测能力差
如何应对?
2、丢弃一些不能帮助正确预测的特征。
2.1、手工选择丢弃特征
2.2、使用模型选择方法(如PCA)
3、正则化。保留所有的特征,减少参数的大小

预防过拟合的方法步骤:
1、打乱数据集;2、划分数据:70%训练集 + 30%测试集

帮助模型选择的方法:
交叉验证:1、打乱数据集;2、划分数据:60%训练集 + 20%交叉验证集 + 20%测试集

如何选择模型?
1、预先训练10个模型
2、计算10个模型的交叉训练集的预测误差
3、选取代价函数最小的模型
4、用步骤3选出的模型对测试集计算得出推广误差

诊断偏差和方差
高偏差和高方差的问题基本上是欠拟合和过拟合的问题
1、Jtraing(训练集误差)和Jcv(交叉验证集误差)都很大:偏差/欠拟合
2、Jtraing小,Jcv远远大于Jtraing:方差/过拟合

正则化和偏差方差
正则化因子lambda的选择方法:
1、使用训练集训练12个不同程度正则化的模型
2、计算12个模型的交叉训练集的预测误差
3、选取代价函数最小的模型
4、用步骤3选出的模型对测试集计算得出推广误差

lambda较小时:
Jtraing很小,而Jcv较大:方差/过拟合
随着lambda的增大:
Jtraing不断增大(欠拟合),Jcv先减小后增大
因此,应该选择适中的lambda,不能过大或过小

学习曲线:即训练样本数目m和Jtraing、Jcv的关系图
在高偏差/欠拟合的情况下,增加训练集样本数不一定能够提升模型能力,应该考虑切换模型
在高方差/过拟合的情况下,增加训练集样本数可以一定程度的提升模型能力

总结一下:

欠拟合/偏差大:
现象:Jtrain较大,同时Jcv/Jtest较大
原因:模型复杂度不够,对训练数据集拟合程度较低;特征数量n相比训练样本数量m较少;正则化因子lambda较大
解决办法:
1、使用数次较高的多项式特征,增加模型复杂度
2、增加特征数量n
3、减小正则化因子lambda的值

过拟合/方差大:
现象:Jtrain较小,同时Jcv/Jtest较大
原因:模型复杂度过高,对训练数据集拟合非常好,但是对测试数据集效果差;样本数量m相比特征数量n较少;正则化因子lambda较小
解决办法:
1、降低模型模型复杂度,降低多项式特征次数
2、减少影响较小的特征数量/增加样本数量
3、增大正则化因子lambda

针对神经网络:
模型效果:大神经网络+正则化 > 小神经网络
选择隐藏层数目时,从1层开始逐层增加,选择交叉验证集代价函数最小的网络。
 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值