逻辑回归 – 计算每个属性对最终概率的贡献

我试图计算一个观察值的每个属性对逻辑回归给出的最终概率的贡献。我已经用我的数据集训练了Python的sklearn逻辑回归。现在我正在用它对实时数据集进行预测。我想知道每个属性(X)对sklearn的predict_proba方法给出的最终预测的贡献程度。

以下是通过逻辑回归计算概率的公式。

ln p/(1-p)=α+ β^T X

p; 1的概率α; 偏置β^T; 系数转置X; 属性值


回答:

二元逻辑回归

假设是二元逻辑回归,事情相当简单;您对输入的每个特征都有权重,经过训练后,这些权重会增加或减少概率。

假设您有4个特征,输出为01。假设训练后的这些特征的系数分别为:

[0.0, -2.2, 1.3, -0.45]

在这里,您可以轻松看出,第二个(从0开始编号)特征的权重为1.3,如果此输入特征对于特定示例大于零,则会增加概率(换句话说,特征2与概率呈正相关)。

另一方面,第一个特征(-2.2)与概率呈负相关,而第零个特征无论其值如何,对概率结果都没有影响。

您可以通过以下方式获取这些系数/权重:

clf.coeffs_

假设您的LogisticRegression名为clf

多项逻辑回归

一般来说,多项逻辑回归将有一个特征矩阵,每行代表一个标签的概率。

再一次,假设您想将输入分类为5个类别之一,并且有34个输入特征,假设学习后的权重矩阵如下所示:

[    [0.1, 2.2, -0.1, 0.133], # 类别0的特征    [-2, -1.1, 0, 4.56],    [-0.1, 0, 0.3, 0.4],    [3.3, -2, 15, -9.4],    [0.45, 0.5, 0.66, 5.5],]

现在您可以应用上述相同的思路;让我们看看这4个特征中的每一个如何贡献于输出标签3的概率,所以我们取这一行:

[3.3, -2, 15, -9.4]

您可以看到特征02与输出标签3的概率呈正相关,而特征13呈负相关。

偏置

偏置贡献了先验知识。假设所有权重为零。在二元情况下,只有一个偏置,因此它会输出较小的概率(负偏置)或较大的概率(正偏置)。

在多项情况下,每个类别都有一个偏置,但其作用类似。

系数的贡献

您可以将权重归一化到[-1, 1]范围内,其中最大的负权重对输出零概率的影响最大,最高的正权重对输出概率为1的影响最大。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注