特征选择 - 条件熵

数据挖掘 特征选择 文本挖掘 特征提取
2022-02-28 15:18:57

我开发了一种算法来定义文本分类中特征选择的条件熵。我正在遵循 Charu C. Aggarwal (5.2.2) 撰写的 Machine Learning from Text 中的公式。作者提到条件熵值介于 (0, log(number of classes)) 之间,我的情况是 (0, 0.6931472)。

作者还提到可以删除具有最大值的特征,但他没有提供有关定义“最大”的标准的更多信息(它只是熵的最大值还是一组最大的熵值?)

你们有没有将条件熵用于特征选择?如果是这样,根据结果,使用什么标准来定义要删除的特征。

这是我的条件熵结果的摘要:

        E.tj.       
 Min.   :0.5701  
 1st Qu.:0.6562  
 Median :0.6563  
 Mean   :0.6558  
 3rd Qu.:0.6564  
 Max.   :0.6564 
1个回答

单独的特征选择方法为每个特征分配一个数值,以便可以根据该值对特征进行排序。选择计算值来表示特征对了解标签/响应变量的贡献程度:常见的选择是条件熵,还有信息增益或相关性。

分配给特征的实际值本身并不是真正有用的,重要的是根据该值对特征进行排序。因此,选择特征的标准方法不是在值上选择特定的阈值,而是简单地选择想要获得的特征的数量。

示例:在文本分类任务中,有 1000 个文档和 20000 个唯一词的词汇表作为候选特征。使用所有的词肯定会导致过拟合,所以我们决定只使用 100 个词作为特征。我们可以计算每个词相对于标签的条件熵,然后根据对应的排名选择后100个词作为特征(其他19900个词被忽略)。

由于单个特征选择非常有效,因此通常可以(也是一个好主意)尝试一系列值作为特征数量,并针对每个值训练/测试模型。通过这种方式,人们可以通过实验确定最佳特征数量(最大化数据性能的特征)。请注意,这是一种超参数调整的形式,因此必须在调整阶段使用验证集,然后应将最终模型(具有选定的最佳特征数量)应用于新的测试集。