逻辑回归笔记

逻辑回归

逻辑回归本质

二分类算法,计算样本x属于某个类别的概率p,样本属于另一类别的概率是1-p,最终认为样本x属于概率最大的哪一个类别

Logistic/sigmoid函数

h θ ( x ) = g ( θ T x ) = 1 1 + e − θ T x h_{\theta}(x)=g\left(\theta^{T} x\right)=\frac{1}{1+e^{-\theta^{T} x}} hθ(x)=g(θTx)=1+eθTx1

损失函数

J ( θ ) = − ∑ i = 1 m ( y ( i ) ln ⁡ h θ ( x ( i ) ) + ( 1 − y ( i ) ) ln ⁡ ( 1 − h θ ( x ( i ) ) ) ) J(\theta)=-\sum_{i=1}^{m}\left(y^{(i)} \ln h_{\theta}\left(x^{(i)}\right)+\left(1-y^{(i)}\right) \ln \left(1-h_{\theta}\left(x^{(i)}\right)\right)\right) J(θ)=i=1m(y(i)lnhθ(x(i))+(1y(i))ln(1hθ(x(i))))

梯度下降算法的参数迭代公式

θ j = θ j + α ∑ i = 1 m ( y ( i ) − h θ ( x ( i ) ) ) x j ( i ) θ j = θ j + α ( y ( i ) − h θ ( x ( i ) ) ) x j ( i ) \theta_{j}=\theta_{j}+\alpha \sum_{i=1}^{m}\left(y^{(i)}-h_{\theta}\left(x^{(i)}\right)\right) x_{j}^{(i)}\\ \theta_{j}=\theta_{j}+\alpha\left(y^{(i)}-h_{\theta}\left(x^{(i)}\right)\right) x_{j}^{(i)} θj=θj+αi=1m(y(i)hθ(x(i)))xj(i)θj=θj+α(y(i)hθ(x(i)))xj(i)

逻辑回归面试题

什么是逻辑回归?

​ 逻辑回归用来做分类,线性回归是Y=wX+b,将Y的结果带入到sigmoid函数中,就可以得到[0,1]之间的数,可以将其看成概率,再设置一个阈值,比如0.5,大于0.5的是正样本,小于0.5的是负样本。

什么是Sigmoid函数?

g ( x ) = 1 1 + e − x g(x)=\frac{1}{1+e^{-x}} g(x)=1+ex1
在这里插入图片描述

无论x取什么值,结果都在[0,1]内

损失函数是什么?

J ( θ ) = − ∑ i = 1 m ( y ( i ) ln ⁡ h θ ( x ( i ) ) + ( 1 − y ( i ) ) ln ⁡ ( 1 − h θ ( x ( i ) ) ) ) J(\theta)=-\sum_{i=1}^{m}\left(y^{(i)} \ln h_{\theta}\left(x^{(i)}\right)+\left(1-y^{(i)}\right) \ln \left(1-h_{\theta}\left(x^{(i)}\right)\right)\right) J(θ)=i=1m(y(i)lnhθ(x(i))+(1y(i))ln(1hθ(x(i))))

逻辑回归模型为什么用自然对数函数(ln)来作为损失函数?

​ 因为逻辑回归模型中用到了sigmoid函数,sigmoid函数中有e^n, ln(e^n)=n

可以进行多分类吗?

​ 可以

​ y={0,1,2,…,n},总共有n+1个类别

​ 思路:

​ 首先将问题转换为二分类问题,即y=0是一类,y={1,2,…,n}是另一类,求出这两类的概率;

​ 再把y=1看成一类,y={0,2,…,n}是另一类,求出这两类的概率;

​ 以此类推;

​ 最后找出概率最高的那个类别,就是样本所属的类别。
y ∈ { 0 , 1 , … , n } h θ ( 0 ) ( x ) = P ( y = 0 ∣ x , θ ) h θ ( 1 ) ( x ) = P ( y = 1 ∣ x , θ ) ⋯ h θ ( n ) ( x ) = P ( y = n ∣ x , θ )  prediction  = max ⁡ j ( h θ ( 1 ) ( x ) ) \begin{array}{c}{y \in\{0,1, \ldots, n\}} \\ {h_{\theta}^{(0)}(x)=P(y=0 | x, \theta)} \\ {h_{\theta}^{(1)}(x)=P(y=1 | x, \theta)} \\ {\cdots} \\ {h_{\theta}^{(n)}(x)=P(y=n | x, \theta)} \\ {\text { prediction }=\max _{j}\left(h_{\theta}^{(1)}(x)\right)}\end{array} y{0,1,,n}hθ(0)(x)=P(y=0x,θ)hθ(1)(x)=P(y=1x,θ)hθ(n)(x)=P(y=nx,θ) prediction =maxj(hθ(1)(x))
​ 总之,以二分类来一次划分,求出概率最高的类别

逻辑回归有什么优点?

  1. 输出概率,不是0,1
  2. 可解释性强
  3. 训练速度快

逻辑回归的目标函数中增大L1正则化会是什么结果?

​ 所有的参数w都会变成0

逻辑回归的本质:

​ 极大似然估计

逻辑回归的激活函数:

​ sigmoid函数

逻辑回归的损失函数:

​ 交叉熵损失函数
J ( θ ) = − ∑ i = 1 m ( y ( i ) ln ⁡ h θ ( x ( i ) ) + ( 1 − y ( i ) ) ln ⁡ ( 1 − h θ ( x ( i ) ) ) ) J(\theta)=-\sum_{i=1}^{m}\left(y^{(i)} \ln h_{\theta}\left(x^{(i)}\right)+\left(1-y^{(i)}\right) \ln \left(1-h_{\theta}\left(x^{(i)}\right)\right)\right) J(θ)=i=1m(y(i)lnhθ(x(i))+(1y(i))ln(1hθ(x(i))))

为什么要使用交叉熵函数作为损失函数,而不是平方误差函数?

https://blog.csdn.net/syyyy712/article/details/78252722

https://blog.csdn.net/qq_24568487/article/details/80594944

https://blog.csdn.net/ddydavie/article/details/82668141

  1. 使用交叉熵函数 会克服 平方误差函数 更新权重过慢 的缺点,因为激活函数是sigmoid,

    交叉熵损失函数的梯度里不包括 sigmoid函数的导数

    而使用 平方误差函数 时,其梯度里包括sigmoid函数的导数,会使梯度下降缓慢

  2. 平方误差函数的图像是非凸的 存在局部最优
    [外链图片转存失败(img-b4xIRSux-1568427490117)(C:/Users/Administrator/AppData/Roaming/Typora/typora-user-images/1568373015087.png)]

  3. 交叉熵损失函数是凸函数
    在这里插入图片描述

详细理解

因为使用平方误差函数的话, 损失函数会有很多局部最优点,为什么呢?

使用平方误差函数时,w和b的偏导数与损失函数的导数有关,而损失函数中使用了sigmoid函数,就有导数接近0的时候,就会导致w和b的偏导数很小,梯度很小,w和b的更新幅度小,训练缓慢,会产生局部最优点。

而使用交叉熵损失函数时,w和b的偏导数与损失函数的导数无关,与 预测值和真实值的差值 有关,也就是与误差有关。当误差越大时,w和b的偏导数越大,梯度越大,w和b更新就越快,训练的速度就越快

逻辑回归相比于线性回归有什么异同?

不同点:

​ 逻辑回归解决分类问题, 线性回归解决回归问题

​ 逻辑回归的因变量是离散的,线性回归的因变量是连续的

相同点:

​ 二者都使用了极大似然函数对训练文本进行建模

​ 求解参数时,都可以使用梯度下降法

为什么逻辑回归需要取对数?

因为概率的乘积会出现数值下溢出,因此取对数,转换为加法

LR如何解决低维不可分?

特征映射,通过特征变化的方式将低维空间映射到高维空间,而在低维空间线性不可以分的数据,在高维空间线性可分的概率会增大,

具体方法:核函数(高斯核函数,多项式核函数)

关于逻辑回归,连续特征离散化的好处???

在工业界,很少直接将连续值作为特征喂给逻辑回归模型,而是将连续特征离散化为一系列0、1特征交给逻辑回归模型,这样做的优势有以下几点:

  • 稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展
  • 离散化后的特征对异常数据有很强的鲁棒性:比如一个特征是年龄>30是1,否则0。如果特征没有离散化,一个异常数据“年龄300岁”会给模型造成很大的干扰。
  • 逻辑回归属于广义线性模型,表达能力受限;单变量离散化为N个后,每个变量有单独的权重,相当于为模型引入了非线性,能够提升模型表达能力,加大拟合。
  • 离散化后可以进行特征交叉,由M+N个变量变为M*N个变量,进一步引入非线性,提升表达能力。
  • 特征离散化后,模型会更稳定,比如如果对用户年龄离散化,20-30作为一个区间,不会因为一个用户年龄长了一岁就变成一个完全不同的人。当然处于区间相邻处的样本会刚好相反,所以怎么划分区间是门学问。

大概的理解:1)计算简单;2)简化模型;3)增强模型的泛化能力,不易受噪声的影响

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值