1. 程式人生 > >特征相似性度量

特征相似性度量

多個 ash The 就是 learn 拒絕 方法 ID time

在進行特征選擇的時候我們要衡量特征和我們的目標之間的相似性,有很多的方法可以衡量,下面介紹一些使用filter特征選擇方法的時候能夠使用的方法。filter特征選擇方法是:特征選擇的過程和模型的訓練過程沒有直接關系,使用特征本身的信息來進行特征選擇。

參考這篇文章給出下圖所示的特征度量方法:

技術分享圖片

1:相關系數(皮爾遜系數)

對於兩個變量$\mathbf{x}$ 和$\mathbf{y}$ 相關系數是這樣定義的:

$\rho(\mathbf{x},\mathbf{y}) = \frac{ cov(\mathbf{x},\mathbf{y}) } { \sqrt{D(\mathbf{x})D(\mathbf{y})} }$

其中$cov(\mathbf{x},\mathbf{y}) $是 $\mathbf{x}$ 和$\mathbf{y}$的協方差,$D(\mathbf{x})D(\mathbf{y})$是$\mathbf{x}$ 和$\mathbf{y}$的方差。

當我們用采集到的數據來進行計算的時候,計算公式如下:

$\rho(\mathbf{x}, \mathbf{y}) = \frac{ \sum \limits_{i=1}^n [(x_i – \bar x) (y_i – \bar y)] }{\sqrt{ \sum \limits_{i=1}^n {(x_i – \bar x)}^2 \sum \limits_{i=1}^n {(y_i – \bar y)}^2 }}$

相關系數的取值在-1和1之間。相關系數為1的時候表明兩個變量是線性相關的,而取0的時候表示的是不相關的。當兩個變量都是連續的數值類型的時候,可以使用相關系數來進行度量。

關於相關系數的另一個解釋是這樣的:相關系數是去中心化以後數據的余弦值。中心化是數據減去他們的平均值以後得到的數據。

2:Anova(方差分析)

Anova是方差分析(analysis of variance)的意思。 方差分析出現的背景是這樣的:在實際的生產生活當中,一個結果會受到多個因素的影響,比如小麥產量受到光照、土壤的酸堿程度、溫度等因素影響,化工生產當中產品受到原料成分、原料劑量、催化劑、反應溫度、壓力、溶液濃度、反應時間、機器設備的影響。如何能夠判別哪種因素是對我們的結果影響最大的,這個時候就使用方差分析。我們把要考察的指標叫做試驗指標

,影響試驗指標的條件叫做因素

單變量的方差分析是只研究一個變量對於結果的影響。讓這個變量取不同的值,得到不同值下的幾組數據。比如要研究機器對於鋁合金薄板厚度是否有影響,那麽需要獲得在不用的機器上面取得的薄板厚度的一組值。

把這個問題轉換為一個檢驗假設問題:在各組數據符合正態分布,而且正態分布的方差都相同的條件下,看各組數據的均值是否相同。如果結果在可接受的範圍內相同,那麽則說明這一因素對於試驗指標沒有太大的影響。如果不相同,那麽說明這一因素對於試驗指標影響很大。

具體的計算過程當中是要求出這麽幾個值,最後可以列出一張單因素試驗方差分析表。

方差來源 平方和 自由度 均方 F比
因素A $S_A$ s-1 $\bar{S_A} = \frac{S_A}{s-1}$ $F=\frac{\bar{S_A}}{\bar{S_E}}$
誤差 $S_E$ n-s $\bar{S_E} = \frac{S_E}{n-s}$
總和 $S_T$ n-1

其中:$S_A$叫做因素A的效應平方和,反應的是在因素A的不同水平下,樣本均值和總體數據均值差異的平方和。

$S_E$叫做誤差平方和,反應是在因素A的各個取值下,每組觀察數據與這組數據均值的平方誤差之和,反應的是隨機誤差的大小。

n是總體樣本個數,s表示因素A可以取s種情況。

統計量$F=\frac{S_A /(n-1)}{S_E/(n-s)}$ 叫做Anova F統計量,由它確定的檢驗也佳作Anova F檢驗。

下面給出一個典型的例子:

使用三臺機器產生的鋁合金薄板,看機器是否對薄板的厚度有顯著的影響,數據集如下

機器1 機器2 機器3

0.236 0.257 0.258
0.238 0.253 0.261
0.248 0.255 0.259
0.245 0.254 0.267
0.243 0.261 0.262

根據一定的計算方法(具體的計算方法可以參考《概率論與數理統計》這本書),得到的方差分析表如下:

方差來源 平方和 自由度 均方 F比

因素

誤差

0.00105333

0.000192

2

12

0.00052667

0.000016

32.92

總和 0.00124533 14

在顯著性水平$\alpha = 0.05$的情況下,$F_{0.05}(2,12) = 3.89 < 32.92$,拒絕假設。所以認為各臺機器生產的薄板厚度有顯著的差異。

sklearn的feature_selection中的SelectKBest 結合 f_classif可以實現Anova的F值來選擇特征。

$\chi^2$檢驗(Chi-Square 卡方檢驗)

$\chi^2$檢測先假設特征和目標變量沒有關系,然後利用公式

$\chi ^2 = \sum \frac{(A – T)^2}{T}$來計算$\chi ^2$的值,其中A為實際值,T為理論值,是根據我們的假設推出來的。

來看這麽一個例子:

在給出下列數據的情況下,是否認為不同性別的人對貓和狗有偏愛。

207 282
231 242

首先,我們將各行各列相加得出一些數據:

207 282 489
231 242 473
438 524 962

然後我們算出理論值:即認為在性別對寵物偏愛沒有影響的情況下,只和統計值有關的情況下,數據的理論值。

貓的占比為 $\frac{438}{962}$,狗的占比為$\frac{524}{962}$,所以理論上:

男人喜歡貓的人數應該為 $489 \times \frac{438}{962} = 222.64$

男人喜歡狗的人數應該為 $489 \times \frac{524}{962} = 266.36$

女人喜歡貓的人數應該為$473 \times \frac{438}{962} = 215.36$

女人喜歡狗的人數應該為$473 \times \frac{524}{962} = 257.64$

數據如下圖所示:

222.64 266.36
215.36 257.64

最後根據我們上面給出的公式來計算$\chi ^2$值:

$\chi ^2 = \frac{(207-222.64)^2}{222.64} + \frac{(282-266.36)^2}{266.36} + \frac{(231-215.36)^2}{215.36}+ \frac{(242-257.64)^2}{257.64} = 4.102$

在知道自由度的情況下,我們可以將$\chi ^2$的值轉換為p值,在這個問題當中自由度為1,計算出p=0.04283。p的值小於0.05(0.05是一個經典的顯著性值),所以拒絕假設的依據很強,即認為不同性別的人對於寵物偏愛是不同的,即這兩個變量不獨立。

sklearn.feature_selection中的SelectKBest結合chi2可以使用$\chi^2$檢測來進行特征的選擇。

關於假設檢驗的說明:

我們上面介紹的Anova和$\chi^2$檢驗,都是從檢驗問題引出來的,檢驗問題就是說,我們給定一個假設,那麽我們觀察到一定的樣本後,我們是否相信這個假設,或者我們有多大的可能性來相信這個假設。假設問題可以轉化為p-value問題,也就是把我們的假設問題轉化為一個概率值來進行衡量。

在$\chi ^2$檢測當中,我們假設我們的特征和目標變量沒關系,所以得到的p值說明,在特征和目標變量沒有關系的時候,我們能夠相信觀察到這些樣本的概率。所以p值越小,說明我們越不相信,即特征和變量相關性越高。 所以p值越小,相關性越大。

在Anova當中,我們得到F值,F值可以轉化為p值,Anova的假設條件是各個因素水平的均值相等,即這個因素對於試驗指標並沒有影響。所以,在這一假設下,p值越小,說明我們約不相信因素對於試驗指標沒有影響。 所以p值越小,相關性越大。

LDA

LDA是Linear Discriminant Analysis(線性判別分析)。即是一種分類算法,也可以用在降維當中,經常和PCA並列。這需要另外寫一篇博客來進行介紹。

參考:

盛驟 《概率論與數理統計》

關於$\chi ^2$檢測的參考:

1 - 基於卡方檢驗的特征選擇

x2檢驗(chi-square test)或稱卡方檢驗

卡方檢驗

特征相似性度量