1.为什么机器学习的训练数据和测试数据要服从相同分布?
通俗理解:
机器学习就是利用当前获取到的信息(或数据)进行训练学习,用以对未来的数据进行预测、模拟。所以都是建立在历史数据之上,采用模型去拟合未来的数据。因此需要我们使用的历史数据具有总体的代表性,所以历史数据(训练数据)和测试数据要服从相同分布。
原文链接:https://blog.csdn.net/Metal1/article/details/90813359
学术回答:
这里的分布指的是什么?
对于supervised learning,分布是指关于特征X和结果Y的联合分布F(X,Y)或者条件 F(Y|X)。我们说训练集和测试集服从同分布的意思是训练集和测试集都是由服从同一个分布的随机样本组成的,也就是
(X_train,Y_train),(X_test,Y_test) i.i.d. ∼F(X,Y)
对于unsupervised learning,分布是指特征X的分布F(X),也就是
(X_train,X_test) i.i.d. ∼F(X)
补充几句:
但是现实中比较难做到这点,特别是当训练集是过去的数据,测试集是当下的数据,由于时间的因素,它们很可能不是完全同分布的,这就增加了预测难度。
这也是为什么一般交叉验证的误差往往小于实际的测试误差。因为交叉验证中每折数据都是来自训练集,它们肯定是同分布的。
如果训练集和测试集的分布风马牛不相及,那么根据训练集学习得到的模型在测试集上就几乎没有什么用了。所以我们训练模型和应用模型时一个重要的前提假设就是训练集和测试集是同分布的。
另外一个方面是牵涉到过拟合问题,即使训