Relation Extraction中SVM分类样例unbalance data问题解决 -松弛变量与惩罚因子

1、问题描述

做关系抽取就是要从产品评论中抽取出描述产品特征项的target短语以及修饰该target的opinion短语,在opinion mining里面属于很重要的task,很多DM、NLP相关的paper在做这方面的工作。基本的思路是:

(1)从sentence的parse tree(比如stanford parser)中选取候选target结点和候选opinion结点,然后对所有的候选target和opinion组合选取features,用SVM进行训练分类。

(2)给定种子opinion words,借助parse tree中的path rules,多次迭代抽取新的target和opinion,称为Double Propagation (Qiu et al, IJCAI'09)

  (3)  采用Tree kernel 的方法进行关系抽取(Wu et al, EMNLP'09)

如果采用第一种思路,在用SVM分类时就会遇到正负样例不均衡的问题。原因是,即便候选target和opinion抽取的recall和presicion可以达到100%,其不同的组合中也是负样例居多,正样例比例很少。我做实验时,遇到正负样例的比例为1:9,用SVM分类时,所有测试样例均被分类道来负样例中,这样的问题称为Unbalanced Data分类。


2、解决办法

对不同类别设置不同的惩罚因子。要用到LibSVM 的–C及-W选项。详细解释见《LIBSVM: A Library for Support Vector Machines》论文第6部分Unbalanced Data and Solving the Two-variable Sub-problem。C是惩罚因子,可以针对正负样本使用不同的惩罚值。 可以认为这个惩罚值 是指 对要训练的分类器 发生误判的惩罚程度。

比如:对于unbalanced的数据集,假设正样本+1占10%,负样本-1占90%, 正负样本比例为1:9. 按道理来说,我们训练svm分类器时,如果将+1样本误判为-1样本,我们需要加大惩罚力度。结合Libsvm FAQ中所说的例子,“svm-train -s 0 -c 10 -w1 1 -w-15 data_file 。 the penalty for class"-1" is larger. Note that this -w option is for C-SVC only”。
那么要解决关系抽取中unbalance data问题,命令应该是:svm-train -s 0 -c 10 -w1 9-w-1 1 data_file ,相当于采用C-SVC模式,对+1误判惩罚为10*9=90, 对-1误判为10*1=10,这样的设置会让分类器倾向分出更多的正样例来,这样分类结果就不再是全为-1了。并且,我们还可以进一步实验不同惩罚因子设置的情况下分类的准确率和召回率。


3、SVM中的松弛变量与惩罚因子

这一部分转自 http://blog.csdn.net/qll125596718/article/details/6910921,对松弛变量和惩罚因子的介绍非常通俗易懂。

3.1 松弛变量

现在我们已经把一个本来线性不可分的文本分类问题,通过映射到高维空间而变成了线性可分的。就像下图这样:

       圆形和方形的点各有成千上万个(毕竟,这就是我们训练集中文档的数量嘛,当然很大了)。现在想象我们有另一个训练集,只比原先这个训练集多了一篇文章,映射到高维空间以后(当然,也使用了相同的核函数),也就多了一个样本点,但是这个样本的位置是这样的:

       就是图中黄色那个点,它是方形的,因而它是负类的一个样本,这单独的一个样本&
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值