1.根据原始特征之间的相关系数矩阵R和冗余矩阵D,将其转换为距离矩阵S; 2.初始化每个特征的权值,将其设置为一个较小的正数(如0.01)。 3.对于每个特征i,计算其与目标变量的相关系数,将相关系数最大的特征j加入Z中 4.对于每对特征i和j,计算它们之间的相关系数,并将其乘以它们各自的权值,得到它们的相关度。然后将这些相关度累加到特征i和j的权值上 5.对于第i个特征,计算其与其他特征的相关性和冗余性,表示特征i与其他特征的相关系数的平均值,表示特征i与其他特征冗余度的平均值。将冗余度最小的特征从Z中移除,并将其权值设为0. 6.如果Z中特征数小于k,重复步骤4-6 7.计算第i个特征与其他特征的相关性和冗余性后将其加权求和,得到该特征的得分值,将所有特征的得分值按从大到小排序,选择最高的k个特征来构建子集 8.返回Z. 写出以上每一步需要用到的公式及字母含义并写出完整步骤
时间: 2024-03-30 12:33:33 浏览: 58
这是一个特征选择的算法,叫做相关度量算法(Correlation-based Feature Selection,CFS)。下面是每一步具体的公式和步骤:
1. 将相关系数矩阵 $R$ 和冗余矩阵 $D$ 转换为距离矩阵 $S$:
$$S_{i,j} = \sqrt{1 - R_{i,j}} + \sqrt{1 - D_{i,j}}$$
2. 初始化每个特征的权值,将其设置为一个较小的正数(如0.01)。
3. 对于每个特征 $i$,计算其与目标变量的相关系数,将相关系数最大的特征 $j$ 加入集合 $Z$ 中:
$$j = \operatorname*{arg\,max}_{j \notin Z} \left| corr(i, y) \right|$$
4. 对于每对特征 $i$ 和 $j$,计算它们之间的相关系数,并将其乘以它们各自的权值,得到它们的相关度。然后将这些相关度累加到特征 $i$ 和 $j$ 的权值上:
$$s_{i,j} = \sum_{k \in Z} w_k \cdot corr(i,j)$$
5. 对于第 $i$ 个特征,计算其与其他特征的相关性和冗余性。$r_i$ 表示特征 $i$ 与其他特征的相关系数的平均值,$d_i$ 表示特征 $i$ 与其他特征冗余度的平均值。将冗余度最小的特征从集合 $Z$ 中移除,并将其权值设为0:
$$r_i = \frac{\sum_{j \in Z, j \neq i} corr(i,j)}{|Z|-1}$$
$$d_i = \sum_{j \in Z, j \neq i} s_{i,j}$$
$$k = \operatorname*{arg\,min}_{j \in Z} d_j$$
$$Z = Z - \{k\}$$
$$w_k = 0$$
6. 如果集合 $Z$ 中特征数小于 $k$,重复步骤 4-6。
7. 计算第 $i$ 个特征与其他特征的相关性和冗余性后将其加权求和,得到该特征的得分值。将所有特征的得分值按从大到小排序,选择最高的 $k$ 个特征来构建子集:
$$s_i = r_i - \frac{1}{|Z|-1} \sum_{j \in Z, j \neq i} corr(i,j) + \frac{1}{|Z|} \sum_{j \in Z, j \neq i} s_{i,j}$$
$$\operatorname*{sort}_{i=1}^n s_i$$
$$S = \{ i | i \leq k\}$$
8. 返回集合 $Z$。