使用学习曲线和验证曲线调试算法· Python机器学习 - ljalphabeta
文章推薦指數: 80 %
他们就是学习曲线(learning curve)和验证曲线(validation curve)。
学习曲线可以判断学习算法是否过拟合或者欠拟合。
使用学习曲线判别偏差和方差问题. 如果一个模型相对 ...
Python机器学习
Introduction
第一章让计算机从数据中学习
将数据转化为知识
三类机器学习算法
第二章训练机器学习分类算法
透过人工神经元一窥早期机器学习历史
使用Python实现感知机算法
基于Iris数据集训练感知机模型
自适应线性神经元及收敛问题
Python实现自适应线性神经元
大规模机器学习和随机梯度下降
总结
第三章使用Scikit-learn进行分类器之旅
如何选择合适的分类器算法
scikit-learn之旅
逻辑斯蒂回归对类别概率建模
使用正则化解决过拟合
支持向量机
使用松弛变量解决非线性可分的情况
使用核SVM解决非线性问题
决策树学习
最大信息增益
构建一棵决策树
随机森林
k近邻--一个懒惰学习算法
总结
第四章构建一个好的训练集---数据预处理
处理缺失值
消除带有缺失值的特征或样本
改写缺失值
理解sklearn中estimator的API
处理分类数据
将数据集分割为训练集和测试集
统一特征取值范围
选择有意义的特征
利用随机森林评估特征重要性
总结
第五章通过降维压缩数据
PCA进行无监督降维
聊一聊方差
特征转换
LDA进行监督数据压缩
原始数据映射到新特征空间
使用核PCA进行非线性映射
用Python实现核PCA
映射新的数据点
sklearn中的核PCA
总结
第六章模型评估和调参
通过管道创建工作流
K折交叉验证评估模型性能
使用学习曲线和验证曲线调试算法
通过网格搜索调参
通过嵌套交叉验证选择算法
不同的性能评价指标
第七章集成学习
集成学习
结合不同的分类算法进行投票
第八章深度学习之PyTorch
60分钟上手PyTorch
PoweredbyGitBook
使用学习曲线和验证曲线调试算法
使用学习曲线和验证曲线调试算法
这一节我们学习两个非常有用的诊断方法,可以用来提高算法的表现。
他们就是学习曲线(learningcurve)和验证曲线(validationcurve)。
学习曲线可以判断学习算法是否过拟合或者欠拟合。
使用学习曲线判别偏差和方差问题
如果一个模型相对于训练集来说过于复杂,比如参数太多,则模型很可能过拟合。
避免过拟合的手段包含增大训练集,但这是不容易做到的。
通过画出不同训练集大小对应的训练集和验证集准确率,我们能够很轻松滴检测模型是否方差偏高或偏差过高,以及增大训练集是否有用。
上图的左上角子图中模型偏差很高。
它的训练集和验证集准确率都很低,很可能是欠拟合。
解决欠拟合的方法就是增加模型参数,比如,构建更多的特征,减小正则项。
上图右上角子图中模型方差很高,表现就是训练集和验证集准确率相差太多。
解决过拟合的方法有增大训练集或者降低模型复杂度,比如增大正则项,或者通过特征选择减少特征数。
这俩问题可以通过验证曲线解决。
我们先看看学习曲线是怎么回事吧:
learning_curve中的train_sizes参数控制产生学习曲线的训练样本的绝对/相对数量,此处,我们设置的train_sizes=np.linspace(0.1,1.0,10),将训练集大小划分为10个相等的区间。
learning_curve默认使用分层k折交叉验证计算交叉验证的准确率,我们通过cv设置k。
上图中可以看到,模型在测试集表现很好,不过训练集和测试集的准确率还是有一段小间隔,可能是模型有点过拟合。
用验证曲线解决过拟合和欠拟合
验证曲线是非常有用的工具,他可以用来提高模型的性能,原因是他能处理过拟合和欠拟合问题。
验证曲线和学习曲线很相近,不同的是这里画出的是不同参数下模型的准确率而不是不同训练集大小下的准确率:
我们得到了参数C的验证曲线。
和learning_curve方法很像,validation_curve方法使用采样k折交叉验证来评估模型的性能。
在validation_curve内部,我们设定了用来评估的参数,这里是C,也就是LR的正则系数的倒数。
观察上图,最好的C值是0.1。
resultsmatching""
Noresultsmatching""
延伸文章資訊
- 1使用学习曲线和验证曲线调试算法· Python机器学习 - ljalphabeta
他们就是学习曲线(learning curve)和验证曲线(validation curve)。学习曲线可以判断学习算法是否过拟合或者欠拟合。 使用学习曲线判别偏差和方差问题. 如果一个模型相对...
- 2用学习曲线learning curve 来判别过拟合问题 - 腾讯云
用验证曲线validation curve 选择超参数今天来看看网格搜索(grid search),也是一种常用的找最优... 机器学习老中医:利用学习曲线诊断模型的偏差和方差 ...
- 3Learning Model : 學習曲線診斷模型的偏差和方差,並優化模型
假設讀者熟悉scikit-learn 和相關的機器學習理論。 ... plt.title('Learning curves for a linear regression model', fon...
- 4用学习曲线learning curve 来判别过拟合问题 - 简书
学习曲线就是通过画出不同训练集大小时训练集和交叉验证的准确率,可以看到模型在新数据上的表现,进而来判断模型是否方差偏高或偏差过高,以及增大训练集 ...
- 504. 鐵達尼預測內幕:避免過度學習的方法
圖一:模型為high bias 的情況,所繪製出來的learning curve。可以看到無論training set size 如何增加,validation error curve (藍紫色...