卡方选择(chi-square)能用到logistic regression当中么?(一)

继续年前Logistic regression的尝试。


1. 回顾一下论文中对Logistic regression的特征选择方法

两种思路,都很简单且粗暴:

(1)已选择的特征集合是个空集,对候选特征,每一个建立一个LR模型,用建立的LR模型的性能来评价每一个候选特征的好坏,选择一个最好的特征加入已选择的特征集合中;继续选择第二个特征,直到模型的性能没有显著变化为止(以模型性能作为终止条件)或者已选择特征集合到达上限(以选择特征数目为终止条件)。

(2)是(1)的反过程,即开始把所有特征加入到已选择的特征集合,然后逐渐去掉对模型性能影响不大的特征。

候选特征总数是n,要选择其中m个特征出来,上述方法的时间复杂度是O(m*n)。注意,这个时间复杂度的原子操作是训练一遍LR模型,而LR的训练也不是件容易的事情,尤其是当特征多、样本多的时候。而且,选择用LR模型,一定都是特征多、样本多的情况。所以上面的过程,只能在部分样本集合(抽样)上做,不可能在全样本集合上做。抽样的好坏,也会影响到特征的选择。


2. 从前我个人的思路

前面两种简单粗暴,我的似乎更加简单粗暴——用所有特征把模型训练出来,看哪些特征的绝对值接近0.0,删掉就行了。这样做的依据是,训练出的权重越小,这个权重的特征对模型分类结果贡献就越小,就越微不足道——可以想几个极端的case来进一步理解:如果所有特征的权重都是0,则无论样本中特征如何取值,这些特征的线性加权值都是0.0,sigmoid函数计算出来的值都是0.5,则样本无法被分类;如果某个特征的权重是正无穷或者负无穷,当这个特征在样本中存在的时候(特征取值为1),则样本中所有特征线性加权的值是正无穷或者负无穷,sigmoid函数计算出来的值是1.0或者0.0,即样本肯定是正例或者肯定是反例,此时其他特征不起作用。

相比paper中的方法,时间复杂度由O(m*n)降低到了O(1)。当然,这种方法的实际操作通常也是建立在样本抽样的基础上。不过如果条件允许,不抽样也可以。


3. 为什么要尝试卡方选择?

另一个思路是用文本分类中的特征选择方法来对LR模型进行特征选择。那些方法在文本分类中好用,在LR中如何呢?首先是要看各个方法的基本原理、物理意义。拿卡方选择来说,计算的是特征与类别之间的联系程度,计算出来的卡方值越大,说明特征对当前类别的区分度越大;而特征对类别的区分度越大,我们直观上也就月应该选择这个特征。这样,当新样本过来的时候,有了这个特征的帮助,我们才更容易判断样本的类别。这是我想尝试卡方选择方法的初衷。


码字好累啊,分两篇写吧。


完。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值