赞
踩
上节课我们介绍了机器学习的概论,简单梳理了机器学习的整体框架和机器学习所涵盖的内容,在正式介绍机器学习算法之前,我们还需要先了解一个内容,它就是模型评估方法与准则。我们模型建立好了,但是我们怎么知道他好不好呢,我们应该怎么设计出来一个优秀的模型呢。所以我们这里先把模型评价方法与准则先介绍下,免得后面看到这些评价指标的时候一头雾水,不知道是什么东西。
选出模型性能比较好,并且泛化能力比较强的模型。泛化能力是什么?模型的泛化能力是指模型对于未知数据的预测能力,针对他没见过的数据的预测性能就是模型的泛化能力。那么在建模的时候我们怎么才能获得泛化能力比较强 的模型呢?这个时候就需要用到评估方法和性能指标这两个东西了。
- 评估方法:为保证客观地评估模型,对数据集进行的有效划分实验方法。
- 性能指标:量化地度量模型效果的指标。
模型的评估方法可以分为离线和在线方法。
对模型的评估通常指的就是离线实验方法,主要包含一下几个过程。
- 使用历史数据训练一个适合解决目标任务的一个或多个机器学习模型。
- 对模型进行验证(Validation)与离线评估(Offline Evaluation)。
- 通过评估指标选择一个较好的模型。
由于离线实验方法是建立在老的数据上的评估结果,模型上线之后会有新的数据输入,因此我们需要引入在线评估方法。最典型的就是 A / B A/B A/B T e s t Test Test, 是目前在线测试中最主要的方法。 是为同一个目标制定两个方案让一部分用户使用 A A A方案,另一部分用户使用 B B B方案,记录下用户的使用情况,看哪个方案更符合设计目标。如果不做AB A B AB AB实验直接上线新方案,新方案甚至可能会毁掉你的产品。这个我们暂时用的不多,先简单了解一下即可。
离线评估指标中,我们常用的主要是:准确率,查准率,查全率,ROC,AUC,PRC,mAP,PR曲线等来评估我们的模型,关于这部分的内容可以看我另一篇的博文:准确率,精准率,召回率,真正率,假正率,ROC/AUC。
在线评估模型一般都是我们的模型已经商业应用了,所有通常使用一些商业指标来评估模型性能,如:用户生命周期,广告点击率,用户流失率等评价指标。
主要是对完整的数据集进行不同的划分,保证我们后面计算的评估指标是有效的。也可以理解成数据划分方法,怎么处理数据。
从训练数据集中保留出来一部分数据进行验证,也就是我们说的测试集,这部分数据不参与训练,只是用来评估模型的额性能。划分测试集的时候需要有几个注意事项。
- 随机划分不一定能够保证数据集的随机性,随机划分之后验证集可能只是数据集中某一类或者几类的数。
- 划分验证集一般保证验证集占整个数据集的0.2-0.3。
- 单单词划分往往不能得到合适的测试集,一般采用多次重复划分然后测试,最后求平均测试误差算作最终的测试误差。
我们上面讲了留出法划分数据集可能不能够很好的平均划分数据集,因此在机器学习中又引入了另一种数据划分方法 K K K折交叉验证法,将数据集划分成 K K K组,每次拿出其中一组进行测试,其余的用于训练,直到 K K K数据均被测试过,最后计算误差平均值。
有时候我们的数据非常少,通过手中的数据很难预测整体的数据分布是什么样的,这个时候就引入了自助法。自助法是一种用小样本估计整体的算法,自助法通过有放回抽样生成大量的伪装样本,通过对伪装样本进行计算,获得统计分析,从而估计整体数据分布。具体过程如下:
对m个样本进行m次的有放回抽样,得到训练集,剩下的作为测试集。训练集与原始样本规模一样,但是数据分布有所改变,可能会出现部分数据重复。
说是回归问题评估指标,有些分类也是通用的。
标签与回归模型预测的偏差的绝对值的平均。
- 优点:直观地反映回归模型的预测值与实际值之间的偏差。准确地反映实际预测误差的大小。不会出现平均误差中误差符号不同而导致的正负相互抵消。
- 缺点:不能反映预测的无偏性(估算的偏差就是估计值的期望与真实值的差值。无偏就要求估计值的期望就是真实值)。
M A E = 1 m ∑ i = 1 m ∣ f ( x i ) − y i ∣ M A E=\frac{1}{m} \sum_{i=1}^m\left|f\left(x_i\right)-y_i\right| MAE=m1i=1∑m∣f(xi)−yi∣
从上面的
M
A
E
MAE
MAE的计算方式可以知道MAE并能反映出模型拟合的好坏,这个时候就需要用相对的观点来衡量误差,即我们常说的
M
A
P
E
MAPE
MAPE,他考虑了绝对误差相对真实的比例。
M
A
P
E
=
100
m
∑
i
=
1
m
∣
y
i
−
f
(
x
i
)
y
i
∣
M A P E=\frac{100}{m} \sum_{i=1}^m\left|\frac{y_i-f\left(x_i\right)}{y_i}\right|
MAPE=m100i=1∑m∣
∣yiyi−f(xi)∣
∣
均方误差虽然能够比较好的,但是他求的是绝对值,函数不光滑,有的时候可能没法求导,这个时候我们可以考虑将绝对值误差改为均方误差MSE,但他的缺点仍然跟绝对值误差一样,没法估计模型的无偏性。
M
S
E
=
1
m
∑
i
=
1
m
(
f
(
x
i
)
−
y
i
)
2
M S E=\frac{1}{m} \sum_{i=1}^m\left(f\left(x_i\right)-y_i\right)^2
MSE=m1i=1∑m(f(xi)−yi)2
简言之他就是在MSE的基础上加上了一个根号。
R
M
S
E
=
M
S
E
=
1
m
∑
i
=
1
m
(
f
(
x
i
)
−
y
i
)
2
R M S E=\sqrt{M S E}=\sqrt{\frac{1}{m} \sum_{i=1}^m\left(f\left(x_i\right)-y_i\right)^2}
RMSE=MSE
=m1i=1∑m(f(xi)−yi)2
决定系数 R 2 R^{2} R2与上面介绍的几个指标有所不同,他表示的是因变量y的变化中有多少是可以用自变量中的x来解释的。 R 2 R^{2} R2越接近于1,表示模型的性能越好,即大部分的因变量的变化都可以用自变量的变化来解释。
- 优点:用于定量描述回归模型的解释能力。
- 缺点:没有考虑特征数量变化的影响。无法比较特征数目不同的回归模型。
R
2
=
S
S
R
S
S
T
,
S
S
T
=
S
S
R
+
S
S
E
R^{2}=\frac{SSR}{SST},SST=SSR+SSE
R2=SSTSSR,SST=SSR+SSE
其中
SST
=
∑
i
m
(
y
i
−
y
)
2
,
S
S
R
=
∑
i
m
(
f
(
x
i
)
−
y
)
2
,
S
S
E
=
∑
i
m
(
f
(
x
i
)
−
y
i
)
2
\text { SST }=\sum_i^m\left(y_i-y\right)^2 \quad \operatorname,{SSR}=\sum_i^m\left(f\left(x_i\right)-y\right)^2 \quad \text ,{ SSE }=\sum_i^m\left(f\left(x_i\right)-y_i\right)^2
SST =i∑m(yi−y)2,SSR=i∑m(f(xi)−y)2,SSE=i∑m(f(xi)−yi)2
其中
SSR:Sum of Squares of the Regression,即预测数据与原始数据均值之差的平方和,反映的是模型相对原始数据均值的离散程度。
SST:Total Sum of Squares,即原始数据和均值之差的平方和,反映的是原始数据相对均值的离散程度。
SSE:Sum of Squares for Error,残差平方和,原始数据和预测数据之差的平方和。
从上面的
R
2
R^{2}
R2的公式可以得出,随着自变量的个数不断的增加,
R
2
R^{2}
R2也将会不断地增大。这不就带了一个问题吗,难道我紫瑶给出越来越多的自变量,我的模型性能就会编的越来越好吗,显然不是这样的。因此我们引入了校正决定系数,他可以消除样本数量和特征数量的影响。
R
−
2
adjusted
=
1
−
(
1
−
R
2
)
(
m
−
1
)
m
−
n
−
1
R_{-}^2 \text { adjusted }=1-\frac{\left(1-R^2\right)(m-1)}{m-n-1}
R−2 adjusted =1−m−n−1(1−R2)(m−1)
- 优点:在决定系数 R 2 R^{2} R2平方的基础上考虑了特征个数的影响。用于比较变量个数不同的模型。
上面介绍了6种回归模型中的评价指标,那么我们应该怎么用他们的,在哪些场景中会用到这些评价指标呢?简单总结一下。
- MAE和MAPE适合含有噪声的数据集预测,如保险金额赔付预测。
- MSE,RMSE,决定系数,校正决定系数,用于比较干净的数据集,如房价预测。因为这些评价方法都是基于误差的均值进行评估,均值对异常点比较 敏感,如果样本中有异常点出现,这些指标就会有较大的影响,也就是说他们的鲁棒性很差。
关于分类问题的评估指标我前面的一篇博文已经有过介绍,这里不在赘述。这里附个传送门:准确率,精准率,召回率,真正率,假正率,ROC/AUC。
在分类中也是一样,不同的指标适用不同的场景,如在地震预测中,人们更加关注的可能是召回率而降低对准确度的要求,宁可错杀一千也不能放过一个。而对于垃圾邮件这种的预测,人们往往更关注的是准确度而不是召回率。下面做一个简单的总结。
- 准确率:适用于正负样本差不多数量时。
- 查准率:强调准;适用于正负样本差异很大;不能用于抽样下的效果评估。
- 查全率:强调全;适用于正负样本差异很大;不受抽样的影响。
- ROC:对不平衡数据集不敏感
- AUC:对排序敏感,对预测分数不敏感
- PRC:在负样本远大于正样本数量的数据集里,PRC更能有效的衡量分类器的好坏。
分类任务中的样本均衡是什么,怎么解决样本不均衡问题?
通常在学术研究中我们假设样本都是均匀分布的,但是在实际情况是数据的分布并不均匀,对数样本的信息量比较大,少数样本的信息量比较少。所以当把我们的算法直接应用于这些数据时,大多是情况下得不到理想的效果,这时候就要岁数据进行均匀处理了。就是让正负样本在训练的时候拥有相同的权重,最常用的处理方法是数据采样和样本加权。下面我们介绍下这两个方法。
数据采样主要分为上采样和下采样。
上采样:
- 首先在少数类集合中随机选中一些少数类样本。
- 然后通过复制所选样本生成样本集合 。
- 将它们添加到少数类集合中来扩大原始数据集从而得到新的少数类集合。
上采样中也有一些样本合成技术,如SMOTE算法通过合成新样本完成采样。
下采样:
- 从多数类集合中筛选样本集E。
- 将这些样本从多数类集合中移除。
两种采样方法比较:
下采样的方法缺点显而易见,丢失了数据,使得模型只能学到总体模式的一部分。上采样中SMOTE算法为每个小样本合成相同数量的新样本,也会有一些潜在的问题。
- 一方面是增加了类之间重叠的可能性,即通过算法生成的小众样本并不一定是合理的小众样本。
- 另一方面是生成一些没有提供有益信息的样本。
总之,无论那种方法都要缺点,想要模型得到好的结果,最好的做法还是足够的数据集并且数据集分布均匀,平衡。
除了上面;两种方法外,还可以通过加权的方式来解决数据不平衡问题。即对不同类别分错的代价不同,对于小众样本,如果分错了会造成更大的损失。这种方法的难点在于设置合理的权重,实际应用中一般让各个分类间的加权损失值近似相等。针对具体问题还得具体分析,权重到底怎么设置并不容易。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。