交叉验证(cross validation)作为一种评价算法性能的方法在实际中得到广泛的应用. 在统计机器学习中, 无论是进行模型选择, 还是算法性能对比交叉验证都体现特有的价值. 当前交叉验证有多种形式, 文献[1]的综述中提到的标准
结合几个学习器的结果产生一个聚合结果的集成学习算法, 不仅可以减少分类器的方差也能够提高模型的分类准确性和鲁棒性. 目前有很多成功的集成学习方法能够提高模型的泛化能, 如linear ensemble[5], weighted average ensemble learning[6], collaborativefiltering ensemble[7], multi-label ensemble learning[8], neural network ensemble[9]等, 这些方法从不同的角度构建多个基学习器来提高系统的泛化能力, 这些集成学习有些涉及交叉验证的方法, linear ensemble[5]中数据集被分成3个子集, 测试集由每个用户的最后6个评级组成, 验证集由每个用户的测试集之前的4个评级组成, 训练集由剩下的每个用户的评级组成. Multi-label ensemble learning[8]在使用RBF (径向基函数神经网络)模型时, 在两个原型向量之间选择交叉点进行交叉操作. Neural network ensemble[9]研究将模糊性和交叉验证相结合能够得到可靠的集成泛化误差估计, 以及这种类型的集成交叉验证有时可以改进模型的性能.
虽然目前关于集成学习的泛化性能的研究取得了很大成功, 但是关于集成学习的多样性理解, 关于集成学习方法的损失函数以及误差分析还需要进一步研究, 而交叉验证作为一种评价算法性能的优良方法如果能够被充分应用到集成学习中, 可以得到更好的集成学习方法. 考虑组块3×2交叉验证[4]和正则化交叉验证[2]具有稳定的泛化性能,
集成学习的基本思想是通过一个回归器(分类器)来融合多个回归(分类)模型. 在分类问题中, 采用对不同模型输出值进行投票选择分类结果. 在回归问题中, 可以对输出的结果进行加权平均得到最后输出值. 一般集成学习具有比个体学习器更好的泛化性能. 文献[11]提出一组分类器经过集成可以得到比其中性能最优的个体学习器更加准确的预测. 文献[12]理论证明弱学习器可以提升为强学习器, 该理论为通过集成学习得到强学习器指明前进的方向. 图1给出一个常用的集成学习框架. 集成学习代表性的算法有bagging[13], boosting[14]和ECOC (error-correcting output codes)[15].
集成学习算法[16]一般可以分两个阶段进行: (1)生成或者训练一组学习器; (2)对分类(回归)结果进行合并. 在训练一组学习器时, 要构建具有充分多样性的学习器达到较好的聚合效果有很多方法, 一种常见的方法是对训练样例进行随机子抽样进行训练, 另外采用交叉验证方法, 将一部分数据作为训练集, 一部分作为验证集也是一种有效方法. 当前好用的交叉验证方法有很多, 本文考虑应用
2 基于交叉验证的集成学习
基于组块3×2交叉验证和
(1)应用组块3×2交叉验证和
(2)在保证误差越大权重越小的前提下, 分析预测误差得到不同的权重.
(3)用计算得到的权重分别去乘对应学习器的预测值, 也就是得到经过集成学习的新的预测.
(4)计算集成学习的新预测的误差、偏差平方和以及方差.
2.1设容量为
$ {\hat y_{ij}} = \frac{1}{t}\sum\limits_{v = 1}^t {pred_v^{(i)}({x_j})} , \; v = 1, 2, \cdots , t $ | (1) |
其中,
组块3×2交叉验证[4]将数据集均衡地分成四份, 每一份所包含的样本数大致相同, 并且每一类别在每份数据集中的个数也基本相同, 然后将4份中的任意两份两两结合, 将互为补集的两个组合看为对数据集中的一次切分, 得到3组切分数据集, 每两组训练集重叠的样本个数和测试集重叠的样本个数相同, 具体是把数据集
$ {\hat y_{ij}} = \frac{1}{3}\sum\limits_{q = 1}^3 {pred_q^{(i)}({x_j})} , q = 1, 2, 3 $ | (2) |
其中,
在回归任务中, 损失函数
$ {\overline L_i} = \frac{1}{n}\sum\limits_{j = 1}^n {L({f_i}({x_j}), {y_j})} = \frac{1}{n}\sum\limits_{j = 1}^n {\left| {{f_i}({x_j}) - {y_j}} \right|} $ | (3) |
在应用交叉验证训练单个学习器后, 对单个学习器预测的处理分析是集成学习算法重要部分. 用
式(4)中
$\left\{ { \begin{split} &{L}_{{{Z}}}={\displaystyle \sum _{i=1}^{M}{\overline{L}}_{i}=\frac{1}{n}}{\displaystyle \sum _{i=1}^{M}{\displaystyle \sum _{j=1}^{n}\left|{f}_{i}({x}_{j})-{y}_{j}\right|}}, \; i=1, 2, \cdots , M\\ &N{L}_{i}=\frac{{L}_{Z}}{{\overline{L}}_{i}}, \; i=1, 2, \cdots , M\\ &{w}_{i}=\frac{N{L}_{i}}{{\displaystyle \sum _{i=1}^{M}N{L}_{i}}}\text{, }i=1, 2, \cdots , M\end{split} } \right.$ | (4) |
集成学习之后每个样本点的新的预测为每个样本点的预测结果与相应的权重的乘积之和, 集成学习的每个样本点的预测可以表示为:
$ e{\hat y_j} = \sum\limits_{i = 1}^M {{{\hat y}_{ij}}} {w_i}, \; i = 1, 2, \cdots , M $ | (5) |
集成学习的平均绝对值损失为:
$ {L_e} = \frac{1}{n}\sum\limits_{j = 1}^n {\left| {e{{\hat y}_j} - {y_j}} \right|} $ | (6) |
假设有3个基学习器, 图2给出具体的集成学习算法分析图.
3 集成学习的误差分解
集成学习有两种经典的误差分解方法, 一种是误差-分歧分解[9], 另一种是偏差-方差分解[17], 一般把每个学习器的泛化误差分解成噪声、偏差和方差的和. 考虑到固有噪声是模型在当前任务上产生的较难估计的一项, 文献[17]泛化误差被分解为偏差项(表示学习器误差期望)和方差项(反映模型对训练数据变化的稳定性).
用
$ \begin{split} err(A) &= { E}[{(A - f)^2}] \\ & = { E}[{(A - E[A] + E[A] - f)^2}] \\ & = {(E[A] - f)^2} + { E}[{(A - E[A])^2}] \\ & = bias(A{{\text{)}}^2} + {var} (A) \end{split} $ | (7) |
在包含
$\left\{ { \begin{split} &\overline {{{bias}}} (A) = \frac{1}{M}\sum\limits_{i = 1}^M {(E[{A_i}] - f)} \\ &\overline {{{var}}} (A) = \frac{1}{M}\sum\limits_{i = 1}^M {E({A_i} - E[{A_i}} ]{)^2}\\ &\overline{ { covariance }}(A)=\\ &\dfrac{1}{M(M-1)} \displaystyle\sum_{i=1}^{M} \displaystyle\sum_{\substack{j=1 \\ j \neq i}}^{M} E\left(A_{i}-E\left[A_{i}\right]\right) E\left(A_{j}-E\left[A_{j}\right]\right) \end{split} } \right.$ | (8) |
集成以后的平方误差
$ \begin{split} err(A) =& \overline {bias} {(A)^2} + \frac{1}{M}\overline {{var} } (A) \\ & + \left(1 - \frac{1}{M}\right)\overline {{{covariance}}} (A) \end{split} $ | (9) |
集成学习的平方误差和协方差项有很大关系, 协方差越小, 说明集成学习效果越好. 但是考虑不同的学习器在相同数据集上得到的误差不同, 也就是不同学习器的性能不同, 因此结合不同学习器的预测误差对不同的学习器赋予不同的权重也是一种集成学习的方法. 用
$ bias(A) = \left(\sum\limits_{i = 1}^M {{w_i}E[{A_i}]} \right) - f $ | (10) |
$ {var} (A) = E{\left(\sum\limits_{i = 1}^M {{w_i}} {A_i} - E\left[\sum\limits_{i = 1}^M {{w_i}} {A_i}\right]\right)^2} $ | (11) |
基于交叉验证的集成学习的平方误差
$ \begin{split} err(A) =& { E}\left[{\left(\sum\limits_{i = 1}^M {{w_i}{A_i}} - f\right)^2}\right] \\ = &{ E}\left[{\left(\sum\limits_{i = 1}^M {{w_i}{A_i}} - E\left[\sum\limits_{i = 1}^M {{w_i}{A_i}} \right] + E\left[\sum\limits_{i = 1}^M {{w_i}{A_i}} \right] - f\right)^2}\right] \\ = &{\left(E\left[\sum\limits_{i = 1}^M {{w_i}{A_i}} \right] - f\right)^2} + { E}\left[{\left(\sum\limits_{i = 1}^M {{w_i}{A_i}} - E\left[\sum\limits_{i = 1}^M {{w_i}{A_i}} \right]\right)^2}\right] \\ & + E\left[2\left(E\left[\sum\limits_{i = 1}^M {{w_i}{A_i}} \right] - f\right)\left(\sum\limits_{i = 1}^M {{w_i}{A_i}} - E\left[\sum\limits_{i = 1}^M {{w_i}{A_i}} \right]\right)\right] \\ = &{\left(E\left[\sum\limits_{i = 1}^M {{w_i}{A_i}} \right] - f\right)^2} + { E}\left[{\left(\sum\limits_{i = 1}^M {{w_i}{A_i}} - E\left[\sum\limits_{i = 1}^M {{w_i}{A_i}} \right]\right)^2}\right] \\ = & bias(A{{\text{)}}^2} + {var} (A) \end{split} $ | (12) |
考虑到基于交叉验证的集成学习的预测误差在一般情况下会比单个学习器的预测要小. 为了更进一步分析基于交叉验证的集成学习的误差, 下面先在模拟数据集上进行模拟实验进行验证, 再在真实数据集wine quality-white上进行验证.
4.1 模拟数据的实验本文针对回归问题进行分析,
(1)广义线性回归模型
广义线性回归是一种经典的线性模型, 在给定输入的情形下, 它可以学得一个模型预测输出, 使得预测准确率尽可能高, 误差尽可能小. 在本文的模拟实验中, 指数分布族取的是高斯分布
(2)支持向量机回归
假设输出模型
(3)随机森林回归
随机森林一般采用bootstrap sampling方法进行抽样, 对抽取的每个样本子集建树, 随后输出每棵树的预测结果. 对于回归问题, 一般通过简单平均法对每棵树的结果求均值作为最终的预测结果, 本文实验中随机森林参数设置
由图3可以看到在组块3×2交叉验证的情形下, 随着样本个数的变化, 随机森林, 广义线性模型, 支持向量机3个模型与集成学习相比, 集成学习的预测误差的均值比其他3个模型的均值都小. 由图4可以看到基于
表1是具体的不同学习器的预测误差的数值, 具体可以看到随着样本个数的变化在应用组块3×2交叉验证和
表2和表3为不同模型的偏差平方
图5可以发现集成学习的泛化误差随着样本量的增大在逐渐减少, 并且基于组块3×2交叉验证的集成学习的泛化误差比基于
4.2 真实数据的实验
在真实数据集wine quality-white上基于组块3×2交叉验证进行实验, 在相同情形下重复实验r次, r=1, 2, …,100, 图6和图7表示不同模型下的预测误差图, 从图7可以看到广义线性回归模型的大部分数据的预测误差处于0.57到0.60之间, 支持向量机回归的大部分数据的预测误差处于0.51到0.55之间, 随机森林做回归任务的大部分数据的预测误差处于0.50到0.54之间, 而集成学习的大部分数据的预测误差处于0.516到0.519之间. 因此随机森林, 广义线性模型, 支持向量机3个模型与集成学习相比, 从图6可以明显看出基于组块
在真实数据集wine quality-white上基于
5 结论
本文分析基于交叉验证的集成学习方法, 重点分析基于组块3×2交叉验证和基于
[1] |
Arlot S, Celisse A. A survey of cross-validation procedures for model selection. Statistic Survey, 2010, 4: 40-79. DOI:10.1214/09-SS054 |
[2] |
王瑞波, 王钰, 李济洪. 面向文本数据的正则化交叉验证方法. 中文信息学报, 2019, 33(5): 54-65. DOI:10.3969/j.issn.1003-0077.2019.05.007 |
[3] |
Alpaydm E. Combined 5×2 CV F test for comparing supervised classification learning algorithms. Neural Computation, 1999, 11(8): 1885-1892. DOI:10.1162/089976699300016007 |
[4] |
Wang Y, Wang RB, Jia HC, et al. Blocked 3×2 cross-validated t-test for comparing supervised classification learning algorithms. Neural Computation, 2014, 26(1): 208–235.
|
[5] |
Chen PL, Tsai CT, Chen YN, et al. A linear ensemble of individual and blended models for music rating prediction. Proceedings of the 2011 International Conference on KDD Cup 2011. San Diego: JMLR.org, 2012. 21–60.
|
[6] |
DeSole T, Trenary L, Tippet MK. The weighted-average lagged ensemble. Journal of Advances in Modeling Earth Systems, 2017, 9(7): 2739-2752. DOI:10.1002/2017MS001128 |
[7] |
Jahrer Ml, Töscher A. Collaborative filtering ensemble. Proceedings of the 2011 International Conference on KDD Cup 2011. San Diego: JMLR.org, 2012. 61–74.
|
[8] |
Shi C, Kong XN, Yu PS, et al. Multi-label ensemble learning. Machine Learning and Knowledge Discovery in Databases, Part III. Berlin: Springer, 2011. 223–239.
|
[9] |
Krogh A, Vedelsby J. Neural network ensembles, cross validation and active learning. Proceedings of the 7th International Conference on Neural Information Processing Systems. Denver: MIT Press, 1994. 231–238.
|
[10] |
Rodriguez JD, Perez A, Lozano JA. Sensitivity analysis of k-fold cross validation in prediction error estimation
. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2010, 32(3): 569-575. DOI:10.1109/TPAMI.2009.187 |
[11] |
Ueda N, Nakano R. Generalization error of ensemble estimators. Proceedings of International Conference on Neural Networks. Washington, DC: IEEE, 1996. 90–95.
|
[12] |
Schapire RE. The strength of weak learnability. Machine Learning, 1990, 5(2): 197-227. |
[13] |
Breiman L. Bagging predictors. Machine Learning, 1996, 24(2): 123-140. |
[14] |
Drucker H, Schapire R, Simard P. Boosting performance in neural networks. International Journal of Pattern Recognition and Artificial Intelligence, 1993, 7(4): 704-719. |
[15] |
Tumer K, Ghosh J. Error correlation and error reduction in ensemble classifiers. Connection Science, 1996, 8(3–4): 385–404.
|
[16] |
Pennock DM, Maynard-Reid P, Giles CL, et al. A normative examination of ensemble learning algorithms. Proceedings of the 17th International Conference on Machine Learning. San Francisco: Morgan Kaufmann Publishers Inc., 2000. 735–742.
|
[17] |
Geman S, Bienenstock E, Doursat R. Neural networks and the bias/variance dilemma. Neural Computation, 1992, 4(1): 1-58. DOI:10.1162/neco.1992.4.1.1 |
[18] |
周志华. 机器学习. 北京: 清华大学出版社, 2016, 133-136. |