逻辑回归实际上是回归算法吗?

数据挖掘 算法 逻辑回归
2021-09-19 00:44:01

回归的通常定义(据我所知)是从给定的一组输入变量中预测一个连续的输出变量

逻辑回归是一种二元分类算法,因此它会产生分类输出。

真的是回归算法吗?如果是这样,为什么?

4个回答

逻辑回归首先是回归。它通过添加决策规则成为分类器。我将举一个倒退的例子。也就是说,我将从模型开始,而不是获取数据和拟合模型,以展示这实际上是一个回归问题。

在逻辑回归中,我们对事件发生的对数几率或 logit 进行建模,这是一个连续量。如果该事件的概率A 发生是 P(A),几率为:

P(A)1P(A)

那么,对数赔率是:

log(P(A)1P(A))

与线性回归一样,我们使用系数和预测变量的线性组合对此进行建模:

logit=b0+b1x1+b2x2+

想象一下,我们得到了一个人是否有白发的模型。我们的模型使用年龄作为唯一的预测变量。在这里,我们的事件 A = 一个人有白发:

白发的对数几率 = -10 + 0.25 * 年龄

……回归!这是一些Python代码和一个情节:

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

x = np.linspace(0, 100, 100)

def log_odds(x):
    return -10 + .25 * x

plt.plot(x, log_odds(x))
plt.xlabel("age")
plt.ylabel("log odds of gray hair")

我们的玩具示例的对数几率图

现在,让我们让它成为一个分类器。首先,我们需要转换对数赔率以获得我们的概率P(A). 我们可以使用 sigmoid 函数:

P(A)=11+exp(log odds))

这是代码:

plt.plot(x, 1 / (1 + np.exp(-log_odds(x))))
plt.xlabel("age")
plt.ylabel("probability of gray hair")

我们的玩具示例的白发概率图

我们需要使它成为分类器的最后一件事是添加决策规则。一个非常普遍的规则是在任何时候对成功进行分类P(A)>0.5. 我们将采用该规则,这意味着我们的分类器将在一个人超过 40 岁时预测白发,并在一个人低于 40 岁时预测非白发。

逻辑回归在更现实的例子中也很适合作为分类器,但在它成为分类器之前,它必须是一种回归技术!

简答

是的,逻辑回归是一种回归算法,它确实预测了一个连续的结果:事件的概率。我们将其用作二元分类器是由于对结果的解释。

细节

逻辑回归是一种广义线性回归模型。

在普通的线性回归模型中,连续结果 ,y被建模为预测变量及其影响的乘积之和:

y = b_0 + b_1 * x_1 + b_2 * x_2 + ... b_n * x_n + e

错误在哪里e

广义线性模型不y直接建模。相反,他们使用变换将 的域扩展y到所有实数。这种变换称为链接函数。对于逻辑回归,链接函数是 logit 函数(通常,请参见下面的注释)。

logit 函数定义为

ln(y/(1 + y))

因此逻辑回归的形式为:

ln(y/(1 + y)) = b_0 + b_1 * x_1 + b_2 * x_2 + ... b_n * x_n + e

其中y是事件的概率。

我们将其用作二元分类器的事实是由于对结果的解释。

注意:probit 是另一个用于逻辑回归的链接函数,但 logit 是最广泛使用的。

正如您所讨论的,回归的定义是预测一个连续变量。逻辑回归是一个二元分类器。逻辑回归是对通常回归方法的输出应用 logit 函数。Logit函数转(,+)[0,1]. 我认为它保留这个名字只是出于历史原因。

说“我做了一些回归来对图像进行分类。特别是我使用了逻辑回归”。是错的。

简单地说,任何假设函数f用于回归算法如果f:XR. 因此逻辑函数是P(Y=1|λ,x)=11+eλTx[0,1]用于回归算法。这里λ是从训练数据集中找到的系数或超平面 &x是一个数据点。这里,sign(P(Y=1|λ,x))被视为类。