PU learning简介

refer: https://blog.csdn.net/anshuai_aw1/article/details/89475986

一、引言
在现实生活中,有许多只有正样本和大量未标记样本的例子。这是因为负类样本的一些特点使得获取负样本较为困难。比如:

负类数据不易获取。
负类数据太过多样化。
负类数据动态变化。
举一个形象点的例子:比如在推荐系统里,只有用户点击的正样本,却没有显性负样本,我们不能因为用户没有点击这个样本就认为它是负样本,因为有可能这个样本的位置很偏,导致用户没有点。

因此,有研究人员开始关注PU Learning(Positive-unlabeled learning),即在只有正类数据和无标记数据的情况下,训练binary classifier。PU Learning是半监督学习的一个重要研究方向,伊利诺伊大学芝加哥分校(UIC)的刘兵(Bing Liu)教授和日本理化研究所的杉山将(Masashi Sugiyama)实验室对PU Learning有较深的研究。他们在AAAI、NIPS、ICML等顶级会议上发表了很多关于PU Learning的文章。详细见参考文献【3】【4】。

我们在本篇博客中重点介绍常见且实操性比较强的PU learning的技巧。

二、PU learning的一些技巧
人们对PU learning的方法一直非常感兴趣。 由于标准机器学习问题(利用大量正面和负面样本用于训练模型)有了充分的发展,因此在监督学习的基础上,有许多方法经过巧妙调整可以来进行PU learning。

下面对这些技巧进行简要的总结。

2.1 直接利用标准分类方法
直接利用标准分类方法是这样的:将正样本和未标记样本分别看作是positive samples和negative samples, 然后利用这些数据训练一个标准分类器。分类器将为每个物品打一个分数(概率值)。通常正样本分数高于负样本的分数。因此对于那些未标记的物品,分数较高的最有可能为positive。

这种朴素的方法在文献Learning classifiers from only positive and unlabeled data KDD 2018 中有介绍。该论文的核心结果是,在某些基本假设下(虽然对于现实生活目的而言可能稍微不合理),合理利用正例和未贴标签数据进行训练得到的标准分类器应该能够给出与实际正确分数成正比的分数。

2.2 PU bagging
一个更加复杂的方法是bagging的变种:

通过将所有正样本和未标记样本进行随机组合来创建训练集。
利用这个“bootstrap”样本来构建分类器,分别将正样本和未标记样本视为positive和negative。
将分类器应用于不在训练集中的未标记样本 - OOB(“out of bag”)- 并记录其分数。
重复上述三个步骤,最后为每个样本的分数为OOB分数的平均值。
这是一种bootstrap的方法,可以理解为之前我们会想到随机抽取一部分未标记样本U作为负样本来训练,在这里会设置迭代次数T,根据正样本的个数,每次都随机可重复地从U中选取和P数量相同的样本作为负样本N,并打上标签,每次迭代都重复进行取样->建模->预测的过程,最后的预测概率使用T次迭代的平均值作为最终预测的概率。

参考文献:A bagging SVM to learn from positive and unlabeled examples ,PRL 2014

2.3 两步法
大部分的PU learning策略属于 “two-step approaches”。该方法的思想也很直观:

识别可以百分之百标记为negative的未标记样本子集(这些样本称为“reliable negatives”。)所谓的百分之百只是一个夸张的说法,通常我们可以用正样本和未标记样本训练一个模型,然后对未标记样本进行预测,按照概率排序,选取前面的样本作为reliable negatives。
使用正负样本来训练标准分类器并将其应用于剩余的未标记样本。
通常,会将第二步的结果返回到第一步并重复上述步骤。即每一轮循环都会找出那些所谓百分之百的正样本和负样本,加入到训练集里,重新预测剩余的未标记样本,直到满足停止条件为止。

参考文献:An Evaluation of Two-Step Techniques for Positive-Unlabeled Learning in Text Classification

三、代码实现
参考文献【1】【2】给出了以上3种方法的代码。参考文献【7】给出了第2种方法的代码。

我们以参考文献【1】【2】为例:作者在多种人工数据集和多个正样本比例上做了大量的实验,也对比了决策树和SVM作为基学习器的效果。实验完备详细,代码清晰易懂。

囿于篇幅,我们从中挑选出一个例子,进行介绍:

人工构造了Circles数据集,如下图所示:


上图一共有6000个样本点,真实得正样本和负样本均为3000个,只不过,我们只知道其中300个正样本,剩余的5700个样本认为是unlabeled样本。在该数据集上,分别应用以上3种方法,结果分别为:



我们对比一下3种方法的性能,这里的性能指的是:对于预测的样本(5700个),依次取前100,200,300直到2700个(剩余的真的正样本的个数)样本,看下取出的这些样本真正是正样本的概率。(看不明白的,可以详细看下代码)。


图中Average score是3种方法的平均。可以看出来,在有300个正样本的Circles数据集上,PU bagging的方法最好。

根据参考文献【1】的所有实验,我总结出以下的结果,详细请参考原文:

注:所有的数据集都是6000个样本,2类,每一类为3000个。我们已知的正样本的数目为hidden_size。

①对于Circles数据集:

hidden_size为1000时,Standard方法最好,PU bagging最差。
hidden_size为300时,PU bagging方法最好,Standard最差。
hidden_size为30时,PU bagging方法最好,Standard最差。
②对于Two moon数据集:

hidden_size为1000时,Standard方法最好,PU bagging最差。
hidden_size为300时,PU bagging方法最好,Standard最差。
hidden_size为30时,PU bagging方法最好,Standard最差。
③对于Blobs数据集:

hidden_size为1000时,Standard方法最好,PU bagging最差。
hidden_size为300时,PU bagging方法最好,Standard最差。
hidden_size为30时,PU bagging方法最好,Standard最差。
④对于PU bagging方法:
决策树作为基分类器的效果比起SVM作为基分类器的效果差。

通过上述的结果,和各个方法的理论,是否可以大胆做出一个结论呢?即随着已知正样本比例的减少,PU bagging最好,Standard最差,两步法居中。如果我们的正样本的比例只占全部样本的很小的部分,根据上述的结论,应该选用PU bagging策略。

参考文献
【1】Positive-unlabeled learning
【2】PU learning techniques applied to artificial data
【3】Masashi Sugiyama’s Publications
【4】PU Learning - Learning from Positive and Unlabeled Examples
【5】只有正样本和未标签数据的机器学习怎么做?
【6】Positive-unlabeled learning
【7】PU_Learning_simple_example.ipynb
————————————————
版权声明:本文为CSDN博主「anshuai_aw1」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/anshuai_aw1/article/details/89475986
【7】基于XGBoost的PU-Learning
————————————————
版权声明:本文为CSDN博主「anshuai_aw1」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/anshuai_aw1/article/details/89475986

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342