回归的通常定义(据我所知)是从给定的一组输入变量中预测一个连续的输出变量。
逻辑回归是一种二元分类算法,因此它会产生分类输出。
真的是回归算法吗?如果是这样,为什么?
回归的通常定义(据我所知)是从给定的一组输入变量中预测一个连续的输出变量。
逻辑回归是一种二元分类算法,因此它会产生分类输出。
真的是回归算法吗?如果是这样,为什么?
逻辑回归首先是回归。它通过添加决策规则成为分类器。我将举一个倒退的例子。也就是说,我将从模型开始,而不是获取数据和拟合模型,以展示这实际上是一个回归问题。
在逻辑回归中,我们对事件发生的对数几率或 logit 进行建模,这是一个连续量。如果该事件的概率 发生是 ,几率为:
那么,对数赔率是:
与线性回归一样,我们使用系数和预测变量的线性组合对此进行建模:
想象一下,我们得到了一个人是否有白发的模型。我们的模型使用年龄作为唯一的预测变量。在这里,我们的事件 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")
现在,让我们让它成为一个分类器。首先,我们需要转换对数赔率以获得我们的概率. 我们可以使用 sigmoid 函数:
这是代码:
plt.plot(x, 1 / (1 + np.exp(-log_odds(x))))
plt.xlabel("age")
plt.ylabel("probability of gray hair")
我们需要使它成为分类器的最后一件事是添加决策规则。一个非常普遍的规则是在任何时候对成功进行分类. 我们将采用该规则,这意味着我们的分类器将在一个人超过 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函数转 到 . 我认为它保留这个名字只是出于历史原因。
说“我做了一些回归来对图像进行分类。特别是我使用了逻辑回归”。是错的。
简单地说,任何假设函数用于回归算法如果. 因此逻辑函数是用于回归算法。这里是从训练数据集中找到的系数或超平面 &是一个数据点。这里,被视为类。