我想计算两个样本集之间的相似性或距离
每组表示用户的游戏时间
例如,假设有两个用户,第一个用户(X1(播放五次,另一个用户播放四次,如下所示。
X1={1,2,3,1,2}
X2={1,2,3,4}
我想用python计算X1
和X2
之间的相似性或距离。我该如何计算?
注1。顺序并不重要
我的意思是,{1,2,3,4}和{4,1,2,3}应该被视为同一集合。
注2。元素(即1、2、3、4(不是固定的。我的意思是,比赛时间是一个连续的变量。
好吧,你可以使用Kolmogorov Smirnov 2样本测试,从https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.ks_2samp.html,此处描述
它应该适用于不同尺寸的样品。
在Python中,例如
import scipy.stats as st
x = np.random.normal(0,1,1000)
y = np.random.normal(0,1,1000)
z = np.random.normal(1.1,0.9,1000)
st.ks_2samp(x, y)
st.ks_2samp(x, z)
它返回D统计信息(以及p值(,这是两个样本的CDF之间的绝对最大距离(上确界(。这是你的距离。有关的详细信息,请参阅此处