轉載請標明出處:
http://www.cnblogs.com/tiaozistudy/p/hypothesis_testing_based_feature_selection.html
Filter特征選擇方法是一種啟發式方法,其基本思想是:制定一個准則,用來衡量每個特征/屬性,對目標屬性的重要性程度,以此來對所有特征/屬性進行排序,或者進行優選操作。常用的衡量准則有假設檢驗的p值、相關系數、互信息、信息增益等。本文基於候選屬性和目標屬性間關聯性的假設檢驗,依據p值的大小量化各候選屬性的重要性程度。
設有$D $維數據集$\mathfrak D = \{\vec x_n \}_{n=1,...,N} $,其中$\vec x_n = (x_{n1},...,x_{n,D-1},y_n) $,數據集$\mathfrak D $由$D-1 $個候選屬性$X_1,...,X_{D-1} $和1個目標屬性$Y $刻畫。屬性在本文中分為兩種類型:連續型屬性和離散型屬性,各屬性均有可能是連續型的或者離散型的。本文的工作是通過對候選屬性$X \; (\in \{X_1,...,X_{D-1} \})$和目標屬性$Y $之間的關聯性進行假設檢驗,量化各候選屬性單獨預測目標屬性的能力,根據屬性類型的不同,可以區分為4種情況:
1)$X$和$Y $都是離散型屬性;
2)$X$是連續型屬性,$Y $是離散型屬性;
3)$X$是離散型屬性,$Y $是連續型屬性;
4)$X$和$Y $都是連續型屬性。
對屬性$X$和$Y $的關聯性作假設檢驗的思想是:將$X$和$Y $看作是兩個隨機變量,將數據集$\mathfrak D $中相關屬性下的數值看作是隨機變量的觀測值,即有觀測值$x_1,...,x_N $和$y_1,...,y_N $,根據這些觀測值構造出與$X$和$Y $獨立性/關聯性相關,且服從已知分布(主要是$\chi^2 $、$t $和$F $分布)的統計量,最后根據已知分布的概率函數確定獨立性檢驗的p值,用於屬性$X$和$Y $關聯程度的度量。
1、基於Pearson $\chi^2 $檢驗的離散變量關聯性度量
針對屬性$X$和$Y $都是離散型的,可以通過Pearson $\chi^2 $檢驗方法檢驗$X$和$Y $的獨立性。設$X$有$s $種可能取值,$Y $有$t $種可能取值,記$N_{ij} $為$X$取第$i $個值$Y$取第$j $個值的數據對象個數,且有$N_{i\cdot} = \sum_{j=1}^t N_{ij} $,$N_{\cdot j} = \sum_{i=1}^s N_{ij} $,可作如下列聯表:
表 1:列聯表
如果把$X$和$Y $看作是隨機變量,則有概率分布,記為$p_{Xi} \; (i=1,...,s) $和$p_{Xj} \; (j=1,...,t) $,且有二維隨機變量$(X,Y) $的概率分布:$p_{ij} \; (i=1,...,s; \; j= 1,...,t) $.易知,$\forall i=1,...,s; \; j=1,...,t $有$p_{ij} = p_{Xi} \cdot p_{Yj} $時,$X$與$Y $獨立。因此有假設$$ \begin{equation} H: \; p_{ij} = p_{Xi} \cdot p_{Yj} \quad (i=1,...,s; \; j=1,...,t) \end{equation} $$觀察值接受此假設的程度即為p值。
首先估計(1)式中的參數得$$ \begin{equation} \begin{split} \hat p_{Xi} = N_{i\cdot}/N \; (i=1,...,s) \\ \hat p_{Yj} = N_{\cdot j}/N \; (j=1,...,t) \end{split} \end{equation}$$進一步計算如下統計量:$$ \begin{equation} \begin{split} K & = \sum_{i=1}^s \sum_{j=1}^t \frac{(N_{ij} - N\hat p_{Xi} \hat p_{Yj})^2}{N\hat p_{Xi} \hat p_{Yj}} \\ & = N \left ( \sum_{i=1}^s \sum_{j=1}^t \frac{N_{ij}^2}{N_{i \cdot}N_{\cdot j}} - 1 \right) \end{split} \end{equation} $$經證明統計量$K $的分布收斂於自由度為$ d = (s-1)(t-1) $的$\chi^2 $分布,因此p值近似為:$$ \begin{equation} p_{value} = P(\chi^2_d > K) \end{equation} $$因為$\chi^2_d $的概率密度函數是已知的,所有不難通過(4)式計算出p值。
由(3)式可知,當$K $越小時,$|N_{ij}/N - \hat p_{Xi} \hat p_{Yj}| \rightarrow 0 $,因此拒絕(1)式假設的概率越小,即$X$與$Y $獨立的可能性越大,由(4)式計算出的p值越大;相反地,p值越小,$X$與$Y $獨立的可能性越小,相關聯的可能性越大。因此p值越小,屬性$X$越重要。
圖 1:Pearson $\chi^2 $檢驗的p值
2、基於單因子方差分析的連續變量與離散變量間關聯性度量
先來看看什么是單因子方差分析[1]。
2.1 單因子方差分析(one-way ANOVA)
假設有$I $組試驗,每組包含$J_i \; (i=1,...,I) $個樣本,設$Y_{ij} $表示第$i $個試驗組的第$j $個樣本,$\bar Y_i $表示第$i $組試驗的樣本均值,$\bar Y $表示總體均值,有下式:$$ \begin{equation} \begin{split} \sum_{i=1}^I \sum_{j=1}^{J_i} (Y_{ij} - \bar Y)^2 = & \sum_{i=1}^I \sum_{j=1}^{J_i} [(Y_{ij} - \bar Y_i) + (\bar Y_i - \bar Y)]^2 \\ = & \sum_{i=1}^I \sum_{j=1}^{J_i} (Y_{ij} - \bar Y_i)^2 + \sum_{i=1}^I \sum_{j=1}^{J_i} (\bar Y_i - \bar Y)^2 \\ & + 2\sum_{i=1}^I \sum_{j=1}^{J_i}(Y_{ij} - \bar Y_i)(\bar Y_i - \bar Y) \\ = & \sum_{i=1}^I \sum_{j=1}^{J_i} (Y_{ij} - \bar Y_i)^2 + \sum_{i=1}^I \sum_{j=1}^{J_i} (\bar Y_i - \bar Y)^2 \end{split} \end{equation} $$上式簡記為$SS_{TOT} = SS_W + SS_B $,即總的平方和等於組內平方和加上組間平方和,$SS_W $表示試驗組內部數據散布的度量,$SS_B $表示試驗組之間散布的度量。
設第$i $個試驗組的期望為$\mu_i $,可提出假設:$$ \begin{equation} H: \mu_1 = \mu_2 = ... = \mu_I \end{equation} $$文獻[1]中證明,當上述假設成立,有$$ \begin{equation} \frac{E[SS_B]}{I-1} = \frac{E[SS_W]}{J-I} \end{equation} $$式中$E[\cdot] $表示期望,$J=\sum_{i=1}^I J_i $.然而當(6)式中假設不成立時,有$$ \begin{equation} \frac{E[SS_B]}{I-1} > \frac{E[SS_W]}{J-I} \end{equation} $$
又有證明,統計量$$ \begin{equation} K = \frac{SS_B/(I-1)}{SS_W/(J-I)} \end{equation} $$在(6)式假設下服從自由度為$I-1 $和$J-I $的$F $分布,即$K \sim F_{I-1, J-I} $.根據(7)式和(8)式的分析,當(6)式假設為真時,$K $的值接近於1,否則$K $的值應該較大。因此可以根據$P(F_{I-1,J-I} > K) $接受或拒絕假設$H $.
2.2 關聯性度量
再來看看如何利用單因子方差分析度量離散變量和連續變量間的關聯性。以$X$是離散變量,$Y $是連續變量為例($X$是連續變量,$Y $是離散變量的情況可以類推)。設$X$有$I $種可能取值,記為$x_1, ..., x_I $,經過數據對象的順序變換之后,總是可以得到如下表的數據形式:
表 2:數據表
|
$\cdots $ |
$X$ |
$\cdots $ |
$Y $ |
$\vec x_1 $ |
$\cdots $ |
$x_1 $ |
$\cdots $ |
$y_{11} $ |
$\vdots $ |
$\vdots $ |
$\vdots $ |
$\vdots $ |
$\vdots $ |
$\vec x_{J_1} $ |
$\cdots $ |
$x_1 $ |
$\cdots $ |
$y_{1J_1} $ |
$\vdots $ |
$\vdots $ |
$\vdots $ |
$\vdots $ |
$\vdots $ |
$\vec x_{J_1 + ... + J_{i-1} + 1} $ |
$\cdots $ |
$x_i $ |
$\cdots $ |
$y_{i1} $ |
$\vdots $ |
$\vdots $ |
$\vdots $ |
$\vdots $ |
$\vdots $ |
$\vec x_{J_1 + ... + J_{i-1} + J_i} $ |
$\cdots $ |
$x_i $ |
$\cdots $ |
$y_{iJ_i} $ |
$\vdots $ |
$\vdots $ |
$\vdots $ |
$\vdots $ |
$\vdots $ |
$\vec x_{J_1 + ... + J_{I-1} + 1} $ |
$\cdots $ |
$x_I $ |
$\cdots $ |
$y_{I1} $ |
$\vdots $ |
$\vdots $ |
$\vdots $ |
$\vdots $ |
$\vdots $ |
$\vec x_{J_1 + ... + J_{I-1} + J_I} $ |
$\cdots $ |
$x_I $ |
$\cdots $ |
$y_{IJ_I} $ |
其中$N = J_1 + ... + J_I $表示數據對象的總個數。也就是說數據對象可以像2.1小節那樣根據$X$的取值划分為$I $組。
按照概率論的知識,變量$X$與$Y $相互獨立,則有$$ \begin{equation} P(Y<y,X=x) = P(Y<y)P(X=x) \end{equation} $$然而如果變量$X$與$Y$不獨立,有$$ \begin{equation} P(Y<y,X=x) = P(Y<y|X=x)P(X=x) \end{equation} $$即當變量$X$與$Y $相互獨立時$P(Y<y|X=x) = P(Y<y) $,因此在上述的各組中,變量$Y $具有相同的分布函數:$$ \begin{equation} P(Y<y|X=x_1) = ... = P(Y<y|X=x_I) = P(Y<y) \end{equation} $$假設$X$取值$x_i $的數據組下$Y \sim N(\mu_i, \sigma^2) $,變量$X$與$Y $相互獨立時必然有$\mu_1 = ... = \mu_I $,這與(6)式中的假設$H $完全相同,所以離散變量$X$與連續變量$Y $之間的關聯性可以通過單因子方差分析度量。
首先按照(5)式中的定義計算$SS_B $和$SS_W $,而后根據(9)式計算出$K $值:$$ \begin{equation} K = \frac{\sum_{i=1}^I J_i(\bar y_i - \bar y)^2 / (I-1)}{\sum_{i=1}^I (J_i - 1) s^2_j / (N-I)} \end{equation} $$其中$\bar y_i = \sum_{j=1}^{J_i} y_{ij} / J_i $,$\bar y = \sum_{i=1}^I J_i \bar y_i / N $,$s^2_j = \sum_{j=1}^{J_i} (y_{ij} - \bar y_i)^2 / (J_i - 1) $,進而計算p值:$$ \begin{equation} p_{value} = P(F_{I-1,J-I} > K) \end{equation} $$
根據上文的分析,當$X$與$Y $關聯性越小,$K $越小,此時p值越大;相反地,當$X $與$Y $關聯性越大,$K $越大,p值越小。
3、基於Pearson相關系數顯著性檢驗的連續變量關聯性度量
針對均為連續變量的$X$和$Y $,根據數據集$\mathfrak D $的取值,有數據對$(x_n, y_n) \; (n=1,...,N) $,設均值和方差的統計量如下:$$ \bar x = \frac 1N \sum_{n=1}^N x_n $$$$\bar y = \frac 1N \sum_{n=1}^N y_n$$$$ s^2_x = \frac 1{N-1} \sum_{n=1}^N (x_n - \bar x)^2 $$$$s^2_y = \frac 1{N-1} \sum_{n=1}^N (y_n - \bar y)^2$$容易得到二維隨機變量$(X,Y) $的Pearson相關系數的統計量:$$ \begin{equation} r = \frac{\sum_{n=1}^N (x_n - \bar x)(y_n - \bar y)}{(N-1)\sqrt{s^2_x s^2_y}} \end{equation}$$注意(15)式中$r $僅是通過樣本得到的相關系數的統計量,如設變量$X$與$Y $的相關系數為$\rho $,則$r $只是$\rho $的估計。$X$是否與$Y $相互獨立,$r=0 $說的不算,只有$\rho =0 $才行,因此構造如下假設:$$ \begin{equation} H:\rho = 0 \end{equation} $$需要通過樣本計算得到的$r $的值,對(16)式的$H $做檢驗,如果接受$H $表示$X$與$Y $相互獨立。
為了對$H $做假設檢驗,首先對$r $作變換:$$ \begin{equation} K = \frac{r\sqrt{N-2}}{\sqrt{1-r^2}} \end{equation} $$可以證明$K $服從自由度為$N-2 $的t分布[2],即$K \sim t_{N-2} $.證明過程很復雜,本文僅敘述證明思路,如果深究,請參考文獻[2]:假定隨機變量$X$與$Y $是正態無相關的,計算相關系數統計量$r $的概率密度函數$f(r) $,根據(17)式的關系計算出$K $的概率密度函數,發現$K $的概率密度函數與自由度為$N-2 $的t分布的概率密度函數完全一致,因此$K \sim t_{N-2} $.
基於$t_{N-2} $分布對$H $做假設檢驗,可計算p值:$$ \begin{equation} p_{value} = \begin{cases} 0, & r^2 = 1 \\ 2 \cdot P(t_{N-2} > |K|), & \text{otherwise} \end{cases} \end{equation} $$
圖 2:Pearson相關系數顯著性檢驗的p值
然而Pearson相關系數有一個不足:如果隨機變量$X$和$Y $之間存在線性關系,即$Y = aX+b $,則Pearson相關系數適用,但是如果$X$和$Y $之間的關系是非線性的,則Pearson相關系數不適用。舉個例子:
例 1:設$X $與$Y $有如下的函數關系:$$ \begin{equation} y = \begin{cases} x, & 0 \le x < 1 \\ 3-x, & 1 \le x \le 2 \end{cases} \end{equation} $$其中$X $服從區間$[0,2] $的均勻分布,可算得$X $與$Y $相關系數為:$$ \begin{equation} \rho_{XY} = \frac{E[(X-E(X))(Y-E(Y))]}{\sqrt{E[(X-E(X))^2]E[(Y-E(Y))^2]}} = \frac34 \end{equation} $$然而如果有隨機變量$Y' = X $,易得$\rho_{XY'} = 1 $,有$\rho_{XY} \ne \rho_{XY'} $.
嘗試分別對二維變量$(X,Y) $和$(X,Y') $作如圖所示的離散化:$X$、$Y $、$Y’ $等寬的划分成4個小區間,依次以1、2、3、4記名。
圖 3:離散化
離散化后,圖中白色方格代表概率為零,灰色方格代表概率為$1/4 $,如$P(X=1,Y=1)=1/4 $.根據$\chi^2 $檢驗的原理,易知離散化后,$(X,Y) $與$(X,Y') $有相同的關聯性,與上述Pearson相關系數的結果並不吻合。
類似例 1的例子還有很多,這些都是由於Pearson不支持非線性相關性引起的,在使用上述方法做特征選擇時,需要注意這點。
參考文獻
[1] Rice, J.A.著, 田金方譯. 數理統計與數據分析(原書第3版)[M]. 機械工業出版社, 2011, pp. 328-333.
[2] Fisz M. 概率論及數理統計[M]. 上海科學技術出版社, 1962.