【每周一文】Learning Classifiers from Only Positive and Unlabeled Data(2008)

概述

本文也是用于求解PULearning问题,并且提出在样本满足一定分布情况下,根据正样本和未标记样本作为负样本训练出来的分类模型,预测出来的结果和该样本属于正样本的概率存在一个固定常数系数。
根据该假设提出两种模型训练思路,能够得到最好的效果。

问题求解

对于给定的样本数据引入第三个随机变量S表示该样本是否被标记过,则p(x,y,s)满足一定的概率分布。
变量含义x为样本特征数据;y为样本标签,y=1表示为正样本;s=1表示该样本是否是标记过的样本,如果s=1则该样本被标记过,此时y肯定为1.
问题转变为求解p(y=1|x,s=0)的概率。
根据以上随机变量定义,则有:
p(s=1| x,y=0)=0,如果某样本为负样本并且该样本标记为1,和假设矛盾,概率为0;即只有正样本被标记。
此外还假设正样本选取满足一个概率分布,和特征没有关系,即p(s=1|x,y=1)=p(s=1|y=1),即“selected completely at random”这里我们将此值即为c=p(s=1|y=1)

原理

根据以上假设样本数据是按照某分布p(x,s,y)生成的,并且满足以上两个条件。
假设g(x)是对数据s=1和s=0得到的分类器,目标转换为寻找真实分类器f(x)和g(x)的关系。

p(y=1|x) = p(s=1|x)/c
1. 即f(x)和g(x)只相差一个常数值。
2. 简单推导P(y=1|x)=p(y=1^s=1|x) —前提假设
=p(y=1|x)p(s=1|y=1,x) —-条件概率
=p(y=1|x)p(s=1|y=1) ——前提假设2

常数C的估计算法

根据上述定理,问题转换为求解常数c,有几个策略可以用于估计c
一般思路是通过交叉验证获取,假设交叉验证集合为V,其中正样本集合为P。

策略一: e1=1nxPg(x) ,如果x为正样本此时g(x)=p(s=1|y=1)
策略二: e2=xPg(x)xVg(x)
策略三: e3=maxxVg(x)
在实际中策略一比较好用并且效果较好,相对于三偏差较小。

样本加权

根据上述定理可以认为样本的权重是不一样的,对某个估计量进行估计时转换为对带权重的样本进行预估。

可以推导得到如下结论
p(y=1|x,s=1)=1
p(y=1|x,s=0)=1ccp(s=1|x)1p(s=1|x)
此时E[h(x,y)]转换为

E[h]=1m(x,s=1h(x,1)+x,s=0(w(x)h(x,1)+(1w(x)h(x,0))))

就是说将正样本看出权重为1的样本;未标记的样本看出两份数据一份是权重为w(x)且标签为1和权重为1-w的且标签为0.

其中w(x)=p(y=1|x,s=0)

此时根据传统分类器g(x)就可以将每个样本加上一个权重,此时可以用带样本权重的分类器进行进一步的分类,可以取得更好的效果。

进一步优化

由于

c=p(s=1|y=1)=p(y=1|s=1)p(s=1)p(y=1)...=p(s=1)p(y=1)

其中p(s=1)可以很容易的估计,问题转换为p(y=1),即某个样本属于正例的先验概率。
估计方法有:
方法1:根据上述介绍取h(x,y)=y此时有
E[y]=p(y=1)=1m(x,s=11+x,s=0(w(x)1+(1w(x)0)))=1m(n+x,s=0w(x))

方法2:2014年一篇论文提出将p(y=1)类别先验通过部分匹配的策略进行求解,部分匹配采用Pearson离散度进行求解,并且证明该文提出的方法只是该方法的一个特例。
方法3:该优化只要是针对模型选择上,SVM是一个未经校准的模型,转换为概率时一般通过isotonic 回归进行校准。但是合页损失函数会导致误分类,因此提出采用非凸损失函数进行模型训练,损失函数采用ramp loss
l(z)=12max(0,min(2,1z))
实验证明效果较好。
并且采用类似算法最终误差能够保证最大误差倍数为 22

结论

该文根据两个前提假设条件,提出了一个非常漂亮的结论。根据该结论可以很容易的构造PULearning算法,并且还有理论保证。

注其他两篇PULearning论文,偏理论证明。
1. Class Prior Estimation from positive and Unlabelled Data(2014)
2. Analysis of Learning from Positive and Unlabeled Data(2016)

猜你喜欢

转载自blog.csdn.net/fangqingan_java/article/details/50918591
今日推荐