显示带有标签的帖子 校准. 显示所有帖子
显示带有标签的帖子 校准. 显示所有帖子

2012年7月2日,星期一

P-U学习与逐点分类

一旦意识到某些事情,便随处可见。特别是当我了解到 P-U问题 我开始看到人们(隐含!)像对待普通数据集一样对待P-U数据集的例子。令人惊讶的是,这似乎通常可以解决,我发现了Elkan和Noto撰写的一篇论文, 仅从肯定和未标记的数据中学习分类器 这有助于解释原因。

在Elkan和Noto模型中,在$ X \ times \ {0,1 \} $采样上有一个分布$ D $,从中可以构成传统的数据集。但是,我们取而代之的是通过$ X \ times \ {0,1 \} $定义的分布$ D ^ \ prime $通过
  1. 画$ {x,y)\ sim D $。
  2. 如果$ y = 0 $,则$ s = 0 $。
  3. 如果$ y = 1 $,则$ s = 1 $,概率为$ p(s = 1 | y = 1)$,独立于$ x $;否则$ s = 0 $。
  4. 输出$(x,s)$。
注意这些是更强的假设,然后在 针对P-U问题优化AUC;在那种情况下,只需要假设能够从阳性标记和未标记的分布中提取样品。在这里,我们做出两个更强的假设:未贴标签和正面示例的生成是``同时''的,而正面标签检查过程与功能无关。

除了警告之外,上述观察模型产生了一些有趣的结果。首先是\ [
p(s = 1 | x)= p(y = 1 | x)p(s = 1 | y = 1),
\],即观察到的数据集中阳性标记的概率与基础未观察到的数据集中阳性标记的概率成正比。这意味着只需在 适当的计分规则 使用P-U数据集应该近似于与真实概率成比例的值。根据可能足以实现良好性能的总体决策问题,我怀疑这就是为什么有时会天真的使用逐点分类的原因。

Elkan和Noto揭示了上述观察模型的其他有趣含义。他们注意到\ [
p(s = 1 | y = 1)= \ mathbb {E} _ {(x,s)\ sim D ^ \ prime} \ left [p(s = 1 | x)\,\ bigl | \,s = 1 \ right],
\],即一旦训练了一个分类器以近似$ p(s = 1 | x)$,就可以通过从$ D ^提取另一个样本来估计比例常数$ p(s = 1 | y = 1)$。 prime $并在正面示例中平均分类器输出。这意味着分类器可以相对于(不可观察!)基础分布进行(大约)校准。

此外,它们显示了如何根据期望wrt $ D ^ \ prime $,\ [来关联任意期望wrt $ D $。
\ begin {aligned}
&\ mathbb {E} _ {(x,y)\ sim D} \ left [f(x,y)\ right] \\
&= \ mathbb {E} _ {(x,s)\ sim D ^ \ prime} \ left [f(x,1)1_ {s = 1} + \ bigl(w(x)f(x,1) +(1-w(x))f(x,0)\ bigr)1_ {s = 0} \ right],
\ end {aligned}
\]其中\ [
w(x)= p(y = 1 | x,s = 0)= \ frac {1- p(s = 1 | y = 1)} {p(s = 1 | y = 1)} \ frac {p (s = 1 | x)} {1-p(s = 1 | x)}
\]是一个加权函数,将未标记的示例视为正例和负例的概率混合。注意,计算加权函数仅需要在P-U数据集$ p(s = 1 | x)$上训练的分类器,以及通过上一段的过程估算的归一化常数$ p(s = 1 | y = 1)$。这真的是很酷的东西:在最初的密度估计预处理步骤将P-U数据集转换为普通数据集之后,基本上利用这一功能可以解决许多不同的学习问题。

我什么时候应该使用它?

通常,我会谨慎地应用此技术。

在以一种方式收集正样本而以另一种方式收集未标记样本的情况下,Elkan和Noto观测模型的同时假设不是一个很好的选择。而 优化AUC 自然适用于这种情况。

对于固定图上的链接预测,底层分布是指标函数的(大!)总和,因此同时性假设似乎是安全的。但是,条件独立性$ s \ perp x | y $的假设可能很危险。例如,在Facebook,女性可能更可能发起并接受朋友的请求,这将使标签审查的可能性取决于功能。

我个人认为,当我具有复杂的目标函数并且想利用度量结果的变化来加权数据时,我很可能会使用此技术。我的直觉说,即使观察模型不准确,重要性加权也可能弊大于利(相对于重要性加权而不是将未标记的样本视为负面样本)。

当然,如果需要校准的估计器,那么优化AUC是不够的,Elkan和Noto技术变得更具吸引力。有时校准是必不可少的,例如在eHarmony,我不得不生成线性程序消耗的估计值。但是,通常校准似乎必不可少,但并非必需。你可以做 选择分类主动学习 未经校准;您可以将以前训练有素的模型合并到集成的决策系统中,而无需校准模型;你甚至可以定价 广义第二价格 样式的关键字竞价,而无需经过校准的点击率估算器。

2012年6月27日,星期三

等级+ IR

门农等等在有论文 ICML 2012用排名损失预测准确的概率。基本思想是针对排名损失(例如AUC)训练分类器,然后使用 等渗回归 校准分类器。与使用 适当的计分规则 (例如,逻辑回归),此过程会非参数地探索链接函数的空间,并声称这会带来更好的结果。请注意,从模型复杂性的角度来看,非参数地探索链接函数的空间在直觉上是``安全的'',因为这是一维过程,对基础分类器输出的分数进行运算。

事实证明,我们在eHarmony意外地支持了这一点。当我加入生产系统时,顺序交付了比赛,所以我们从排名损失开始。后来,生产系统转而使用线性程序进行比赛,最简单的方法是在训练流水线的末尾添加校准步骤,然后使用线性插值进行等渗回归。我们想改用具有正确评分规则的直接训练进行分类,但是我们开始 对负数进行二次采样 因此我们需要继续校准分类器,因此从未发生过。我们一直都在怀疑自己是``不连贯的''。嘿,幸运总比好要好。现在,如果我发现自己将来处于类似情况,那么我将能够阐明该方法的基本原理。

这里的元课程是,如果您是一名应用机器学习的从业人员,并且看到上面写有Charles Elkan的名字的论文,则应该阅读。我还没有失望。

2010年8月25日,星期三

校准问题:第二部分

在一个 以前的帖子 我谈到了一个估计器,该估计器已过追溯校准,但前瞻性似乎极度错误校准。用于校准的历史数据是使用不同的决策程序生成的,而最近的数据是通过将模型与线性程序结合使用来生成决策的结果。我对为什么会发生这种情况,是否可以校正校准以及是否应该校正校准有一些疑问。

好吧,我肯定可以校正校准。我将(mis)校准图拟合到样条曲线,并用它来定义一个新的估算器,该估算器是旧的估算器,然后进行非线性输出校正。我在生产中同时运行了原始模型和重新校准的模型一段时间,并检查了每个模型的校准:这是结果。
红色=原始,绿色=重新校准
因此,我对线性程序与校准校正冲突的担心似乎是没有根据的:看起来我的校正基本上没有经过修改。

关于为什么模型校准不当,也许我对回归降低的怀疑使我过快地将问题归咎于险恶的LP。也许刚开始时校准只是搞砸了,或者某个地方的模型实现中存在错误。

在校准是否应修正的最重要的问题,我很伤心地说,在任何重要的业务相对于原来与重新校准模型的使用度量几乎没有变化。 无论如何,我们都会切换到重新校准的模型,因为它感觉更好。

2010年8月5日,星期四

校准难题

给定博客标题中的“实践”一词,我应该真正发布一些有关实际数据的实际问题的信息。所以这是我们最近遇到的一个问题,与我的 目前的痴迷。考虑下图
该图显示了我们最近建立的模型的预测动作值(x轴)与观察动作值(y轴)(实际上每个x点定义了一个较小的值区间,每个y点是估算值在间隔内的操作)。红点是数据,绿线是作为参考显示的$ y = x $。该模型将估计的动作值作为系数提供给线性程序,该线性程序的输出确定实际采取的动作,该图表明该模型运行不佳。这引起了一些问题
  1. 为什么校准这么差?
  2. 可以纠正吗?
  3. 应该纠正吗?
为什么校准这么差? 您可能想知道模型是否曾经被校准过。它是,但是在使用不同决策程序选择的动作的历史数据集上。我可以想到几种可能性。

首先,宇宙可能是不平稳的。但是,训练数据并不那么老,并且使用临时的样本外数据来完成模型构建期间的验证。所以我不认为这可以解释。

其次,对历史数据进行校准可能会产生误导。我们知道 情境强盗问题 当给定的历史数据仅揭示了所选备选方案的价值时(即未获悉有关未采取的行动的任何信息),观察到的报酬必须被行动概率所打折,并且有可能将其推广到历史概率很小或没有的可能性。我们没有考虑任何因素。

第三,我发现最有趣的是,驱动该校准图的数据可能会产生误导。特别是,任何估算器都会产生高估错误和低估错误;但是,当将这些估算值馈入线性程序(正在执行程式化的argmax)时,通常会选择过高估算值,而通常会抑制过低估算值。

图的形状使第三种解释可信。线性程序中基本上有两种系数,尽管相同的模型可以估计两种系数,但是每种类型的系数都分别进行了校准。因此,右侧有较大的接触网样式,左侧则有较小的压缩接触网。在这两种情况下,校准在低端和高端均良好,而在中间时始终低估。在低端,低估可能难以实现,因此与这种解释是一致的。为什么校准在高端看起来不错,为什么还不清楚。

实际上,由于通过线性程序选择了高估,我实际上预期会有很小的影响,但是失真的幅度使我感到惊讶,因此我认为第三个解释只是部分解释。

可以纠正吗? 这是一个思想实验:假设我将上述图形拟合到样条曲线以创建校准校正,然后定义一个新模型,该模型与旧模型相同,但输出通过了校准校正。然后,我在线性程序中使用此新模型进行决策。怎么了?特别是,以后的校准图会看起来更好吗?

我不确定会发生什么。感觉线性程序将继续偏爱高估而不是低估,以此来对抗我的校准尝试,从本质上迫使我必须系统地低估才能校准极端值。那时,线性程序可能会切换为使用其他(范围)估计值,而我最终可能会玩“ w鼠”游戏。如果这是真的,那么可能的一种方法是遗忘地做出一小部分决策(例如,通过为他们分配随机分数并将其混入),然后仅使用这些决策来校准模型。

不太悲观的是,我确实怀疑旧模型(未校正的)和新模型(校正的)的某些凸面组合在上述图表的意义上似乎更易于校准。

应该纠正吗? 这是一个大问题:如果使上图看起来更像$ y = x $,与该决策问题相关的业务指标是否会改善?我不清楚,因为上面的图表基本上代表了极高的价值:我们看不到未采取的决定是怎么回事。也许答案是肯定的,因为低估模式看起来足够系统化,可能是我们正在解决的线性程序的特征:在这种情况下,校准极值并弄糟均值仍然是一件好事。也许答案是否定的,因为低估模式是与线性程序耦合的校准估计器的特征,并且通过尝试对其进行校正,线性程序最终会得到错误的信息以做出决策。

好吧,我们将运行与该校准问题有关的实时测试,因此希望在未来几周内我将对这个问题进行更多的说明。