【每周一文】Building Text Classifiers Using Positive and Unlabeled Examples(2003)

概述

PULearning是一类机器学习算法,主要解决的问题是给定训练样本只有正样本和一批未标记的样本,学习一个分类器进行分类。这是一类比较难解决的问题,由于没有负样本其评估的方法不好确定;但是有很多的应用场景,例如蛋白质序列查找、噪声发现等。
常用的解决思路主要分为两步:
1. 识别出一批可靠的负样本集合。
2. 根据正负样本训练多个分类器从中选择一个最优的作为最终的分类器。
该文介绍了这两个步骤比较常用的算法。

问题求解

理论基础:如果样本集合足够大,一个好的分类器能够尽可能的将未标记样本标记为负样本同时将正样本标记为正样本。

第一阶段算法

第一阶段目标是找一些可靠的负样本。

朴素贝叶斯(NB)

流程

  1. 将正样本标记为1
  2. 未标记样本标记为-1
  3. 根据正负样本训练NB模型
  4. 对未标记样本喂入NB模型中,将标记为-1的样本当做是负样本。

Rocchio 方法

该方法的思路,将文本表示成一个向量,向量之间的余弦相似度表示文本之间的相似度;通过该思路给正样本集合表示成一个向量。

cj=α1|Cj|dcjd||d||β1DCjdDCjd||d||

一般情况下为突出正样本的重要性,将参数 α=16,β=4
此时可以根据到正样本向量的距离决定负样本集合。

S-EM中的间谍技术

主要思路是从正样本集合中P中选取部分数据S(一般为15%)混入未标记样本中,然后利用该份数据训练一份NB模型;利用数据集合S和模型确定一个阈值;最后对数据集U进行预测,小于阈值的识别为负样本。
算法如下:
这里写图片描述

1-DNF技术

特征筛选方法,通过对比正样本和未标记样本,找到正样本集合中的显著特征或者词语PF;只要未标记样本中的特征不出现在PF中,则认为是一个强负样本。
算法如下
这里写图片描述

第二阶段算法

第二阶段的最要目标是训练一个正常的分类器对文本进行分类。

SVM算法

以合页损失函数作为优化目标的分类器。

迭代SVM算法

一个迭代算法,根据正样本集合P和负样本集合RN,训练分类模型对U-RN进行预测,将预测出来的结果加入到RN中,直到U-RN为空。如果样本数据有噪声或者本身就不可分,则该算法可能不会收敛。
算法如下:
这里写图片描述

并且最后选出的SVM模型不一定就是最好的,还需要一定的策略进行选取,例如根据模型误差从一系列模型中选择一个最优的。

Biased SVM

该文提出了一个效果最好的用于第二阶段的算法,根据SVM模型演化而来。
求解目标为

min12wTw+C+i=1...kϵi+Cj=k...nϵjyi(wTx+b)1ϵiϵi0

将正负样本的权重分开对待,对于PULearning问题要尽量将正样本分开,因此正样本的权重系数C比较大。

评估

该文还有一个比较大的贡献是提出了一个评估方法用于该类算法的评估。

F=pr/Pr[Y=1]=r2/Pr[F(X)=1]
其效果和一般分类器的F值效果类似。

结论

对于文本的PULearning问题,该文总结了常用的求解思路,并且根据SVM给出一个biaed SVM算法,效果最好。
在工作中如果没有人力投入进行标注,可以考虑该类方法进行文本分类。

猜你喜欢

转载自blog.csdn.net/fangqingan_java/article/details/50917906