sklearn保存svm分类模型_再论特征选择4——基于朴素贝叶斯模型特征选择

af66d4c405fe7f9e53ac9cb9061d53f9.png

以二分类多项式朴素贝叶斯模型为例说明特征选择的原理。通过前边朴素贝叶斯sklearn实践部分我们可以看到,对于二分类问题来说,sklearn中只使用一个线性分类器f(x)=wx+b,这里显然w是一个一维的向量,它是分类器的参数,x是待预测文本的TF法向量化表示,b表示该分类器所预测的两个类别中的一个类别的出现概率。显然w各维表示的词语的似然概率p(w|c),p(w|c)的值越大说明类别c产生这个词语的可能越大,也就是说这个词语更能表征这个类别。通过上边的分析,我们不难想到,可以通过设一定的系数值阈值来实现特征选择,对于系数值大于设定阈值的词项予以保留,对于系数值小于设定阈值的词项予以去除,实现了特征选择的目的。

71c813fc4facb86ab781be343ada80ec.png

在SelectFromModel类中特征选择之前对系数做了绝对值操作,这叫做1范数正则化,我们都知道正则化的操作是避免线性模型过拟合问题的,但是对于朴素贝叶斯来说这样的操作是不符合原理的。因为朴素贝叶斯根本就不涉及过拟合的问题,因为它根本就没有通过迭代最小化误差的思想。反而由于取了绝对值再去做阈值筛选,筛选出来的反倒是要被过滤的。原因是朴素贝叶斯的所有概率值都去了对数,则所有系数值都为负值且值越小概率越小,但是由于绝对值的操作,使得概率值变为正值,而且对数曲线在0-1区间内变为减函数,于是值越小反而概率越大。综上,对于SelectFromModel这个类特征选择,只能给他传递线性模型,比如线性SVM。这里我们给出利用SelectFromModel思想的朴素贝叶斯模型特征选择方法代码

# 定义文本集

今天的内容主要说了SelectFromModel只能传入线性分了模型,而不能传入朴素贝叶斯模型,基于朴素贝叶斯原理做出了这个结论,想找到一个例子来证明这么理解是对的,但是没有找到,如果小伙伴觉得这个结论有问题,欢迎留言。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值