逻辑回归 - - 原理推导

逻辑回归的主要思想:根据现有的数据对分类边界进行建立回归公式,以此进行分类。此处“回归”的意思是对要找到最佳的拟合参数集。

目录

一、逻辑回归是分类算法

二、逻辑回归的函数(Sigmoid函数)

三、Logistic的损失函数

四、梯度下降法求解损失函数

五、逻辑回归的优缺点


一、逻辑回归是分类算法

Logistic本质上是一个基于条件概率的判别模型(Discriminative Model),首先明确一点就是逻辑回归是用来解决二分类问题的,可以认为它是用回归的思想来解决分类问题。

二、逻辑回归的函数(Sigmoid函数)

首先我们要了解多元线性表达式为y= w_0x_0 + w_1x_1 + w_2x_2 + ... + w_nx_n,那么写成向量的形式,可以假设有两个列向量W和X,则W^T= [w_1,w_2...w_n] 就是行向量,X= [x_1,x_2...x_n]还是列向量,则向量相乘 y=W^T X,行向量和列向量相乘得到的是对位相乘再相加,满足了我们多元线性回归的表达式的要求。

逻辑回归的判别函数是Sigmoid函数h_\Theta (x) = g(z)=\frac{1}{1+e^-^z},e是欧拉常数,z是多元线性回归中的W^TX,我们记作\Theta ^TX,即对每个特征的加权求和,所以得到的是h_\Theta (x) = g(z)=\frac{1}{1+e^-^z}=\frac{1}{1+e^-^{\Theta ^TX}}。z是一个矩阵,θ是参数列向量(要求的参数),X是样本列向量(给定的数据集)。\Theta ^T表示θ的转置。

g(z)函数实现了任意实数到[0,1]的映射,这样我们的数据集([x0,x1,…,xn]),不管是大于1或者小于0,都可以映射到[0,1]区间进行分类。同时hθ(x)输出的是概率值,即是正例的概率。

简单讲,就是在每个特征上都乘以一个回归系数,然后把所有的结果值相加,将这个总和代入Sigmoid函数中,进而得到一个0~1的的数值,任何大于0.5的数据被分入1类,小于0.5的被分到0类,所有Logistic回归也可以看成是一种概率估计(这里的0.5不是绝对,可以根据实际业务调整该值)

Sigmoid函数可导: g^{'}(z) = \frac{d}{d_z}\frac{1}{1+e^-^z} = \frac{1}{(1+e^-^z)^2}(e^-^z) = g(z)(1-g(z))

那么现在问题变成了,最佳回归系数θ如何确定?下面我们就要引入逻辑回归的损失函数。

三、逻辑回归的损失函数

根据sigmoid函数特性,且假设因变量y服从伯努利分布,我们可以得出:

P(y=1|\Theta ;x)=h_\Theta (x)    -- ①

P(y=0|\Theta ;x)=1-h_\Theta (x)    --②

上式为在已知样本x和参数θ的情况下,样本x属性为正样本(y=1)和负样本(y=0)的条件概率,同时可知,当概率越接近于1,分类效果越准确。

单样本预测正确的概率公式:

我们将上面的①②公式进行整合,得到单样本预测正确的概率:

P(h_\Theta (x),y) = h_\Theta (x) ^y(1-h_\Theta (x))^{(1-y)}

上式可知,当预测完全正确,正确概率P值就会最大。其实我们要找的就是一组最佳的θ值,使得P(h_\Theta (x),y)概率最大。

全样本预测正确的概率公式:

若想让预测出的结果全部正确的概率最大,根据极大似然估计,就是所有样本预测正确的概率相乘得到的P最大,这里表示为L(θ):

 L(\Theta ) = \prod\limits_{i=1}^{n}h_\Theta (x_i) ^{y_i}(1-h_\Theta (x_i))^{(1-y_i)} 

上面连乘的函数不容易计算,那么两边同时取对数,得:

l(\Theta )= \sum_{i=1}^{n} y_ilog(h_{\theta}(x_i)) +(1-y_i)log(1-h_{\theta}(x_i))

在这里,我们需要找到最佳的一组θ值,使得该函数l(\Theta )的值最大,那么就得到了最佳的逻辑回归函数了。

一般我们经常求一个函数的极小值,那么针对上面的l(\Theta ),前面加个负号,就可以求极小值:

J(\Theta )= \sum_{i=1}^{n}- y_ilog(h_{\theta}(x_i)) -(1-y_i)log(1-h_{\theta}(x_i))

该函数就是我们所要找的逻辑回归损失函数,又叫交叉熵损失函数。

四、梯度下降法求解损失函数

梯度下降发的思想:要找到函数的最小值,最好的方法就是沿着该函数的负梯度方向探索。

J(\Theta )求偏导,用梯度下降法求J(\Theta )最小值,那么求J(\Theta )\Theta的偏导:

\frac{ \partial J(\Theta)} {\partial \Theta_j}= -\frac{1}{n} \sum_{i}^{n} \left [ y_i(1 - h_{\Theta}(x_i)) \cdot (-x_{i,j}) + (1 - y_i) h_{\Theta} (x_i) \cdot (x_{i,j}) \right ]

           = - \frac{1}{n} \sum_{i}^{n} (-y_i \cdot x_{i,j} +h_{\omega}(x_i) \cdot x_{i,j})

           = -\frac{1}{n} \sum_{i}^{n} (h_{\Theta}(x_i) - y_i)x_{i,j}

上述中x_i_j表示第i个样本的第j个属性的取值。

则θ的更新方式为:

\Theta_{j+1} = \Theta_j - \alpha \sum_{i=1}^{n} (h_{\Theta}(x_i)- y_i)x_{i,j}

其中x为这个样本的特征值,y为这个样本的真实值,x_i_j为第i个样本的第j个属性的值,α就是经常说的步长(学习率)。

 

需要注意的是:逻辑回归对数据不均衡比较敏感(样本数据的正负类数量差距较大),因为逻辑回归损失函数是用极大似然估计进行推导的,那么我们得到的就是所有样本预测正确的概率最大。此时我们可以采用上采样或者下采样去维持数据平衡,减少数据不均衡带来的误差。

五、逻辑回归的优缺点

1、优点:计算代价不高,易于理解和实现;

2、缺点:容易欠拟合,分类精度可能不高;

3、适用数据类型:数值型和标称型数据。


欢迎关注我的公众号!

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
逻辑回归是一种二分类模型,它的目的是预测一个样本属于某一类的概率。逻辑回归模型的原理公式推导如下: 假设我们有一个训练集$D=\{(x_1,y_1),(x_2,y_2),...,(x_n,y_n)\}$,其中$x_i=(x_{i1},x_{i2},...,x_{id})^T$是第$i$个样本的$d$维特征向量,$y_i\in\{0,1\}$是第$i$个样本的标记。我们的目标是学习一个分类器$f(x)$,使其能够将任意一个样本$x$正确地分类为0或1。 假设我们使用sigmoid函数$g(z)=\frac{1}{1+e^{-z}}$作为分类器的激活函数,其中$z=w^Tx$,$w=(w_1,w_2,...,w_d)^T$是模型的参数向量。我们可以将$g(z)$理解为样本$x$属于类1的概率。为了训练模型,我们需要定义一个损失函数$L(w)$,它能够反映模型预测结果与实际标记之间的差距。 一种常见的损失函数是交叉熵损失函数,它的定义如下: $$L(w)=-\sum_{i=1}^n[y_ilog(g(z_i))+(1-y_i)log(1-g(z_i))]$$ 其中$z_i=w^Tx_i$,$g(z_i)$表示样本$x_i$属于类1的概率,$y_i$是样本$x_i$的实际标记。交叉熵损失函数的含义是模型预测结果与实际标记之间的距离,距离越小,损失函数的值越小,模型的性能越好。 为了最小化损失函数,我们需要使用梯度下降算法求解模型参数$w$。具体来说,我们需要不断地对损失函数求导,并更新参数$w$,使得损失函数不断减小,最终收敛到最优解。 损失函数对参数$w$的导数为: $$\frac{\partial L(w)}{\partial w_j}=\sum_{i=1}^n(g(z_i)-y_i)x_{ij}$$ 根据梯度下降算法的更新公式,我们可以得到: $$w_j=w_j-\alpha\frac{\partial L(w)}{\partial w_j}$$ 其中$\alpha$是学习率,控制着参数更新的步长。 利用这个公式,我们可以不断地迭代更新参数$w$,直到损失函数收敛到最小值。最终得到的模型就可以用来预测新样本的分类结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值