概述
PULearning是一类机器学习算法,主要解决的问题是给定训练样本只有正样本和一批未标记的样本,学习一个分类器进行分类。这是一类比较难解决的问题,由于没有负样本其评估的方法不好确定;但是有很多的应用场景,例如蛋白质序列查找、噪声发现等。
常用的解决思路主要分为两步:
1. 识别出一批可靠的负样本集合。
2. 根据正负样本训练多个分类器从中选择一个最优的作为最终的分类器。
该文介绍了这两个步骤比较常用的算法。
问题求解
理论基础:如果样本集合足够大,一个好的分类器能够尽可能的将未标记样本标记为负样本同时将正样本标记为正样本。
第一阶段算法
第一阶段目标是找一些可靠的负样本。
朴素贝叶斯(NB)
流程
- 将正样本标记为1
- 未标记样本标记为-1
- 根据正负样本训练NB模型
- 对未标记样本喂入NB模型中,将标记为-1的样本当做是负样本。
Rocchio 方法
该方法的思路,将文本表示成一个向量,向量之间的余弦相似度表示文本之间的相似度;通过该思路给正样本集合表示成一个向量。
cj=α1|Cj|∑d∈cjd||d