FCBF算法是Lei Yu、Huan Liu于2004发表的Efficient Feature Selection via Analysis of Relevance and Redundancy中提出的。文章主要提出应用SU(Smymetrical uncertainty)代替信息增信IG(Information Gain)作为衡量一个特征是否于分类C相关或者是否冗余。
FCBF具体算法实现:
下面以一个实际的例子来解释上面的伪代码:
首先:找到一个和分类C相关的特征子集。计算每个特征
与分类C之间的SU值,并按照降序排列,当
(δ是提前设定的阈值),则认为特征是相关特征,加入到
当中;否则认为是不相关特征。此处得到6各特征
,依次按照
值进行降序排列,
最大,
最小。
其次:在特征子集内剔除冗余特征得到
。此处是FCBF的核心部分,需要进行详细说明:
1、选择值最大的特征
(
中的第一个特征)作为主特征;
2、在依次选择
值小于主特征的特征
,分别比较该特征与第一个特征的
,该特征与分类C之间的
;
3、如果则证明此特征为冗余特征,在
中剔除该特征,例如剔除
;
4、选择当前中
值最大的特征,此处为
;(重复步骤1)
5、在依次选择
值小于主特征的特征
,分别比较
,
;(重复步骤2)
6、如果则证明此特征为冗余特征,在
中剔除该特征,例如剔除
;(重复步骤3)
7、选择作为主特征,选择特征5。
问题1:为什么要采用SU来代替IG
首先了解一下SU(Symmetrical uncertainty)的定义:
从定义可以看出SU是信息增益IG归一化的一种形式,当SU=1时,代表X和Y完全相关,就是由X→Y,也可以由Y→X;当SU=0时,可以得到X与Y独立。
由于信息增益IG是一个非归一化的值,其值得范围不确定;另外与
之间由于比较的类型不同,不能直接进行比较。采用SU的好处是,将信息增益归一化,可以直接实现
与
的比较。
问题2:为什么当
且
时特征
是冗余特征,需要剔除?
首先特征是已经选择的主要特征,此时特征
由于其SU值比
小,所以与分类C之间
有更强的相关性。又由于
,则说明,
与
之间的关系是强于
与C之间的关系的,则说明
是
的一个近似马尔可夫毯,就是
可由
来近似表达,由于已经选择了
,所以可以不必选择
了。
以上只是定性的分析了原理,文章中并未给出具体的证明。
问题3:什么是马尔可夫毯
定义3(特征的Markov毯):给定特征,使特征子集
(
),当且仅当以下公式满足时,称
是特征
的Markov毯。
意思就是的信息完全由马尔可夫毯
的确定,那么
就是冗余信息,在特征选择中可以剔除。
首先对引入Markov blanket(马尔可夫毯)的概念用于定义什么是冗余特征(Redundancy features)。
对于Markov blanket的解析请参照https://blog.csdn.net/jbb0523/article/details/78424522?reload及【何宪. 基于贝叶斯网络的马尔可夫毯发现算法研究[D]. 电子科技大学, 2012.】论文。
简单来说在一个贝叶斯网络中,一个变量的马尔可夫毯就是和其相关得父节点、子节点和配偶节点,该变量的所有信息都包含在其马尔可夫毯内。举个例子就是,如果一个社会当中的人只和自己的亲属有直接关系(贝叶斯网络),那么这个人的信息可以通过其父亲,儿子,和配偶的信息完全确定。
问题4:什么是冗余特征?
定义4(冗余特征):假设G为当前特征的一个子集,如果特征与分类C是弱相关并且在G内可以找到其马尔可夫毯
,那么
应该在G中被移除。
结语
FCBF算法的全称是Fast Correlation-Based Filter即快速相关性滤波算法,其快速性到底体现在哪里呢?
拿mRMR算法来说,其计算公式为,需要分别计算
,总共需要计算
次(其中m为总特征的数量)。其特征复杂度为
。
而对于FCBF来说,其为一边比较一边删除冗余特征,最好的情况是只选择一个特征时,其时间复杂度为,最坏的情况是所有的特征都被选择,其时间复杂度为
。对于维数特别多,选择特征较少的情况FCBF的优势比较明显。
拿上面例子中的6个特征的情况来看,采用mRMR需要计算15次,而FCBF只需计算8次
。