逻辑斯蒂回归(Logistics Regression)
- Author: 吕雪杰,xiaoran;
- Datawhale
Logistics Regression简介
逻辑回归是在数据服从伯努利分布的假设下,通过极大似然的方法,运用梯度下降法来求解参数,从而达到将数据二分类的目的。
核心公式 对于给定的数据集(xi,yi)i=1N,y∈0,1(x_i,y_i)^N_{i=1},y \in {0,1}(xi,yi)i=1N,y∈0,1 p(y=1∣x)=ewTx+b1+ewTx+bp(y=1|x)=\frac{e^{w^T x+b}}{1+e^{w^T x+b}} p(y=1∣x)=1+ewTx+bewTx+b p(y=0∣x)=11+ewTx+bp(y=0|x)=\frac{1}{1+e^{w^T x+b}} p(y=0∣x)=1+ewTx+b1 设g(x)=p(y=1∣x),1−g(x)=p(y=0∣x)g(x)=p(y=1|x),1-g(x)=p(y=0|x)g(x)=p(y=1∣x),1−g(x)=p(y=0∣x) 似然函数为 ∏i=1N[g(xi)][1−g(xi)]1−yi\prod^N_{i=1} [g(x_i)] [1-g(x_i)]^{1-y_i} i=1∏N[g(xi)][1−g(xi)]1−yi
对数似然函数为 L(w)=Σi=1N[yilog(g(xi))+(1−yi)log(1−g(xi))]L(w)=\Sigma ^N_{i=1} [y_ilog(g(x_i))+(1-y_i)log(1-g(x_i))] L(w)=Σi=1N[yilog(g(xi))+(1−yi)log(1−g(xi))] =Σi=1N[yilogg(xi)1−g(xi)+log(1−g(xi))]=\Sigma^N_{i=1}[y_ilog \frac {g(x_i)}{1-g(x_i)} + log(1-g(x_i))] =Σi=1N[yilog1−g(xi)g(xi)+log(1−g(xi))] =Σi=1N[yi(w∗xi)−log(1+exp(w∗xi))]=\Sigma^N_{i=1}[y_i (w \ast x_i)-log(1+\exp(w \ast x_i))] =Σi=1N[yi(w∗xi)−log(1+exp(w∗xi))] 对L(w)求最大值,得到w的估计值,常用梯度下降和牛顿法解决。
算法十问
- LR 和线性回归的区别?
损失函数:线性模型是平方损失函数,而逻辑回归则是似然函数。LR是分类问题,线性回归是回归方法。
- 逻辑回归中为什么使用对数损失而不用平方损失?
对于逻辑回归,这里所说的对数损失和极大似然是相同的。 不使用平方损失的原因是,在使用 Sigmoid 函数作为正样本的概率时,同时将平方损失作为损失函数,这时所构造出来的损失函数是非凸的,不容易求解,容易得到其局部最优解。 而如果使用极大似然,其目标函数就是对数似然函数,该损失函数是关于未知参数的高阶连续可导的凸函数,便于求其全局最优解。
- 为什么逻辑回归比线性回归要好?
逻辑回归和线性回归首先都是广义的线性回归,其次经典线性模型的优化目标函数是最小二乘,而逻辑回归则是似然函数,另外线性回归在整个实数域范围内进行预测,敏感度一致,而分类范围,需要在0,1间的一种回归模型,因而对于这类问题来说,逻辑回归的鲁棒性比线性回归的要好
- 如果label={-1, +1},给出LR的损失函数?
假设label={-1,+1},则(1)p(y=1∣x)=hω(x)p(y=1 | x) = h_{\omega} (x)\tag{1}p(y=1∣x)=hω(x)(1) (2)p(y=−1∣x)=1−hω(x)p(y=-1 | x) = 1 - h_{\omega} (x)\tag{2}p(y=−1∣x)=1−hω(x)(2) 对于sigmoid函数,有以下特性, h(−x)=1−h(x)h(-x) = 1 - h(x)h(−x)=1−h(x) 所以(1)(2)式子可表示为 p(y∣x)=hω(yx)p(y|x) = h_\omega(yx)p(y∣x)=hω(yx) 同样,我们使用MLE作估计, L(ω)=∏i=1mp(yi∣xi;ω)=∏i=1mhω(yixi)=∏i=1m11+e−yiwxi\begin{aligned} L(\omega)&= \prod_{i=1}^{m} p(y_i | x_i; \omega) \ &= \prod_{i=1}^{m} h_\omega(y_i x_i)\ &= \prod_{i=1}^{m} \frac{1}{1+e^{-y_iwx_i}} \end{aligned}L(ω)=i=1∏mp(yi∣xi;ω) =i=1∏mhω(yixi) =i=1∏m1+e−yiwxi1 对上式取对数及负值,得到损失为: −logL(ω)=−log∏i=1mp(yi∣xi;ω)=−∑i=1mlogp(yi∣xi;ω)=−∑i=1mlog11+e−yiwxi=∑i=1mlog(1+e−yiwxi)\begin{aligned} -\log L(\omega)&= -\log \prod_{i=1}^{m} p(y_i | x_i; \omega) \ &= -\sum_{i=1}^{m} \log p(y_i | x_i; \omega) \ &= -\sum_{i=1}^{m} \log \frac{1}{1+e^{-y_iwx_i}}\ &= \sum_{i=1}^{m} \log(1+e^{-y_iwx_i})\ \end{aligned}−logL(ω)=−logi=1∏mp(yi∣xi;ω) =−i=1∑mlogp(yi∣xi;ω) =−i=1∑mlog1+e−yiwxi1 =i=1∑mlog(1+e−yiwxi) 即对于每一个样本,损失函数为: L(ω)=log(1+e−yiwxi)L(\omega)=\log(1+e^{-y_iwx_i}) L(ω)=log(1+e−yiwxi)
- LR为什么使用sigmoid函数?
请参考 https://blog.csdn.net/qq_19645269/article/details/79551576
- LR如何进行并行计算?
请参考 http://blog.sina.com.cn/s/blog_6cb8e53d0101oetv.html
- 逻辑回归在训练的过程当中,如果有很多的特征高度相关或者说有一个特征重复了100遍,会造成怎样的影响?
如果在损失函数最终收敛的情况下,有很多特征高度相关也不会影响分类器的效果。对特征本身来说的话,假设只有一个特征,在不考虑采样的情况下,你现在将它重复100遍。训练以后完以后,数据还是这么多,但是这个特征本身重复了100遍,实质上将原来的特征分成了100份,每一个特征都是原来特征权重值的百分之一。如果在随机采样的情况下,其实训练收敛完以后,还是可以认为这100个特征和原来那一个特征扮演的效果一样,只是可能中间很多特征的值正负相消了。
- 带有L1正则项的逻辑LR如何进行参数更新?
请参考西瓜书(周志华,机器学习),P252
- 逻辑斯特回归是否要对特征进行离散化,以及为什么?
在工业界,很少直接将连续值作为逻辑回归模型的特征输入,而是将连续特征离散化为一系列0、1特征交给逻辑回归模型,这样做的优势有以下几点:
- 离散特征的增加和减少都很容易,易于模型的快速迭代;
- 稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展;
- 离散化后的特征对异常数据有很强的鲁棒性:比如一个特征是年龄>30是1,否则0。如果特征没有离散化,一个异常数据“年龄300岁”会给模型造成很大的干扰;
- 逻辑回归属于广义线性模型,表达能力受限;
- 单变量离散化为N个后,每个变量有单独的权重,相当于为模型引入了非线性,能够提升模型表达能力,加大拟合;
- 离散化后可以进行特征交叉,由M+N个变量变为M*N个变量,进一步引入非线性,提升表达能力;
- 特征离散化后,模型会更稳定,比如如果对用户年龄离散化,20-30作为一个区间,不会因为一个用户年龄长了一岁就变成一个完全不同的人。当然处于区间相邻处的样本会刚好相反,所以怎么划分区间是门学问;
- 特征离散化以后,起到了简化了逻辑回归模型的作用,降低了模型过拟合的风险。李沐曾经说过:模型是使用离散特征还是连续特征,其实是一个“海量离散特征+简单模型” 同 “少量连续特征+复杂模型”的权衡。既可以离散化用线性模型,也可以用连续特征加深度学习。就看是喜欢折腾特征还是折腾模型了。通常来说,前者容易,而且可以n个人一起并行做,有成功经验;后者目前看很赞,能走多远还须拭目以待。
面试真题
LR为什么用sigmoid函数。这个函数有什么优点和缺点?为什么不用其他函数?
LR和SVM有什么不同吗?
相同:
- LR和SVM都可以处理分类问题,且一般都用于处理线性二分类问题(在改进的情况下可以处理多分类问题)
- 两个方法都可以增加不同的正则化项,如l1、l2等等。所以在很多实验中,两种算法的结果是很接近的。
区别:
- LR是参数模型,SVM是非参数模型。
- 从目标函数来看,区别在于逻辑回归采用的是logistical loss,SVM采用的是hinge loss,这两个损失函数的目的都是增加对分类影响较大的数据点的权重,减少与分类关系较小的数据点的权重。
- SVM的处理方法是只考虑support vectors,也就是和分类最相关的少数点,去学习分类器。而逻辑回归通过非线性映射,大大减小了离分类平面较远的点的权重,相对提升了与分类最相关的数据点的权重。
- 逻辑回归相对来说模型更简单,好理解,特别是大规模线性分类时比较方便。而SVM的理解和优化相对来说复杂一些,SVM转化为对偶问题后,分类只需要计算与少数几个支持向量的距离,这个在进行复杂核函数计算时优势很明显,能够大大简化模型和计算。
- logic 能做的 svm能做,但可能在准确率上有问题,svm能做的logic有的做不了。
写一下,LR的损失函数
当用lr时,特征中的某些值很大,意味着这个特征重要程度很高?
逻辑斯蒂回归(Logistics Regression)相关推荐
- Lecture6 逻辑斯蒂回归(Logistic Regression)
目录 1 常用数据集 1.1 MNIST数据集 1.2 CIFAR-10数据集 2 课堂内容 2.1 回归任务和分类任务的区别 2.2 为什么使用逻辑斯蒂回归 2.3 什么是逻辑斯蒂回归 2.4 Si ...
- 逻辑斯蒂回归(logisic regression)和SVM的异同
逻辑斯蒂回归主要用于二分类,推广到多分类的话是类似于softmax分类.求 上述问题可以通过最大化似然函数求解. 上述问题可以采用最小化logloss进行求解. 一般地,我们还需要给目标函数加上正则项 ...
- PyTorch深度学习实践(b站刘二大人)P6讲 逻辑斯蒂回归 Logistic Regression
1.分类任务的数据集 ① The MNIST Dataset:handwritten digits Training set: 60,000 examples, Test set: 10,000 ex ...
- 逻辑斯蒂回归java_机器学习 (五)逻辑斯蒂回归
一.概念 逻辑斯蒂回归(logistic regression)是统计学习中的经典分类方法,属于对数线性模型.logistic回归的因变量可以是二分类的,也可以是多分类的.logistic回归的因变量 ...
- 机器学习(四)——逻辑斯蒂回归(Logistic Regression)
机器学习(四)--逻辑斯蒂回归(Logistic Regression) 一.算法简介 1.1 概念 二.Logistic回归理论推导 2.1 Logistic回归 2.1.1 参数向量θ 2.2 梯 ...
- Logistic Regression 逻辑斯蒂回归
文章目录 5.Logistic Regression 逻辑斯蒂回归 5.1 回归任务 5.1.1 MNIST Dataset 5.1.2 CIFAR-10 Dataset 5.2 Regression ...
- 【机器学习】逻辑斯蒂回归(Logistic Regression)详解
引言 LR回归,虽然这个算法从名字上来看,是回归算法,但其实际上是一个分类算法,学术界也叫它logit regression, maximum-entropy classification (MaxE ...
- 逻辑斯蒂回归(logistic regression)原理小结
逻辑斯蒂回归(logistic regression)原理小结 1. 模型函数 2. 损失函数 3. 学习算法 4. 加正则项的逻辑斯蒂回归 5. 多项逻辑斯蒂回归 6. 模型综合评价 7. 二分类 ...
- 机器学习Python学习——逻辑斯蒂回归(Logistic Regression)
目录 1. 基本概念 2. 数学原理 3. 代码实现 3.1 代码分析 3.2 数据集分类实现 4. 总结 1. 基本概念 Logistic回归也是一种分类方法,用于两分类问题.其基本思想为:(1) ...
最新文章
- 【课件】基础雷达信号处理
- ubuntu交叉编译x264报错:‘X264_VERSION’ undeclared(已解决)运行version.sh
- IPhoneX网页布局简介
- vue+webpack+npm dev环境下内存溢出解决办法
- C Primer+Plus(十七)高级数据表示 编程练习(二)
- 计算机专业创新项目,计算机专业本科生的创新思维
- 效仿盖茨:PPstream创始人的心路历程
- popoupwindow 点击背景消失_两种去除背景音乐保留原声的高效方法
- 队列,计算机中的排队模型
- FAT32文件系统结构详解
- Unity接入谷歌支付
- Mongodb分组查询
- 数据可视化分析平台开源方案集锦
- Spark 入门简介
- 大数定理和中心极限定理的通俗理解。
- python代码学习
- 【纪中受难记】——Day23:受刑
- linux+tomcat无法显示图片验证码
- 丹尼尔•卡尼曼《思考,快与慢》
- c语言字符串之拼接函数