机器学习中检验样本抽样的均匀——KL散度检验和K-S检验

来源:互联网 发布:王俊凯人品知乎 编辑:程序博客网 时间:2024/06/05 08:38

最近做的一个项目中,需要对原来的数据进行一定量的采样形成训练集,因此需要保证采样的均匀性以保证样本参数的同分布性。

样本数据是这样的:

ID.wavDate

可以看到,样本数据只有日期参数可以使用,所以我采用对抽样后的样本跟总体的日期参数进行分布检验的方法。


因为日期的分布不具有分布假设,所以需要用非参数检验方法,直接比较两个分布的差异,我找到两种方法:

1.机器学习中常用的KL散度方法

2.社会统计学中常用的K-S检验方法


简单介绍一下这两种方法:

KL散度

在总体分布P的每一个值上进行加权,对于P很大的时候Q也要很大,P很小时Q的大小没关系,以保证Q是P的局部样本

KL(P||Q) = \sum_i P(i) \log \left(P(i) \over Q(i)\right)

直观来说,这是对随机变量的每个取值上,\log(P(i)/Q(i))这个值的加权平均。这里加权的权值是P(i) (其实就是算了个期望)。

P(i)大的地方,想让KL散度小,我们需要让Q(i)的值尽量也大;而当P(i)本身小的时候,Q(i)对整个KL的影响却没有那么大(因为log项本身因为分子就很小,再加上乘以了很小的P(i))。直观来说就是,在P的概率密度大的地方,它应该尽量和Q概率密度大的区域保持一致以保证KL散度小,而在P概率密度很小的地方,P和Q的差别对KL的影响很小。



作者:齐鹏
链接:https://www.zhihu.com/question/28181173/answer/39788444
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


K-S检验:
K-S检验直接提取两个分布中差异最大的地方的绝对值作为统计量D,进行假设检验



有很多资料描述了这两种检验方法的不同:

The KL-divergence is typically used in information-theoretic settings, or even Bayesian settings, to measure the information change between distributions before and after applying some inference, for example. It's not a distance in the typical (metric) sense, because of lack of symmetry and triangle inequality, and so it's used in places where the directionality is meaningful. 
The KS-distance is typically used in the context of a non-parametric test. In fact, I've rarely seen it used as a generic "distance between distributions", where the 1 distance, the Jensen-Shannon distance, and other distances are more common.

http://www.softlockup.com/2011/06/difference-between-kullbackleibler-kl.html


https://stats.stackexchange.com/questions/9311/kullback-leibler-vs-kolmogorov-smirnov-distance


但是,最后我使用了K-S检验。

理由:

1.我需要对样本的分布进行自动的假设检验,对于检验不符合同分布假设的,需要马上拒绝本次采样并令程序重新采样。

假设总体分布是P,采样分布是Q,那么我为了保证Q跟P的同分布性,不但要计算KL(P||Q)以保证Q是P的一个子类,还要防止P在值很小的时候,Q的变化很大导致分布不同,一般来说这种情况会计算一次反向的KL(Q||P)。并在两个KL散度都很小的时候认为是同分布。

可以看出,用KL散度需要计算2个参数并设定其阈值,而K-S检验因为其具有距离性,只需要设定一个阈值即可直接查表给出置信度,减少了因为阈值设定出错而导致的风险


2.对于每一个特征维度,KL检验需要进行两次计算,而且在特征维度多的时候,计算量比较大

3.还有一个原因是从一篇论文里看到的:

不需要对数据分组,减少了划分区间的麻烦,这样就不必因区间划分而舍弃部分样本数据,可以提高检 验的质量.
另外,K-S 检验能够处理任意长度的样本群体,对大样本群体的适应能力要好于 S-W 检验,这个特点非常适合在线社会化媒体大数据抽样检验的需要,
因此,K-S 检验已经成为在线社会化媒体抽样研究中最主流的检验方法. 

社会化媒体大数据多阶段整群抽样方法

http://www.jos.org.cn/ch/reader/create_pdf.aspx?file_no=4566
实际上,这篇论文里也采用了KL散度作为父子集关系的划分判据的,但是又用了K-S散度进行采样的质量进行检验,这充分地体现了KL散度宜作为父子集关系强弱的衡量,而K-S检验适合用于进行general的分布相似性判断,在有些场合这两个目标是相同的,此时可以混用,但是在具体我已经知道了总体时间和样本时间的父子关系后,需要保证不断正确地采样的时候,我觉得应该用K-S检验。


当然,KS检验过于简单的衡量方法容易受离群点影响等问题,但是我的日期数据中都是系统自动记录并经过筛选的,没有特别大或者小的离群点,所以可以放心地采用

非统计专业,只是凭借网上的资料和自己的思考写作,如果错误恳请指正



参考资料:

对基因组内不同序列分布差异进行量化的探讨


http://xueshu.baidu.com/s?wd=paperuri:(9ed5fa155525160271771667f692a125)&filter=sc_long_sign&sc_ks_para=q%3D%E5%AF%B9%E5%9F%BA%E5%9B%A0%E7%BB%84%E5%86%85%E4%B8%8D%E5%90%8C%E5%BA%8F%E5%88%97%E5%88%86%E5%B8%83%E5%B7%AE%E5%BC%82%E8%BF%9B%E8%A1%8C%E9%87%8F%E5%8C%96%E7%9A%84%E6%8E%A2%E8%AE%A8&tn=SE_baiduxueshu_c1gjeupa&ie=utf-8&sc_us=10756207384351755681


阅读全文
0 0