如何使用python计算两个不同长度的连续随机样本之间的距离(相似度)?
How to calculate distance (similarity) between two continuous random samples with different length using python?
我想计算两个样本集之间的相似度或距离。
每组表示用户玩游戏的次数。
例如,假设有两个用户,第一个用户(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)不固定。我的意思是,播放时间是一个连续变量。
好吧,您可以使用来自 https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.ks_2samp.html, described here
的 Kolmogorov-Smirnov 2 样本测试
它应该适用于不同大小的样本。
在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)
它 returns D 统计量(以及 p 值),它是两个样本的 CDF 之间的绝对最大距离(上确界)。这是你的距离。详情见here
我想计算两个样本集之间的相似度或距离。
每组表示用户玩游戏的次数。
例如,假设有两个用户,第一个用户(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)不固定。我的意思是,播放时间是一个连续变量。
好吧,您可以使用来自 https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.ks_2samp.html, described here
的 Kolmogorov-Smirnov 2 样本测试它应该适用于不同大小的样本。
在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)
它 returns D 统计量(以及 p 值),它是两个样本的 CDF 之间的绝对最大距离(上确界)。这是你的距离。详情见here