逻辑回归实际上是回归算法吗?
-
16-10-2019 - |
题
回归的通常定义(据我所知)是 从给定的一组输入变量预测连续输出变量.
逻辑回归是一种二进制分类算法,因此它会产生分类输出。
它真的是回归算法吗?如果是这样,为什么?
解决方案
逻辑回归是回归,首先是回归。通过添加决策规则,它成为分类器。我将举一个倒退的例子。也就是说,我将从模型开始,而不是采用数据并拟合模型,以说明这是如何真正的回归问题。
在逻辑回归中,我们正在建模事件发生的日志赔率或logit,这是连续数量。如果发生$ a $的可能性为$ p(a)$,则赔率为:
$$ frac {p(a)} {1 -p(a)} $$
因此,日志赔率是:
$$ log left( frac {p(a)} {1 -p(a)} right)$$
与线性回归中一样,我们以系数和预测指标的线性组合对此进行建模:
$$ operatatorName {logit} = b_0 + b_1x_1 + b_2x_2 + cdots $$
想象一下,我们得到了一个人是否有白发的模型。我们的模型使用年龄作为唯一的预测指标。在这里,我们的活动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)= frac1 {1 + exp( - text {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
是事件的概率。
我们将其用作二进制分类器的事实是由于对结果的解释。
注意:概率是用于逻辑回归的另一个链接函数,但logit是最广泛使用的。
当您讨论回归的定义时,预测一个连续变量。 逻辑回归 是二进制分类器。逻辑回归是logit函数在常规回归方法的输出中的应用。 logit函数转(-inf,+inf)到[0,1]。我认为仅出于历史原因才能保持这个名字。
说“我进行了一些回归来对图像进行分类。特别是我使用逻辑回归”。是错的。
简单地说任何假设的功能 $ f $ 如果可以进行回归算法 $ f:x rightarrow mathbb {r} $. 。因此,逻辑功能是 $ p(y = 1 | lambda,x)= dfrac {1} {1+e^{ - lambda^tx}}} in [0,1] $ 制造回归算法。这里 $ lambda $ 是从训练有素的数据集中发现的系数或超平面 $ x $ 是一个数据点。这里, $ sign(p(y = 1 | lambda,x))$ 被视为课。