如果你的觀點是獨立的,你可以單獨檢查每個維度的分佈。 Kalmagorov-Smirnov測試(測量2個分佈之間的距離)是一個很好的測試。首先讓我們生成並繪製一些高斯分佈的點,以便您可以看到如何使用KS測試(統計)來檢測非均勻分佈。
>>> import numpy as np
>>> from matplotlib.pyplot import plt
>>> X = np.random.gauss(1000, 2) # 1000 2-D points, normally distributed
>>> from sklearn.preprocessing import MinMaxScaler
>>> scaler = MinMaxScaler()
>>> X = scaler.fit_transform(X) # fit to default uniform dist range 0-1
>>> X
array([[ 0.46169481, 0.7444449 ],
[ 0.49408692, 0.5809512 ],
...,
[ 0.60877526, 0.59758908]])
>>> plt.scatter(*list(X))
>>> from scipy import stats
>>> from sklearn.preprocessing import StandardScaler, MinMaxScaler
>>> stats.kstest(MinMaxScaler().fit_transform(X[:,0]), 'uniform')
KstestResult(statistic=0.24738043186386116, pvalue=0.0)
低p值和高KS-統計量(從均勻分佈的距離)說幾乎肯定沒有來自0和1
>>> stats.kstest(StandardScaler().fit_transform(X[:,0]), 'norm')
KstestResult(statistic=0.028970945967462303, pvalue=0.36613946547024456)
之間的均勻分佈
但他們可能確實來自於均值爲0和標準差爲1的正態分佈,因爲p值高和KS距離低。
然後,你只需重複第二維(Y)的KS-測試
嗨! Stackoverflow是真正的編程問答,你可能有更好的機會[數學stackexchange](http://math.stackexchange.com/)或者[stats](http://stats.stackexchange.com/) – jrdn
投票關閉,因爲它已被[交叉驗證](http://stats.stackexchange.com/questions/40928/measure-the-uniformity-of-distribution-of-points-in-a-2d-square)詢問。 –