目录
一 模型评价
如果有多个待选的模型,如何从其中选中一个最好的模型出来?
通常情况下会用测试集去验证模型的泛化能力,但是如果用测试机去验证不同模型的优劣,会在测试的时候引入误差。
解决方案
将数据分为三个部分,训练集、验证集、测试集。其比例大概为60:20:20。然后用验证集来选择模型。
二 偏差-方差
对于不同阶数的多项式对数据的拟合能力不同,如下图所示,一阶多项式比较简单对数据拟合能力不够(欠拟合-高偏差),而4阶多项式比较复杂对训练集拟合能力较好(过拟合-高方差)。
训练集的cost function 和验证集的cost function的函数曲线如下图所示,对于训练集来说,阶数越大,拟合的越好,cost function 越小,但是对于验证集来说,阶数越大时容易过拟合,在测试集上的表现反而更差。
偏差问题(bias): 训练误差和验证集误差都很大(对应图中的左侧)
方差问题(variance): 训练集误差小,但是验证集误差很大(对应图中的右侧)
三 正则化与偏差-方差
如何得到最优的正则化参数?
1. 选择一系列的值,最小化验证集的代价函数,得到对应的参数值
2. 计算Jcv 和 Jtrain的时候不需要带正则化项,其曲线如下图所示,Jcv的最小值处是最合适的正则化参数
四 学习曲线
样本越来越多,则误差越来越大,因为模型越来越难让每个样本都能较好的拟合。
对于Jcv, 样本越少,误差越大,随着样本的增大,误差区域稳定。
对于高偏差模型(High bias)
训练集较小:导致Jtrain较低,Jcv较高
训练集较大:导致Jtrain和Jcv都较高,且Jtrain≈Jcv
如果算法主要被高偏差影响,则使用更大的训练集并不会有效改善模型。
对于高方差(High variance)模型
训练集较小:导致Jtrain较低,Jcv较高
训练集较大:Jtrain将会随着训练集大小增大,Jcv继续减小且并不平稳,Jtrain< Jcv但是他们之间的差距一直都较大。
如果一个算法主要被高方差影响,那么使用更大的训练集有助于改善模型。
五 模型调试的常识
1.训练更多的样本,可以解决高方差问题
2.减少特征的数量,可以解决高方差问题
3.增加特征的数量,可以解决高偏执(bias问题)
4.增加多项式的次数,可以解决高偏执问题(bias问题)
5.减小正则化系数,解决高偏执问题
6.增加正则项系数,解决高方差问题
六 几个常用的性能度量指标
首先给出几个定义:
1.错误率
错误率= 分类错误的样本/样本总数
2.精度
精度= 分类正确的样本/样本总数 = 1- 错误率
3.查准率(Precission)
查准率 = TP/TP+FP
查准率相当于从一次查找结果中真正正确的结果占查询结果中正确的比例,以搜索为例,搜索一个关键字,Baidu/Google会给出一些检索结果(这些结果搜索引擎都认为是正确的),但是符合你需要的可能就那么几个。所以查准率就相当于:
查准率 = 符合你需要的数量/引擎搜出来的总数。
4.查全率(Recall)
查全率 = TP/TP+ FN
查全率相当于搜索结果中符合要求的数量占总体中符合要求的数量的比例,以搜索为例,搜索一个关键字,搜索引擎给出一些检索结果(也可能有一部分结果没有给出)。 所以查全率相当于:
查全率 = 符合你需要的数量/符合你需要的数量+ 引擎没有搜出来的数量
5.查准率与查全率的关系
查全率越高查全准越低:查全率高代表搜索结果中符合要求的数量越多(可以通过多搜索点数量,将大概符合要求的都搜出来,这样TP较大),但是这样做导致的结果是出现了更多的FP,所以查准率会降低。
查准率越高查全准越低:很好理解,只调认为100%正确的样本出来,这样FP 较小,从而查准率较高,但是同样的FN会较大,从而查全率越低。
6.P-R图
为了选择更合适的模型,可以根据模型的预测结果对样本进行排序,排在前面的是"最可能"是正例的样本,排在最后的是“最不可能”是正例的样本, 将查全率做横轴,查准率做纵轴,得到如下的P-R图
如果一个模型的PR曲线完全包住了另一个的曲线,则说明前者比后者优秀(图中A优于C).
如果一个模型的平衡点(P=R时的取值)平衡点越大越优秀(图中A优于B)
7.F1-Score
由于平衡点判断优劣太过于简单,所以引入了F1的概念
F1 时基于查准率和查全率的调和平均数:,经计算可得如下表示:
F1 = 2*TP/样本总数+TP-TN
F1 越大则表示越优秀
8.ROC-AUC
ROC:受试着工作特征
AUC:ROC曲线下的面积
背景:将模型的预测结果排序,“最可能”是正例的拍在前面,“最不可能”是正例的排在后面。则可以根据不同的任务来采用不同的“截断点”将训练样本截断,前面的为正例,后面的为反例。
ROC原理:按上述的顺序排序,然后逐个把样本作为正例进行预测,每次都计算两个值(真正例率和假正例率)并以这两个值为轴作图。
真正例率= TP/TP+FN
假正例率= FP/ TN+FP
9.如何根据ROC评价学习器的优劣
如果一个模型被另一个模型的ROC曲线完全包住,则后者更优秀
如果两个模型的ROC曲线发生交叉,则AUC的面积大模型更优秀