特征选取/停用词筛选的三种指标

12 篇文章 1 订阅
11 篇文章 3 订阅

特征选取/停用词筛选的三种指标

方差/概率方差

方差用来检验数据的分散程度,是特征选取的常用指标。
但在nlp中,由于不同的词的词频有着非常大的差异,导致直接利用词的出现概率计算方差会由于基数的大小差异导致结果的偏差,比如下面这个例子:
在一个二分类问题中,“的”在0(积极)和1(消极)类中的出现概率p0(的)=0.55,p1(的)=0.45,方差为0.0025,而“好极了”在0类和1类中的出现概率分别为p0(好极了)=0.0002,p1(好极了)=0;则其方差为10^-8,远小于0.0025.但实际上“好极了”只在0(积极)类中出现,且显然“好极了”是一个非常积极的词汇。
为了应对这种问题,就可以使用概率方差(标准差):
在这里插入图片描述
亦即对标准差除以该词总的出现概率,在本例中,“好极了”和“的”的概率方差(标准差)分别为0.5和0.05,显然“好极了”比“的”要更具有区分度,效果提升显著。

信息增益/互信息

怎样衡量单个事件的包含的信息量呢?
假设事件A发生的概率为p,其包含的信息量即为log(1/p)。
这里根据底数的不同会有不同的单位,底数为2单位即bit。
就是说,一件事发生的概率越小,其包含的信息量越大。
“地球爆炸”的信息量确实比“早上起床”的信息量要大。
我们把一组数据中出现某个数据看作一个事件,怎样衡量这一组数据包含的信息量呢?
就是用信息熵:在这里插入图片描述
信息熵其实就是信息的期望值。
比如下面这个例子:
在这里插入图片描述
H(做没做噩梦)=log(8/5)*5/8+log(8/3)*3/8=0.1276+0.1597=0.2873

而怎么判断“晚饭好不好吃”和“被老板骂”对做噩梦的影响程度呢,就要用到信息增益。
信息增益,又叫互信息,用来表示某事件确定后对另一事件的影响程度。
在这里插入图片描述
即信息增益使用划分前后集合熵的差值来衡量使用当前特征A对于样本集合D划分效果的好坏。
比如上面的例子里,g(被老板骂了吗)=H(做没做噩梦)-[H(做没做噩梦|被老板骂了)+H(做没做噩梦|没被老板骂)]=0.2873-[(log(1)*1)*5/8+(log(1)*1)*3/8]=0.2873,
g(晚饭好吃吗)=H(做没做噩梦)-[H(做没做噩梦|晚饭好吃)+H(做没做噩梦|晚饭不好吃)]=0.2873-[(log(7/2)*2/7+log(7/5)*5/7)*7/8+(log(1)*1)/8]=0.2873-(0.1554+0.1044)*0.875=0.059975,
0.2873>0.059975,“被老板骂"的信息增益比”晚饭好不好吃“的信息增益大,说明被没被老板骂确定之后对做不做噩梦的影响比晚饭好不好吃确定之后对做不做噩梦的影响大,所以”被老板骂“是划分”做不做噩梦“的更好的指标。
决策树中的ID3算法就是利用信息增益选择的特征。

卡方检验

卡方检验是先假设后检验,其思想路线是这样的:
假设。。。那么xxx应该是xxx,但是/确实根据实际数据xxx是/不是xxx,所以假设不成立/成立。
一般是假设某个特征对结果没有影响,然后根据标签去反推这个特征的理论取值,看理论取值与实际数据的差距,差距越大,说明这个假设越偏离现实,就是假设不成立。反之,推论数据与实际数据的差距越小,就说明推论越接近现实,推论就会成立。
举个例子:
在这里插入图片描述
假设喝牛奶和感冒无关,那么根据”合计“中的比例,n个人中,感冒的人数会是0.2829*n,不感冒的人数会是(1-0.2829)*n,所以我们分别把喝牛奶和不喝牛奶的总人数带入:
在这里插入图片描述
计算得,我们”喝牛奶和感冒无关“假设下的推论数值应该为:
在这里插入图片描述
然后我们就要衡量推论数值与实际数据的差异了,卡方检验使用如下公式:
在这里插入图片描述
其中A为实际值,T为理论值。由于平方项放大了差异,我们在分母上加上一个T,一来是为了使数据的单位统一(量纲);二来也是求了一个相对量,减小了上文方差中那种基数差异对结果的影响。
比如上面的例子中,我们计算得其卡方值为1.077。
之后根据自由度和阈值要求(自由度等于V = (行数 - 1) * (列数 - 1),对四格表,自由度V = 1。阈值一般取0.05,即喝牛奶和感冒95%概率不相关,其临界值为3.84)。
即若我们的卡方值小于临界值,我们就认为推论与实际数据的差异足够小,假设成立;如果差异大于临界值,我们就认为推论与实际数据的差异不够小,假设不成立。
上例中1.077<3.87,推论与实际数据的差异足够小,所以我们认为推论正确,即喝牛奶和感冒无关。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python风控模型的特征选取是指在建立模型之前,通过分析大量的数据特征,并筛选出对模型建立和预测目标最有意义的特征。 首先,特征选取是基于数据挖掘和机器学习的原理进行的。Python提供了强大的数据分析和建模工具,如Pandas、NumPy和Scikit-learn等,可以方便地进行特征选取。 其次,特征选取的方法有很多种。常见的方法包括: 1. Filter类型:根据统计量(如相关系数、卡方检验等)或者信息论(如互信息、信息增益等)的评估指标,对特征进行排序,选择排名靠前的特征。 2. Wrapper类型:通过构建预测模型,采用一定的评价标准(如准确率、F1-score等),递归地选择特征子集,直到达到预设阈值为止。 3. Embedded类型:在模型的训练过程中,通过正则化(如L1和L2正则化)、决策树的特征重要性等方法,进行特征选择。 最后,特征选取的目标是要保留对模型预测结果影响较大的特征,同时避免过拟合和冗余特征。需要根据具体的业务场景和数据特点选择合适的特征选取方法,并通过实验和验证,不断优化和调整特征。 总结起来,Python风控模型的特征选取通过数据分析和机器学习的方法,选取对模型预测有重要意义的特征特征选取的方法有多种,包括Filter、Wrapper和Embedded等类型。通过合理选择方法、实验和验证,可以得到有效的特征子集,提高风控模型的准确性和性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值