利用分类模型学习特征权重

来源:互联网 发布:淘宝店铺线下推广方案 编辑:程序博客网 时间:2024/05/18 20:32

在有的时候,我们需要学习出特征在分类器中所占的比重,例如判断某个人是否具有贷款资格,特征收入应该比年龄要更重要一些,那么具体重要多少,我们可以通过训练数据学习出来。

第一个办法可以借鉴决策树中特征选择的思想,以贷款为例,特征向量={年龄,收入,有房子,婚否}。通过计算每个特征Ai在训练数据集下的信息增益: 


gi(D,Ai)=H(D)H(D|Ai)i=1,2,3,4 

得到四个信息增益值,对其做归一化处理,可得每个特征所占的权重: 

wi=gi(D,Ai)i=14gi(D,Ai) 

第二个办法借鉴投票机制,选择一种分类模型,分别训练出该特征下的分类器,并在测试集中验证正确率,以训练SVM分类器为例, 
1、在训练数据集D下分别训练出四个SVM分类器,每个分类器都是关于单特征的分类器,如分类器S1是关于单特征年龄的; 
2、在测试集Dt下分别测试四个分类器的分类效果,并统计正确分类个数countii=1,2,3,4分别表示四个特征下的正确分类数; 
3、对第二步求出的counti做归一化处理,即可得到特征的权重wi=countii=14counti

基于投票机制,还可以考虑利用缺一法来求得特征权重,过程如下: 
1、在训练数据集D下,分别训练缺少了第i个特征的分类器,如分类器S1的特征为{收入,有房子,婚否}; 
2、在测试集Dt下分别测试四个分类器的分类效果,并统计错误分类个数countii=1,2,3,4分别表示四个特征下的错误分类数。 
3、对第二步求出的counti做归一化处理,即可得到特征的权重wi=countii=14counti

阅读全文
0 0
原创粉丝点击