一些特征选择的方法(I)

卡方检验

基本概念

卡方检验就是统计样本的实际观测值与理论推断值之间的偏离程度,实际观测值与理论推断值之间的偏离程度就决定卡方值的大小,卡方值越大,越不符合;卡方值越小,偏差越小,越趋于符合,若两个值完全相等时,卡方值就为0,表明理论值完全符合。
假设有两个分类变量 X X Y,其值域都是 {x1,x2} { x 1 , x 2 } ,计算 X X Y之间的相关性需要先建立一个零假说。即两个变量之间不存在关系,理论频数和实际频数之间存在的差异是因为随机误差。然后根据实际频数来计算他们的卡方值。卡方值越大说明造成他们的原因不是因为随机误差,而是 X X Y之间存在一定的相关性,卡方值越大说明相关性越强。

四格表

对于某一个特征 x x

  类别 1 1 类别2 总计 包含 a a b b a+b 不包含 c c d c+d c + d 总计 a+c a + c b+d b + d a+b+c+d a + b + c + d

四格表的卡方校验公式:

X2=(a+b+c+d)(adbc)2(a+b)(c+d)(a+c)(b+d) X 2 = ( a + b + c + d ) ( a d − b c ) 2 ( a + b ) ( c + d ) ( a + c ) ( b + d )

如何进行特征选择

如果对于特征 x x 的卡方值小于临界值,则说明该特征,与类别的相关性比较低,视为冗余特征。

TF-IDF

基本概念

TF-IDF(Term Frequency-Inverse Document Frequency)算法是用于评估一个字词在一个文件集合或者语料库中的一份文件的重要程度的一种统计方法。
一个字词的重要程度与它在文件中出现的次数成正比,与它在文件集或者语料库中出现的次数成反比。

构成

TF-IDF算法包括两个部分:词频TF(Term Frequency)和逆向文件频率IDF(Inverse Document Frequency)词频则是代表这个词语在文档中出现的次数。
但是如果单纯的词语出现的次数多少,会导致TF值会根据文件篇幅的大小而变化。为了避免词语在篇幅较长的文件,需要对TF值进行归一化操作。

计算公式

TF的计算公式:

tfij=nijknkj

nij n i j 代表着第 i i 个词语在第j篇文章中出现的次数, knkj ∑ k n k j 表示所有词语出现的次数。
IDF的计算公式:

idfi=ln|D||{j:tidj}| i d f i = ln ⁡ | D | | { j : t i ∈ d j } |

D D 代表着所有文件的数量,|{j:tidj}|代表文件集或者语料库中所有出现过的该词语的文件数量。
TF-IDF的计算公式为:
tfidf=tfij×idfi t f i d f = t f i j × i d f i

一个词语的TF-IDF的值等于其TF值和IDF的值的乘积。

特征选择

将样本集合中的每一个样本当成是一个文件 x=(x1,x2,,xn) x = ( x 1 , x 2 , … , x n ) ,将每一个样本的特征当成是文件中的一个词语。
于是就可以把样本集当成文件集来处理
对于某一个特征 xi x i 的TF值可以写成:

tfi=k1nk t f i = ∑ k 1 n k

其中假设样本集合中有 k k 个样本包含此特征,nk为第 k k 个样本包含的特征总数。
对特征xi的IDF值可以写成:
idfi=|D||di| i d f i = | D | | d i |

其中 |D| | D | 代表样本库中的样本个数, |di| | d i | 代表着包含此特征的样本个数。
最后计算TF-IDF值,并且按照TF-IDF值对特征进行排序。

RELIEF

基本概念

这是一种针对两分类问题的特征权重计算方法。他根据特征与类别之间的相关性来计算特征的权重,最后保留权重大于一定阈值的特征,取值权重小于一定阈值的特征,从而完成对特征的选择。
Relief算法计算特征和类别之间相关性的方法是考察特征在相同类别的近邻样本与不同类别的近邻样本之间存在的差异程度。当该特征在相同类别的样本中差异较小但是在不同类别的样本中差异较大,说明该特征适合用于这两种类别的分类。

相关计算

假设一个包含 n n 个样本的样本集合T={xi}i=1n,并且每一个样本都包含 m m 个特征,xi={xi1,xi2,,xim},i(1,2,,n)
首先Relief算法会从样本集中随机选择一个样本 xi x i ,然后再在相同类别的样本中选择一个与样本 xi x i 距离最近的样本 xsome x s o m e ,在不同类别的样本中选择一个与样本 xi x i 最近的样本 xdif x d i f ,计算样本之间的距离。

dist(xi,xj)=(k=1m(xik,xjk)p)1p d i s t ( x i , x j ) = ( ∑ k = 1 m ( x i k , x j k ) p ) 1 p

然后根据样本 xi x i 与样本 xsame x s a m e 和样本 xdif x d i f 在特征 t t 的差异来更新特征t的权重。
wt=wtdiff(t,xi,xsame)/r+diff(t,xj,xdif)/r w t = w t − d i f f ( t , x i , x s a m e ) / r + d i f f ( t , x j , x d i f ) / r

其中 wt w t 代表着特征 t t 的权重,diff(t,xi,xsame)代表样本 xi x i 和样本 xsame x s a m e 在特征 t t 上的差异。
其中r为采样次数。
当特征为标量
diff(t,xi,xj)={01==xit=xjtxitxjt d i f f ( t , x i , x j ) = { 0 = x i t = x j t 1 = x i t ≠ x j t

当特征为数量

diff(t,xi,xj)=xit=xjtmax(t)min(t) d i f f ( t , x i , x j ) = | x i t = x j t max ( t ) − min ( t ) |

算法具体步骤

更新特征 t t 的权重的方法是使用t的权重减去样本 xi x i 与同类样本的差异值 diff(t,xi,xsame)/r d i f f ( t , x i , x s a m e ) / r 加上不同样本的差异值 diff(t,xi,xdif) d i f f ( t , x i , x d i f ) 其中 r r 为抽样次数,为了避免抽样的随机性,r的取值不能太小。
这里写图片描述

添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值