特征选择

来源:互联网 发布:ui设计师的前景 知乎 编辑:程序博客网 时间:2024/05/01 10:38
特征选择是从特征集中选择出相关的特征子集。在文本分类中是从训练集合出现的term中选择出一部分子集的过程。 
特征选择有两个目的: 
1、通过减少特征空间选择更有效的特征,提高分类训练和应用的效率。 
2、去除噪音特征,提高分类的精度。 
对于文本分类,特征选择的算法一般一下流程: 
Java代码  收藏代码
  1. select-features(D,c,k){//D指document,c指Category,k保留的特征数  
  2.  v = extract-terms(D);//从文档中抽取term,分词  
  3.  L = []; //<feature、特征效用指标utilty> 数组  
  4.  foreach( t in v ){//对于文档中的每一个单词  
  5.     feaure-utilty(t,c) = compute-feaure-utilty(D,t,c);//计算feature的utilty  
  6.     append(L,<t,feaure-utility(t,c)>);//加入L中  
  7.  }  
  8.  return top-k-utilty-features(L);//返回特征效用最大的k个feature  
  9. }  

这里使用特征效用(utility)度量,是为了避免和feature权重混淆。 
特征效用是指在特征与类别的相关性,而特征权重是指特征在分类时的权重值。 
http://www.blogjava.net/zhenandaci/archive/2009/04/19/266388.html有详细介绍。 

特征选择的方法: 
特征选择有很多种方法,比如:互信息、卡方检验(χ2 test)、基于频率的特征选择。 

互信息的方法是计算term t和类别c的期望互信息,期望互信息是term的存在与否能 
给类别c的正确判断带来的信息量。 

卡方检验是用来检验两个事件的独立性,在特征选择中,它检验term的出现和类别的出现是否相互独立。 

基于频率的特征选择就是选择在类别中出现频率比较高的term。频率可以定义为文档频率( 
在类别c中包含t的文档数)和文档集频率(c类别中所有文档中t出现的总次数)。 
文档频率适合贝努力模型,而文档集频率适合于多项式模型。