今天在做數據分析的時候,發現了需要計算特徵之間的相似度,從而在相似度比較高的特徵之間保留一個就行。查了一下,發現可以通過皮爾遜相關係數和spearman相關係數來計算特徵之間的相似度,下面將介紹這兩個係數和區別。
皮爾遜相關係數
下面是皮爾遜相關係數的計算公式,只需要將(X和Y的協方差)/(X的標準差*Y的標準差)
可以化簡成
spearman相關係數
簡單的相關係數的分類
那麼對於這兩個係數,怎樣的值纔是好的呢,遵循下面的關係
- 0.8-1.0:極強相關
- 0.6-0.8:強相關
- 0.4-0.6:中等強度相關
- 0.2-0.4:弱相關
- 0.0-0.2:極弱或者無相關
區別
那麼有個問題,是所有的變量都可以用這兩個係數嗎,這兩個變量當然是有區別的,區別如下。
- 連續數據,正態分佈,線性關係,用pearson相關係數是最恰當,當然用spearman相關係數也可以,效率沒有pearson相關係數高。
- 上述任一條件不滿足,就用spearman相關係數,不能用pearson相關係數。
- 兩個定序測量數據(順序變量)之間也用spearman相關係數,不能用pearson相關係數。
代碼實現
import pandas as pd
data = loans_2007[["funded_amnt", "funded_amnt_inv"]]
#計算皮爾遜係數
print(data.corr())
#計算spearman係數
print(data.corr('spearman'))
這是結果,可以看出這兩個變量的相關性還是很高的
funded_amnt funded_amnt_inv
funded_amnt 1.000000 0.947525
funded_amnt_inv 0.947525 1.000000
funded_amnt funded_amnt_inv
funded_amnt 1.00000 0.92876
funded_amnt_inv 0.92876 1.00000