其他分享
首页 > 其他分享> > 机器学习问答

机器学习问答

作者:互联网

文章目录

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)

补充几句:
但是现实中比较难做到这点,特别是当训练集是过去的数据,测试集是当下的数据,由于时间的因素,它们很可能不是完全同分布的,这就增加了预测难度。

这也是为什么一般交叉验证的误差往往小于实际的测试误差。因为交叉验证中每折数据都是来自训练集,它们肯定是同分布的。

如果训练集和测试集的分布风马牛不相及,那么根据训练集学习得到的模型在测试集上就几乎没有什么用了。所以我们训练模型和应用模型时一个重要的前提假设就是训练集和测试集是同分布的。

另外一个方面是牵涉到过拟合问题,即使训练集和测试集是同分布的,由于数据量的问题,训练集的分布可能无法完整体现真实分布,当我们过分去学习训练集分布的时候,我们反而会远离真实分布(以及测试集的分布),造成预测不准确,这就造成过拟合。
原文链接:http://www.sofasofa.io/forum_main_post.php?postid=1002963

为什么要服从相同分布?
首先,我们期望通过对训练集的学习得到泛化性能较好的模型,然而,现实过程中我们不可能得到真正意义上的泛化性能,因为那需要所有潜在的数据,然而这是不可能的。
其次,
来自统计学习方法第一章
联合概率分布通常我们是不可知的,如果知道,那么根据联合概率和条件概率的公式可以直接计算出条件概率分布P(y|X),那么我们也就没必要去训练模型了。所以我们是通过算法去尝试近似得到x到y的映射关系,为了方便统一用f(x)=y来表示。所以如果训练集来自于联合概率分布A,测试集来自于联合概率分布B,那么在A上训练出来的x到y的映射关系(即模型)大部分情况下很难能表述在联合概率分布B下x到y的映射关系
条件概率:
在这里插入图片描述
联合概率表示两个事件共同发生的概率。A与B的联合概率表示为 P(AB) 或者P(A,B)或者P(A∩B)。
链接:https://www.zhihu.com/question/264241478/answer/717873207

最终,这是一个假设,就是假设训练集和测试集的每一个样本都是从某一个分布独立抽样得到的。机器学习算法一般都要先做这个假设。迁移学习对这个假设做了推广,就是测试集和训练集可以不同分布,但是有某种关联。

2.为什么假设数据服从独立同分布

什么是独立同分布?
通常假设样本空间中全体样本服从一个未知的“分布”(distribution),我们获得的每个样本都是独立地从这个分布上采样获得的,即“独立同分布”(independent and identically distributed,简称 i.i.d.) ——《机器学习》 周志华
在概率统计理论中,指随机过程中,任何时刻的取值都为随机变量,如果这些随机变量服从同一分布,并且互相独立,那么这些随机变量是独立同分布。如果随机变量X1和X2独立,是指X1的取值不影响X2的取值,X2的取值也不影响X1的取值且随机变量X1和X2服从同一分布,这意味着X1和X2具有相同的分布形状和相同的分布参数,对离散随机变量具有相同的分布规律,对连续随机变量具有相同的概率密度函数,有着相同的分布函数,相同的期望、方差。如实验条件保持不变,一系列的抛硬币的正反面结果是独立同分布。

为什么要服从这个假设?
我们知道,机器学习就是利用当前获取到的信息(或数据)进行训练学习,用以对未来的数据进行预测、模拟。所以都是建立在历史数据之上,采用模型去拟合未来的数据。因此需要我们使用的历史数据具有总体的代表性。

为什么要有总体代表性?我们要从已有的数据(经验) 中总结出规律来对未知数据做决策,如果获取训练数据是不具有总体代表性的,就是特例的情况,那规律就会总结得不好或是错误,因为这些规律是由个例推算的,不具有推广的效果。

通过独立同分布的假设,就可以大大减小训练样本中个例的情形。
转自:https://blog.csdn.net/Laputa_ML/article/details/80114927

3.汉明距离和编辑距离

汉明:
在信息理论中,Hamming Distance 表示两个等长字符串在对应位置上不同字符的数目,我们以d(x, y)表示字符串x和y之间的汉明距离。从另外一个方面看,汉明距离度量了通过替换字符的方式将字符串x变成y所需要的最小的替换次数。

汉明距离是以理查德·卫斯里·汉明的名字命名的,汉明在误差检测与校正码的基础性论文中首次引入这个概念。在通信中累计定长二进制字中发生翻转的错误数据位,所以它也被称为信号距离。汉明重量分析在包括信息论、编码理论、密码学等领域都有应用。它是用来衡量2个二进制码字之间的相似程度的

# 举例说明以下字符串间的汉明距离为:
"karolin" and "kathrin" is 3.
"karolin" and "kerstin" is 3.
1011101 and 1001001 is 2.
2173896 and 2233796 is 3.

编辑距离:
编辑距离,又称Levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。例如,kitten与sitting之间的编辑距离为3。

应用: DNA分析、拼字检查、语音辨识、抄袭侦测。

区别:
汉明距离更多的是强调向量,即每一位的值都有相应的实际意义。而编辑距离强调更多的是一个字符串转化为另外一个的最快速度,没有考虑不同位的含义。

比如说,有两个对象A=”909”,B=”090”。A与B的汉明距离H(A, B) = 3,编辑距离ED(A, B) =2。

若附加对象A,B的描述为其空间位置信息,H(A, B) = 3表示在三个维度上均不相同;ED(A,B) = 2表示操作两个维度便可完全相同。显然在这种情况下用汉明距离比编辑距离更具有合理性。而在误差检测和校正码时,多数情况向量维度是相同的,并且每一位都对应着特定的描述信息,也即这些时候多数是用汉明距离。

若附加对象的A,B的描述文字信息(即拼字检查),显然用编辑距离表示更能反映A,B之间的相似程度。总之,在一些与序列相关但每一位又没有特定的含义的应用适合用编辑距离。
转自:https://blog.csdn.net/xiao1_1bing/article/details/88033170

4.数据平滑

数据平滑是为了解决0概率问题
https://www.jianshu.com/p/cdc0c6ff61b6
https://zhuanlan.zhihu.com/p/80834225

标签:机器,训练,数据,服从,距离,学习,分布,汉明,问答
来源: https://blog.csdn.net/qq_34405401/article/details/117437108