我有一個表(X,Y),其中X是矩陣,Y是類的向量。這里是一個例子:X = 0 0 1 0 1 and Y = 1 0 1 0 0 0 1 1 1 1 0 1 0我想使用Mann-Whitney U檢驗來計算特征重要性(特征選擇)from scipy.stats import mannwhitneyuresults = np.zeros((X.shape[1],2))for i in xrange(X.shape[1]): u, prob = mannwhitneyu(X[:,i], Y) results[i,:] = u, pro我不確定這是正確的還是否?我為大型表u = 990和某些列獲取了較大的值。
1 回答

小怪獸愛吃肉
TA貢獻1852條經驗 獲得超1個贊
我認為使用Mann-Whitney U檢驗不是進行特征選擇的好方法。曼恩·惠特尼(Mann-Whitney)測試了兩個變量的分布是否相同,它并沒有告訴您變量之間的相關性。例如:
>>> from scipy.stats import mannwhitneyu
>>> a = np.arange(100)
>>> b = np.arange(100)
>>> np.random.shuffle(b)
>>> np.corrcoef(a,b)
array([[ 1. , -0.07155116],
[-0.07155116, 1. ]])
>>> mannwhitneyu(a, b)
(5000.0, 0.49951259627554112) # result for almost not correlated
>>> mannwhitneyu(a, a)
(5000.0, 0.49951259627554112) # result for perfectly correlated
因為a和b具有相同的分布,所以我們無法拒絕零分布的假設,即該分布是相同的。
并且由于在特征選擇中您嘗試查找主要解釋的特征Y,因此Mann-Whitney U不能為您提供幫助。
添加回答
舉報
0/150
提交
取消