心法利器[49] | 数据分布的含义理解
心法利器
本栏目主要和大家一起讨论近期自己学习的心得和体会,与大家一起成长。具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有。
近期,我再次总结了我的历史文章,累积起来有50w字,百余篇文章了,有兴趣可以拿来看看,获取方式:七夕清流,百余篇累计50w字文章合集发布。
往期回顾
很多时候,我们都会去聊,数据分布的一致性,于是,数据分布成为一个类似“皇帝的新装”的名词,大家理解都比较模糊但是都在聊,那么,数据分布在我的理解是什么样的,这里来聊一下。
分布的理解
分布本身是一个非常统计学的概念,相信大家都学了概率论与数理统计,有听说过分布函数,其实这里的分布和这个很相似,用通俗的话说,模糊的说,其实就是说特定的各种情况在某个场景下的占比。
举个例子,同样一个query,“周杰伦”,相信在音乐软件内的搜索,占比会比较高,至少相比开放域的搜索,例如百度,占比会高很多,而与之相对,“python入门教程”之类的query,就几乎不会在音乐软件内出现,而在百度这种开放域搜索里其实还是会出现的,此时我们会说两个搜索内的query分布差异比较大。
数据分布一致性的要求
回到问题,很多时候我们都要求数据分布一致性,那么这个一致性是怎么要求的,为什么要这么要求,底层的机理是什么样的,这点继续聊。
测试集和现实情况分布的一致性
当我们要评估一个算法在现实情况下的效果,我们并不能用所有的数据都评估一次,更多的做法就是抽样,从小到大的数学中其实都有强调,抽样的一个核心要求是随机,因为我们要求评估的是现实情况的效果,那我们的评测集就应该和现实情况分布一致,只有这样,从评测集评估出来的准招,才能和现实的准招很接近。
训练集和测试集分布的一致性
很多刚入职的新手,尤其是实验落地比较少的新人,很容易直接从训练集分一部分出来作为测试集,然后评估算法的效果。这种在算法实验中用来评估算法学习能力的目标下,这个方案是完全合适的,但是在显示落地,这个方法却并不合适。
正确做法是,测试集应该服从于预期使用的场景,而训练集,则应该是为效果服务,即使是要拉上训练集和测试集之间的关系,也应该是训练集迁就测试集,而不是与之相反,这个才是正确的逻辑关系。
小结
这篇文章不是很长,主要是相对这个基础的概念进行一个澄清,这个澄清能让大家在数据集构造的过程能有一个明确的把握。
当然,这篇文章只是一个铺垫,后面一篇文章会给大家全面讲一下训练集和测试集构造的思考。