文章:Correlation-based Feature Selection for Discrete and Numeric Class Machine Learning

CFS是能確定所選子集特徵個數的特徵選擇方法,其估計特徵子集並對特徵子集而不是單個特徵進行排秩。

CFS的核心是採用啟發的方式評估特徵子集的價值

啟發方式基於的假設:

好的特徵子集包含與類高度相關的特徵,但特徵之間彼此不相關。

CFS Merits:

Merit_{S}=frac{kar{r_{cf}}}{sqrt{k+k(k-1)ar{r_{ff}}}}

其中, S 是特徵子集,包含 k 個特徵, ar{r_{cf}} 是平均的特徵和類之間的相關性, ar{r_{ff}} 是平均的特徵和特徵之間的相關性。

CFS採用對稱不確定性SU計算上式中的相關性

SU=2.0*[ frac{H(X)+H(Y)-H(X,Y)}{H(X)+H(Y)}]

CFS首先從訓練集中計算特徵-類和特徵-特徵相關矩陣,然後用最佳優先搜索(best first search)搜索特徵子集空間。也可使用其他的搜索方法,包括前向選擇(forward selection),後向消除(backward elimination)。前向選擇剛開始沒有特徵,然後貪心地增加一個特徵直到沒有合適的特徵加入。後向消除開始有全部特徵,然後每一次貪心地去除一個特徵直到估計值不再降低。最佳優先搜索和前兩種搜索方法差不多。可以開始於空集或全集,以空集S為例,開始時沒有特徵選擇,併產生了所有可能的單個特徵;計算特徵的估計值(由merit值表示),並選擇merit值最大的一個特徵進入S,然後選擇第二個擁有最大的merit值的特徵進入S,如果這兩個特徵的merit值小於原來的merit值,則去除這個第二個最大的merit值的特徵,然後在進行下一個,這樣依次遞進,找出使merit最大的特徵組合。

它的時間複雜度為 m*frac{n(n-1)}{2} , m是子集中特徵個數,n是全部特徵個數

流程圖:

推薦閱讀:

查看原文 >>
相關文章