Logistic回归详细说明

Tavish Aggarwal.

Logistic回归是二进制分类模型,即,在输出是分类变量的情况下,它将有助于进行预测。

我们无法绘制一条线并将数据点分为两个类。所以我们可以使用曲线也称为乙状曲线。 SIGMOID函数表示为:

北京快3app 1 \ over {1 + e ^ { - (\ beta_0 + \ beta_1x)}} 北京快3app

我们知道线性回归被表示为:

北京快3app h_ \ theta(x)= w ^ tx 北京快3app

并且Logistic回归表示为\(h_ \ theta(x)= g(w ^ tx)\),我们可以表示\(z \)= \(w ^ tx \)。因此,\(g(z)\)表示为:

北京快3app g(z)= {1 \ over {1 + e ^ { - z}} 北京快3app

称为SIGMOID函数或逻辑函数的上述功能是图形表示的,如下所示:

 符切函数

Sigmoid曲线的属性是:

  1. 它在开始时具有极低的值。
  2. 最后它具有极高的值。
  3. 它在中间有中间值。

你想知道为什么我们不能融合直线,我们符合符合统治功能或物流功能吗?我们不能使用直线或线性回归的原因如下:

  • 直线不够陡峭。在Sigmoid曲线中,我们有很多点的值低,那么值突然上升,之后你有很多高值。
  • 在线性回归中,对于我们只需要0或1作为输出,输出可以远大于1或显着小于0。
  • 在一条直线中,值从低到高于非常均匀,因此,边界区域(概率从低到高电平的概率转换)不存在。

由于上述原因,我们需要不同的分类问题算法,我们不能使用线性回归。

笔记:  Logistic回归模型使用线性线分隔两种不同的类。 S形曲线仅用于计算类概率。基于建立模型后选择的截止值预测最终类。

最适合乙状曲线

正如我们在S形函数中所见,我们需要找到最适合的β0和β1。最佳拟合型曲线是最大化下面所示产品的值的曲线。

考虑一个示例,我们有几个属于1或0的点。请参阅下图所示的图:

 似然函数

我们的目标是找到六曲线曲线,使得((1-P_1)(1-P_2)(1-P_3)(1-P_4)(1-P_6)(P_5)(P_7)(P_8)(P_8)(P_9)(P_9)(P_9)( p_10)\)最大化。该产品称为可能性功能。

为了找到最佳拟合齿形曲线的β0和β1,除非我们到达最大化可能性的人,否则我们必须尝试大量组合。

这种声音与线性回归问题没有类似吗?我们发现β0和β1,直到我们具有最小化成本函数的组合。

现在,下一个杂交是找到优化β0和β1的值。用于找到β0和β1的优化方法是最大似然估计(MLE)。

最大可能性估计(MLE)

与线性回归模型不同,它与参数估计的普通最小二乘使用,我们使用Logistic回归的最大似然估计。

Mle基本上是一种技术,可以找到最大化观察数据点的可能性,假设它们是通过给定的分布生成的,如正常,伯努利分布等。在直接跳到MLE以获得Logistic回归之前,我们将首先看看MLE对于连续和离散的分布。

  • 最大可能性成本函数
  • 连续分布的最大似然估计
  • 离散分布的最大似然估计
  • Logistic功能的最大似然估计
  • 通过迭代技术估算参数
    • 梯度下降
    • 牛顿 - 拉赛方法

最大可能性成本函数

让我们从最大似然成本函数的推导开始。

假设我们从某些过程中观察到了N个数据点。例如,这里,每个数据点代表人的高度。对于这些数据点,我们假设可以通过高斯(普通)分布来充分描述数据生成过程。

 正常分布

笔记: 如上图所示,可以有多个均值μ,但我们需要找到均匀的均匀μ和标准偏差σ的组合。

如我们所知,正常分布有两个参数均值μ和标准偏差σ。

现在我们需要找到均值μ和标准偏差σ的值,使得X的概率最大化。让我们将其声明为p(x,μ,σ)。或者一般来说,让我们在ØP(x,Ø)方面定义它。

j(Ø)= p(x,Ø)= p(x 1 , X 2 , X 3 。 。 。 , X n ,Ø)

在这里,我们需要找到p(x,Ø)最大化的θ的值。让我们以一般的方式定义MLE,然后我们看看如何在正常或伯努利分发方面专门化。我们将采取两个步骤来计算成本功能更简单:

1.假设x1 to Xn are independent:
这意味着所选的所有样本都是随机的,并且所选的样本与可用的其他数据点没有任何关系。由于样本是独立的,我们可以将J(Ø)= P(x,Ø)作为产品写入。其中L(Ø)代表关于Theta的可能性:

北京快3app l(\ theta)= {\ prod_ {i = 1} ^ np(x_i,\ theta)} 北京快3app

2.日志以简化计算:
我们将要简化计算的第二步是,我们将在两侧进行登录。

北京快3app l(\ theta)= l(\ theta)= {\ sum_ {i = 1} ^ np(x_i,\ theta)} 北京快3app

我们定义的上述等式是MLE的一般方程。现在让我们专注于连续和离散的分布。

连续分布的最大似然估计

在定义MLE进行连续分布之前,让我们定义正常分布的概率密度函数(因为连续变量遵循正常分布):

北京快3app f(x)= {1 \ over {\ sigma \ sqrt {2 \ pi}}} e ^ - {(x-\ mu)^ 2 \超过2 \ sigma ^ 2} 北京快3app

既然我们知道正常分布的概率密度函数,让我们定义MLE以进行连续分布:

北京快3app p(x_i,\ theta)= {p(x_i,\ mu,\ sigma)} 北京快3app

北京快3app = {1 \ over {\ sigma \ sqrt {2 \ pi}}} e ^ - {(x-\ mu)^ 2 \超过2 \ sigma ^ 2} 北京快3app

在双方登录:

北京快3app \ ln(p(x_i,\ theta))= \ ln {1 \ over {\ sigma \ sqrt {2 \ pi}}} - {(x_i- \ mu)^ 2 \超过2 \ sigma ^ 2} 北京快3app

北京快3app j(\ mu,\ sigma)= \ sum_ {i = 1} ^ n \ ln {1 \ over {\ sigma \ sqrt {2 \ pi}}} - {(x_i- \ mu)^ 2 \ over 2 \ sigma ^ 2} 北京快3app

北京快3app j(\ mu,\ sigma)= - sum_ {i = 1} ^ n \ ln({\ sigma \ sqrt {2 \ pi})} - {(x_i- \ mu)^ 2 \超过2 \ Sigma ^ 2} 北京快3app

让我们在均值μ和标准偏差σ上区分成本函数σ:

差异相对于均值μ:

北京快3app \ frac {\ partial j} {\ partial \ mu}(0 - \ sum_ {i = 1} ^ n {(x_i- \ mu)^ 2 \ over 2 \ sigma ^ 2})= 0 北京快3app

北京快3app {-1 \超过2 \ sigma ^ 2} {\ sum_ {i = 1} ^ n2 {(x_i- \ mu)( - 1)}} = 0 北京快3app

北京快3app {\ sum_ {i = 1} ^ n {x_i}} = {\ sum_ {i = 1} ^ n {\ mu}} = n \ hat \ mu 北京快3app

北京快3app \ hat \ mu = \ sum_ {i = 1} ^ n {x_i \ over n} 北京快3app

差异化关于标准偏差σ,我们将得到:

北京快3app \ hat \ sigma = \ sqrt {\ sum_ {i = 1} ^ n {(x_i - \ hat \ mu)} ^ 2 \ over n} 北京快3app

我们使用这是线性回归的MLE函数。

离散分布的最大似然估计

Bernoulli分配模型具有两种可能结果的事件:成功或失败。因此,伯努利分布本质上是离散的。所以在这里,我们将通过找到伯努利分布的参数来找到离散分布的MLE。

笔记: 二进制逻辑回归问题也是伯努利分发。

Bernoulli分布的概率密度函数(PDF)是:

北京快3app p ^ x(1-p)^ {1-x} 北京快3app

现在我们知道Bernoulli分布的概率密度,让我们定义用于离散分布的MLE。在这里,我们将在P:

北京快3app {ln(p)= ln(p ^ {y_i}(1-p)^ {1-y_i})} 北京快3app

北京快3app = {\ sum_ {i = 1} ^ n {y_i ln(p)} +(1-y_i)ln(1-p)} 北京快3app

差异化关于P,我们将得到:

北京快3app \ frac {\ partial ln(p)} {\ partial p} = 0 北京快3app

北京快3app = {\ sum_ {i = 1} ^ n [{y_i \ over p} + {(1 + y_i)( - 1)\ fold(1-p)}}} 北京快3app

这可以重写为,

北京快3app = {{1 \ over p} \ sum_ {i = 1} ^ n {{y_i}} - {1 \ over(1-p)} \ sum_ {i = 1} ^ n(1-y_i)} 北京快3app

其中,\(\ sum_ {i = 1} ^ ny_i \)表示成功的概率(pS) \(\ sum_ {i = 1} ^ n(1 - y_i \)) 代表失败的可能性(pF)

替换等式中的值:

北京快3app {p \ over(1-p)} = {p_s \ over p_f} 北京快3app,它也等于\(p = {p_s \ over n}},这意味着在观察总数上取得成功次数。 

Logistic功能的最大似然估计

如前所述,用于逻辑函数的MLE与离散分布的MLE几乎相同。唯一的变化转移到Mle的物流是我们在存在其他特征的情况下计算概率。

早些时候我们在伯努利分销中看到了,

北京快3app ln(p)= {\ sum_ {i = 1} ^ n {y_i ln(p)} +(1-y_i)ln(1-p)} 北京快3app

现在,对于逻辑回归,我们将改变p = p(xi )其中X. i 代表独立变量:

北京快3app = {\ sum_ {i = 1} ^ n {y_i ln(p / x_i)} +(1-y_i)ln((1-p / x_i))} 北京快3app

因此,逻辑函数的成本函数可以作为Ø的函数重写:

北京快3app j(\ theta)= { - 1 \ over n} {\ sum_ {i = 1} ^ n {y_i ln(h \ theta(x(i)))} +(1-y_i)ln(1 - H \ theta(x(i))))} 北京快3app

,其中\(h \ theta(x(i))= {1 \ over {1 + e ^ - {(\ beta__0 + \ beta_1x__i)}}}}

通过迭代技术估算参数

惊人!我们已经确定了逻辑回归的成本函数。唯一待讨论的待待的事情是如何获得最佳拟合参数,使得Logistic回归的成本函数最大化。为了实现这一目标,我们有两种不同的方式:

  • 梯度下降
  • 牛顿的方法

让我们下次讨论它们。

梯度下降

梯度下降方法(一阶技术)是解决β的迭代技术。我们已经定义了Logistic回归的成本函数,如:

北京快3app j(\ theta)= { - 1 \ over n} {\ sum_ {i = 1} ^ n {y_i ln(h \ theta(x(i)))} +(1-y_i)ln(1 - H \ theta(x(i))))} 北京快3app

笔记:  Logistic回归的成本函数设计为像碗状。

现在我们必须找到函数的全局最小值。为了做到这一点,除非我们达到最低限度,否则我们开始了一个点并重复。

北京快3app \ theta_j:\ theta_j - \ alpha \ \ frac {\ partial j(\ theta)} {\ partial \ theta_j} 北京快3app

并重复以下一步,直到我们达到成本函数的最低限度。

北京快3app \ theta_j:\ theta_j - \ alpha {\ sum_ {i = 1} ^ n(h \ theta(x ^ i) - y_i)x_j ^ i} 北京快3app

牛顿莱到   方法

牛顿莱到 方法(二阶技术)是梯度下降的替代方案,我们与梯度下降相同的结果。 Newton-Raphson方法与梯度下降相同。

再次考虑Logistic回归的成本函数:

北京快3app j(\ theta)= { - 1 \ over n} {\ sum_ {i = 1} ^ n {y_i ln(h \ theta(x(i)))} +(1-y_i)ln(1 - H \ theta(x(i))))} 北京快3app

目标是找到\(j(\ theta)\)最小化的\(\ theta)。 (即成本函数最小化)。为此,我们采取成本函数的衍生,并将其等同于0。

北京快3app \ frac {\ partial j(\ theta)} {\ partial \ theta} = 0 北京快3app

牛顿拉文申方法所做的是:

  • 它计算成本函数的第一个导数,并从θ的某些随机值开始。
  • 然后为θ值绘制切线并扩展到x轴。
  • 下次选择TheTa值的位置,其中切线相交的X轴。
  • 反复相同的过程,除非并且直到成本函数的第一个导数为零。

由于这种牛顿Raphson方法与梯度下降方法相比会非常快地收敛。现在对算法有直观的理解让我们看看数学如何从一个θve值移动到另一个值。

假设\(\ theta_0 \)与\(\ theta_1 \)之间的距离是\(\ delta \)。因此,(\ delta \)表示为:

北京快3app \ delta = {j ^ {'}(\ theta)\ over j ^ {''}(\ theta)} 北京快3app

使用Pythagoras定理,其中,首先差动的成本函数是高度,第二个差异的成本函数是斜边,\(\ delta \)是宽度。

因此,我们得出结论,

北京快3app \ theta ^ {t + 1} = \ theta ^ t - {j ^ {'}(\ theta ^ {(t)})\ over j ^ {'}(\ theta ^ {(t)}) 北京快3app

上面的等式代表牛顿raphson方法。有更多的可比方式表示相同的方式:

北京快3app \ theta_t:\ theta_t - h ^ { - 1} \ \ \ frac {\ partial j(\ theta)} {\ partial \ theta_t} 北京快3app

其中\(h ^ { - 1} \)代表Hessian矩阵。 \(h_ {ij} \)表示为,

北京快3app h_ {ij} = \ frac {\ partial ^ 2 j} {\ partial \ theta_i \ partial \ theta_j} 北京快3app

Python 实现

恭喜!您已了解使用Logistic回归解决问题所需的重要概念。现在让我们来看看它使用包的Python实现。

首先,让我们从统计模型包开始,并使用它找到β0和β1

import statsmodels.api as sm
from sklearn.datasets import load_iris

X, y = load_iris(return_X_y=True)

logm1 = sm.GLM(y,(sm.add_constant(X)), family = sm.families.Binomial())
logm1.fit().summary()

我们还可以使用Sklearn包来实现相同的任务。让我们看看下面显示的代码:

from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression

X, y = load_iris(return_X_y=True)

clf = LogisticRegression(random_state=0, solver='lbfgs', multi_class='multinomial').fit(X, y)
clf.predict(X[:2, :])

这里,在上面所示的示例中,我们已经培训了Sklearn Logistic回归模型,少量超公数。

S形函数的线性方程

Logistic回归的等式表示为:

北京快3app P = {1 \超过{1个+ E ^ { - (\ beta_0 + \ beta_1x)}}} 北京快3app

Logistic回归方程是正确的,但它不是非常直观的。 (即非常困难对P和X之间的关系进行视觉解

因此,我们需要将方程转换为略微不同的格式以便更好地理解。我们从两侧开始减去1。

北京快3app 1 - p = {e ^ { - (\ beta_0 + \ beta_1x)} \ over {1 + e ^ { - (\ beta_0 + \ beta_1x)}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} x

让我们划分第一和第二方程式:

北京快3app {p \超过1 - p} = e ^ {(\ beta_0 + \ beta_1x)} 北京快3app

让我们拍摄两侧:

北京快3app ln({p \超过1 - p})=(\ beta_0 + \ beta_1x)北京快3app

其中,\(p \超过1 - p \)是odds,\(ln({p \超过1 - p})\)是log odds。

所以,现在,而不是概率,你有可能性和日志赔率。显然,它们与X之间的关系更直观且易于理解。 x与log odds之间的关系是线性的。

如果我们绘制日志odds和x的\(\ beta_0 \)和\(\ beta_1 \)的固定值,则关系将是线性的。 

因此,许多次是在概率方面谈论Log-oders或odds的结果,呈现Logistic回归模型是有意义的。

其他形式的Logistic回归

到目前为止,我们已经看到了Logistic回归的Logit形式,其表示为:

北京快3app P = {1 \超过{1个+ E ^ { - (\ beta_0 + \ beta_1x)}}} 北京快3app

links = sm.families.linkslogm = sm.GLM(y_train,(sm.add_constant(X_train)),
family= sm.families.Binomial(link=links.logit))logm.fit().summary()


但是,还有其他形式的Logistic回归:

  • 概率形式的逻辑回归
  • Logistic回归的Cloglog形式

让我们下次讨论它们。

概率形式的逻辑回归

Logistic回归的概率形式表示为:

北京快3app p = \ phi ^ { - 1}(\ beta_0 + \ beta_1 x)北京快3app

使用概率表单的Python代码如下所示:

links = sm.families.linkslogm = sm.GLM(y_train,(sm.add_constant(X_train)),
family=sm.families.Binomial(link=links.probit))logm.fit().summary()

Logistic回归的Cloglog形式

Logistic回归的Cloglog形式表示为:

北京快3app p = ln(-ln(1 - (\ beta_0 + \ beta_1 x)))北京快3app

和使用CLOGLOG表单的Python代码如下所示:

links = sm.families.linkslogm = sm.GLM(y_train,(sm.add_constant(X_train)),
family=sm.families.Binomial(link=links.cloglog))logm.fit().summary()

更重要的是逻辑回归的形式将在后面的帖子中涵盖。

多变量逻辑回归

从单变量变为多变量的逻辑回归时,没有太大的变化。在多变量中,将有多个独立变量,有助于预测目标变量。多变量逻辑回归的琴状曲线表示为:

北京快3app p = {1 \ over {1 + e ^ { - (\ beta_0 + \ beta_1x_1 + \ beta_2x_2 + .... ...。。。。。+ \ beta_nx_n)}} 北京快3app

我想在这里留下你的问题:正如我们所看到的那样,我们可以对具有像Bernoulli分发的数据执行逻辑回归,这意味着目标变量只有两个结果:失败和成功。是否可以在目标变量中具有超过2个类的数据集上应用逻辑回归?在下面的评论部分中分享您的意见。

概括

在这篇文章中,我们已经开始了解为什么我们需要对分类问题的逻辑回归。我们定义了逻辑回归算法的成本函数,并使用统计模型和Sklearn软件包看到Python实现。

我们讨论了逻辑回归的线性方程,更加直观地了解。我们还讨论了各种形式的逻辑回归。在从简单的逻辑回归转移到多变量逻辑回归时,看到了更改的变化。

作者信息

Tavish Aggarwal.

网站: http://tavishaggarwal.com

Tavish Aggarwal. 是一个数据科学家 在一个海德拉巴工作,具有广泛的经验,在跨电子商务,财务,医疗保健等等不同领域解决现实世界的业务问题。 他对技术充满热情,喜欢在团队中工作。