如何估计 SGDClassifier/Logistic 回归的类别概率(或权重 W)的不确定性?

Posted

技术标签:

【中文标题】如何估计 SGDClassifier/Logistic 回归的类别概率(或权重 W)的不确定性?【英文标题】:How to estimate uncertainties in class probabilities (or weights W) for SGDClassifier/Logistic regression? 【发布时间】:2016-10-17 00:04:27 【问题描述】:

我有一个二进制分类任务,我适合使用带有日志丢失的 SGDClassifier。对于预测,我对类概率(predict_proba)感兴趣,而不仅仅是类标签。

我需要对这些概率的不确定性进行估计,例如,对正类的不确定性,即:

                     p(x|positive_class) = p0 +/- delta

p0 以 predict_proba(x)[0] 的形式给出,但有没有办法估计 delta?

我能想到的另一种方法是通过权重 W 的不确定性并使用逻辑函数 p=1/[1+exp(-W.x)] 将不确定性从 W 传播到 p?

【问题讨论】:

【参考方案1】:

首先

p(x|positive_class) 

生成样本x的概率,因此您需要生成模型。 LR是discriminative模型,SGD不是模型而是学习它的方式(但是sklearn中SGDClassifier实现的损失函数都是有判别性的)。

你可能想知道

p(positive_class|x) = A +/- eps

不幸的是,答案是你不能。像这样的模型不提供置信区间。您可以做以下两件事之一:

训练一个不同的模型,直接提供它,比如高斯过程 使用您的分类器作为构建块构建元模型,例如,您可以训练一组 LR,每个 LR 在训练数据的子集(重新采样)上,并使用一组预测来估计置信区间(通过假设错误的正态分布并简单地报告模型 p_i) 上的 var(p_i(positive_class|x))

【讨论】:

以上是关于如何估计 SGDClassifier/Logistic 回归的类别概率(或权重 W)的不确定性?的主要内容,如果未能解决你的问题,请参考以下文章

如何估计用户的实际位置?

如何估计深度学习需要多少 GPU 内存?

您如何测试回归估计参数(拟合数据)的显着性?

如何在 pyspark 数据框列上拟合内核密度估计并将其用于创建具有估计的新列

如何围绕模型估计手动绘制 SE/CI

如何估计 SQL Server 索引大小