system: [SYSTEM]

user: 4. 算法介绍 4.1. FAST特征选择算法 Qinbao Song，Jingjie Ni和Guangtao Wang [ 5 ] 提出了一种新奇的FAST特征选择算法，它能有效地处理不相关和冗余的特征，得到一个好的特征子集。图1的左图展示了FAST算法的框架，其中包括了移除不相关特征和剔除冗余特征两个部分。前者通过移除不相关特征以得到对目标集相关的特征子集，后者通过从不同的类中选择代表性的特征来剔除冗余特征，从而得到最终的特征子集。 相关性准则一经确定，就可以直接移除不相关特征。而剔除冗余特征稍微复杂一些，它包括：在加权完成图中构造最小生成树；将最小生成树划分成森林，每一棵树代表一个类；从每个类中选择一个代表特征。 为了更详细地描述这一算法，需要介绍一些定义。 首先，从3节我们可以知道，相关的特征与目标集有很强的相关性，而冗余的特征相互之间是相关的。因此，特征的冗余和相关性分别对应了特征间的相关性和特征与目标集的相关性。 互信息衡量了特征与目标集的分布的统计独立性的不同程度。这是一个对特征之间或者特征与目标集的相关性的非线性估计。通过特征或目标集的熵将互信息标准化，得到对称不确定性( )。FAST算法使用了对称不确定性( )作为两个特征之间或者特征与目标集之间的相关性的度量， 的定义如下： (4) 其中 为 的熵，定义为 (5) 对称不确定性将一对变量视为是对称的，它对变量的信息增益的偏倚进行了补偿，并将其标准化使得它的值落在 区间内。虽然该度量是对离散变量的定义，但他也可以用于连续变量中，只要将连续变量进行离散化即可。 在引入了对称不确定性的概念后，我们便可以用它来衡量相关性。特征间的相关性表示为 ，其中 ；特征与目标集的相关性表示为 ，在FAST算法中，如果 的值大于某个预定的阈值 ，则可以认为 对目标值是强相关的，小于该阈值的 就可以移除了。 对称不确定性还可以衡量变量间的冗余 [ 5 ] 。 是特征集的一个聚类，如果 ，使得对每一个 ，都有： ， 则 对于 是冗余的。 当然，也可以通过对称不确定性筛选出每个类的代表特征，也就是说，对于一个类 ， ，选择使得 最大的那一个 作为该类的代表特征。 图1. FAST算法和IWFAST算法的框架 FAST算法一共有三个步骤：1) 移除不相关的特征；2) 构造最小生成树；3) 分割最小生成树并选择每个类的代表特征。 移除不相关特征和选择代表特征上面已经解决，只剩下构造最小生成树和分割最小生成树。首先，为什么要构造最小生成树呢？对于一个含有 个特征的数据集，每两个特征求 作为他们的边的权值，则可以得到一个无向的加权完成图 ， 反映了各个特征间的相关性。不幸的是， 含有 个顶点 条边，对于高维数据集，则过于密集且各条边强烈地交织在一起。此外，分解这样的完成图被证实是一个NP-hard问题。因此，对 ，首先要生成最小生成树，使得在包含所有顶点的情况下让边的权值的总和达到最小。在FAST算法中，运用Prim算法 [ 16 ] 生成最小生成树。 接下来要解决如何分割最小生成树。利用上面的基于对称不确定性的冗余的定义，只要我们将最小生成树中所有权值小于 和 的边去掉，我们就能保证对于剩下的每一条边 ，都有 或 ，从而可以知道同一类中的所有特征都是冗余的。经过上面的叙述，FAST算法的伪代码如表1： 在伪代码第9行中，让 加1是为了避免当 的值为零时相应的边的权值无效。 4.2. IWFAST特征选择算法 首先，需要给出交互权值变量的定义 [ 7 ] 。 从等式(2)我们可以看到，特征 的引入会影响特征 和目标集 之间的独立性。正的交互增益意味着我们只有将两个特征合在一起考虑，才能描述他们的关系，同时会增加独立性的值。也就是说，特征 的引入对预测目标集有正的影响。相应地，我们需要增加特征 的权重。负的交互增益意味着新的特征的加入会抑制独立性的大小，也就是说，特征 的引入对预测目标集有负的影响。相应地，我们需要减少特征 的权重。因此，可以基于交互增益定义一个交互权值变量，它使得分析特征间的关系成为可能。 定义7 (交互权值变量)两个特征 和 之间的交互权值变量定义为： (6) Table 1 Pseudocode of FAST Algorith 算法： 输入： -已知数据集； -预定的阈值 输出： -最终的特征子集 //Part1：剔除不相关特征 1 2 3 4 5 6 //Part2：最小生成树的构造 7 // 是一个完成图 8 每一对特征 9 10 将 和 加入 中并将 作为他们的边的权值; 11 12 //使用 算法生成最小生成树 //Part3：树的分割 13 14 每一条边 15 16 //剪枝 17 18 //Part4：代表特征的选择 19 20 每一棵树 21 22 23 24 表1. FAST算法的伪代码 对于交互权值变量，有以下三个定理 [ 7 ] ： 定理1 。 定理2 如果特征 相对于特征 是冗余的，则有 。 定理3 如果特征 相对于特征 是交互的，则有 。 FAST算法在考虑特征的冗余时并没有考虑特征的交互作用，这会导致在特征选择过程中损失某些有用的特征变量。为了解决这一问题，我们使用交互权值变量( )去修正特征之间或者特征与目标集之间的对称不确定性( )。 有了交互权值变量的定义和定理之后，我们给出IWFAST算法的伪代码如表2所示： 在IWFAST算法中，我们去掉了剔除不相关特征这一步骤，将所有特征形成完全图，这是因为由于交互作用的影响，不相关特征跟其他特征一起也可能为预测目标集提供有用的信息，因此，在一开始就剔除不相关特征有可能会损失有价值的特征。所以IWFAST算法的框架如图1的右图所示： Table 2 Pseudocode of IWFAST Algorith 算法： 输入： -已知数据集； -预定的阈值 输出： -最终的特征子集 //Part1：最小生成树的构造 1 // 是一个完成图 2 每一对特征 3 4 将 和 加入 中并将 作为他们的边的权值; 5 6 //使用 算法生成最小生成树 //Part2：树的分割 7 8 每一条边 9 10 //剪枝 11 12 //Part3：代表特征的选择 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 给 去重得到 ; 31 表2. IWFAST算法的伪代码 在构造最小生成树这一部分，在确定边的权值时(即伪代码第3行)，我们在FAST算法的基础上乘以了 ，因为如前所述，如果 和 相互冗余，则 ，于是调整后的权值比FAST算法的权值小；若 和 有交互作用，则 ，那么调整后的权值比FAST算法的权值大。于是，在生成最小生成树时，交互特征的边就更可能被去掉，而更可能保留冗余特征的边，从而使得冗余的特征更可能被分在同一类中，交互的特征被分在不同的类中。 对于树的分割部分，跟FAST算法相同，以使得在同一类中的特征都是冗余的。而在代表特征的选择这一部分中，FAST算法是直接将每一类中使得 最大的特征作为代表特征，同样的，我们要对 进行调整，调整方法是：对于每一个特征 ，找出使得 最大的特征 ，从而用这个最大值乘以 得到调整后的标准，如伪代码14-17行所示。如果 的最大值足够大，表明 和 的交互作用值得被重视，就要将 和 一起放入特征子集中。 在本文中，经过多次实验，我们决定将 视为是否重视该交互作用的一个标准。如果未达到1.05，则忽略这两个特征的交互作用；如果满足条件，就要把两个特征捆绑在一起考虑。伪代码第18-21行就实现了这一想法。接着，我们已经对每个类中的特征都求得了一个调整后的对称不确定 ，在每个类中取使 达到最大值的 ，但与FAST算法不同，在IWFAST算法中，只有最大的这个 超过了一个特定的阈值，我们才将相应的特征加入特征子集，而该特征是否有交互的另一特征，由 的值决定，这也就是上面22-29行的内容。最后，由于有交互作用，得到的特征子集可能会有重复的特征，因此再对该特征子集去重，得到最终的特征子集 。