在文本分类中,特征选择是选择训练集的特定子集的过程并且只在分类算法中使用它们。特征选择过程发生在分类器的训练之前。
更新:Datumbox机器学习框架现在是开源的,可以免费下载。查看包com.datumbox.framework.machinelearning.featureselection以查看Java中的卡方(卡方检测)和交互信息特征选择方法的实现。
使用特征选择算法的主要优点是减少了数据的维度,使得训练速度更快,并且通过去除噪声特征可以提高精度。因此特征选择可以帮助我们避免过度拟合。
下面给出了选择k个最佳特征的基本选择算法(Manning等人,2008):
在下一节中,我们将介绍两种不同的特征选择算法:交互信息和卡方(Chi Square)。
C类中术语的互信息是最常用的特征选择方法之一(Manning等,2008)。就是衡量特定术语的存在与否对c作出正确分类决定的贡献程度。交互信息可以用下面的公式计算:
1
在我们的计算中,由于我们使用概率的极大似然估计,我们可以使用下面的等式:
2
其中N是文档总数,Nt 关心值为 et(在文档中术语 t 的出现;它取值是1或0) 和 ec(在c类中文档的出现;它取值是1或0)
文档的计数,et 和 ec 通过下标表示,
和
最后我们必须注意,所有上述变量都带有非负值。
另一个常见的特征选择方法是卡方(卡方检验)。统计学中使用x 2检验法主要是来测试两个事件的独立性。更具体地说,在特征选择中,我们使用它来测试特定术语的出现和特定类的出现是否独立。因此,我们估计每个术语的数量,并按照他们的分数对他们进行排名:
3
x 2的分数高的话表明,独立的虚拟假设(H 0)应该被拒绝,因此术语和类的发生是有依赖的。如果它们是依赖的,那么我们选择文本分类的特征。
上述公式可以向下面一样改写:
4
如果我们使用卡方(卡方检测)方法,我们应该只选择一个预定义的特征,其中 x2 检测分数大于10.83,在0.001水平上才能显示出统计学意义
最后,但并非最不重要,我们应该注意到,从统计的角度来看,由于只有自由度和Yates校正(这将难以达到统计的显着性)
,卡方(卡方检测)特征选择是不准确的。因此,我们应该期望在所选择的特征中,其中一小部分是独立于类的。因此,我们应该期望在所选择的特征中,其中一小部分是独立于类的。不过 Manning等(2008)表明,这些噪声特征并没有严重的影响分类器的整体精度。
另一种技术可以帮助我们避免过度拟合,减少内存消耗并提高速度,就是从词汇表中删除所有生僻词。例如,可以消除所有类别中只出现一次的所有术语。删除这些术语可以减少内存使用量,提高分析速度。最后,我们不应该认为这种技术可以与上述特征选择算法结合使用。
你喜欢这篇文章吗?请花一点时间在Twitter上分享。