1. 为什么要TrAdaBoost
传统的机器学习,有一个假设: 训练集和测试集分布相同。而事实上,在许多情况下,这种单一分布假设不成立。如果来了一批新的数据(new data),分布与之前的训练的旧数据(old data)不一样,那么我们的算法的准确率就会下降很多。但是使用新数据,完全抛弃旧数据,有两个问题。第一,新数据可能量不够;第二,旧数据可能还有利用价值,完全抛弃太浪费。所以才有了迁移学习,从旧数据从提取信息,用于新的模型训练。
TrAdaBoost算法,是一种从old data中提取实例的方法,即将一部分能用的old labeled data,结合new labeled data(可能是少量),构建出比单纯使用new labeled data训练更精确的模型。
2. TrAdaBoost算法
以测试数据空间为基准,new data有一样数据分布空间,记为X_s,old data是不一样的分布空间,记为X_d。假设是二分类问题,labels是Y={0,1}。整个训练数据空间是所以我们就是要找到X->Y的映射函数c。
有n个数据来自X_d空间,有m个数据来自X_s空间。
整体算法如下:参考文献:
[1]W. Dai, Q. Yang, G. Xue, and Y. Yu, “Boosting for Transfer Learning,” Proc. 24th Int’l Conf. Machine Learning, pp. 193-200, June 2007.