LR模型
逻辑回归假设数据服从伯努利分布,损失函数是对数似然函数,运用梯度下降法求解参数。
LR为什么要用sigmod函数?
最大熵原理
使用sigmod函数这样找出来的模型是熵最大的。那么为什么要熵最大?最大熵原理是概率模型学习的一个准则,最大熵原理认为,学习概率模型时,在所有可能的概率模型(分布)中,熵最大的模型是最好的模型。
最大熵模型
经验最小化准则
LR模型
其他
- 逻辑回归也会面临过拟合问题,所以我们也要考虑正则化。常见的有L1正则化和L2正则化。逻辑回归的L1正则化损失函数的优化方法常用的有坐标轴下降法和最小角回归法。逻辑回归的L2正则化损失函数的优化方法和普通的逻辑回归类似。
- 多元逻辑回归
- LR如何解决低维不可分,LR和SVM对比(原文链接:https://blog.csdn.net/cuiy0818/article/details/81288701)
Logistic Regression从几率的概念构建线性回归模型。用线性回归的预测结果去逼近后验概率的逻辑发生比。特征映射:通过特征变换的方式把低维空间转换到高维空间,而在低维空间不可分的数据,到高维空间中线性可分的几率会高一些。具体方法:核函数,如:高斯核,多项式核等等。
共同点:
1,LR和SVM都是分类算法
2,如果不考虑核函数,LR和SVM都是线性分类算法,即分类决策面都是线性的
3,LR和SVM都是有监督学习算法
4,LR和SVM都是判别模型
不同点:
1,损失函数的不同,逻辑回归采用的是log loss(对数损失函数),svm采用的是hinge loss(合页损失函数)
2,分类原理的不同,LR基于概率理论,通过极大似然估计的方法估计出参数的值,而SVM基于几何间隔最大化原理,认为存在最大几何间隔的分类面为最优分类面,从最大间隔出发,转化为求对变量w和b的凸二次规划问题
3,由于分类原理的不同,也导致了LR是所有样本都有影响,而SVM只是少量样本有影响的(支持向量),在支持向量外添加样本点是没有影响的。LR对异常值敏感,SVM对异常值不敏感(抗燥能力,SVM要强)(https://www.jianshu.com/p/1a41a1567b87)。支持向量机只考虑局部的边界线附近的点,而逻辑回归考虑全局(远离的点对边界线的确定也起作用,虽然作用会相对小一些)。LR模型找到的那个超平面,是尽量让所有点都远离他,而SVM寻找的那个超平面,是只让最靠近中间分割线的那些点尽量远离,即只用到那些支持向量的样本。
4,正因为LR受数据影响较大,所以在数据不同类别时,要先对数据做balancing;同样的,由于SVM依赖数据表达的距离测度,所以要先对数据做normalization标准化
5,对于线性不可分的情况,SVM的核函数可以帮助将低维不可分的数据转换到高维,变成线性可分的,而LR很少用到核函数(并不是没有。。)假设我们在LR里也运用核函数的原理,那么每个样本点都必须参与核计算,这带来的计算复杂度是相当高的。所以,在具体应用时,LR很少运用核函数机制。
6,SVM的损失函数就自带正则(损失函数中的1/2||w||^2项),这就是为什么SVM是结构风险最小化算法的原因,而LR必须另外在损失函数上添加正则化
关于LR和SVM的选择:
- 如果Feature的数量很大,跟样本数量差不多,这时候选用LR或者是Linear Kernel的SVM
- 如果Feature的数量比较小,样本数量一般,不算大也不算小,选用SVM+Gaussian Kernel
- 如果Feature的数量比较小,而样本数量很多,需要手工添加一些feature变成第一种情况
- 从图模型角度看LR
LR模型可以看作是CRF模型的低配版,在完全不定义随机变量交互,只考虑P(Y|X)的情况下,得到的就是LR模型。
最大熵相比LR,可以提取多组特征(最大熵定义了多个特征函数),本质上等价的。CRF又是最大熵模型序列化的推广。
本质上,LR和softmax是等价的,而且也可证最大熵和softmax也等价,即可证LR和最大熵的等价性
LR(最大熵模型)统计的是训练集中的各种数据满足特征函数的频数(conditional);贝叶斯模型统计的是训练集中的各种数据的频数;CRF统计的是训练集中相关数据 (比如说相邻的词,不相邻的词不统计) 满足特征函数的频数。
最大熵模型和CRF的区别:最大熵模型在每个状态都有一个概率模型,在每个状态转移时都要进行归一化。如果某个状态只有一个后续 状态,那么该状态到后续状态的跳转概率即为1。这样,不管输入为任何内容,它都向该后续状态跳转。而CRFs是在所有的状态上建立一个统一的概率模型,这 样在进行归一化时,即使某个状态只有一个后续状态,它到该后续状态的跳转概率也不会为1,从而解决了“labelbias”问题。因此,从理论上 讲,CRFs非常适用于中文的词性标注。
- LR 与线性回归的联系与区别
LR 与线性回归都是广义的线性回归;
线性回归模型的优化目标函数是最小二乘,而 LR 则是似然函数;
线性回归在整个实数域范围内进行预测,敏感度一致,而分类范围,需要在[0,1]。逻辑回归就是一种减小预测范围,将预测值限定为[0,1]间的一种回归模型,因而对于这类问题来说,逻辑回归的鲁棒性比线性回归的要好。
逻辑回归的模型本质上是一个线性回归模型,逻辑回归都是以线性回归为理论支持的。但线性回归模型无法做到 sigmoid 的非线性形式,sigmoid 可以轻松处理 0/1 分类问题。
线性回归主要做预测,LR 主要做分类(如二分类);
- 优化方法
批梯度下降会获得全局最优解,缺点是在更新每个参数的时候需要遍历所有的数据,计算量会很大,并且会有很多的冗余计算,导致的结果是当数据量大的时候,每个参数的更新都会很慢。
随机梯度下降是以高方差频繁更新,优点是使得sgd会跳到新的和潜在更好的局部最优解,缺点是使得收敛到局部最优解的过程更加的复杂。
小批量梯度下降结合了sgd和batch gd的优点,每次更新的时候使用n个样本。减少了参数更新的次数,可以达到更加稳定收敛结果,一般在深度学习当中我们采用这种方法
LR优缺点
优点:
形式简单,模型的可解释性非常好。从特征的权重可以看到不同的特征对最后结果的影响,某个特征的权重值比较高,那么这个特征最后对结果的影响会比较大。
模型效果不错。在工程上是可以接受的(作为baseline),如果特征工程做的好,效果不会太差,并且特征工程可以大家并行开发,大大加快开发的速度。
训练速度较快。分类的时候,计算量仅仅只和特征的数目相关。并且逻辑回归的分布式优化sgd发展比较成熟,训练的速度可以通过堆机器进一步提高,这样我们可以在短时间内迭代好几个版本的模型。
资源占用小,尤其是内存。因为只需要存储各个维度的特征值,。
方便输出结果调整。逻辑回归可以很方便的得到最后的分类结果,因为输出的是每个样本的概率分数,我们可以很容易的对这些概率分数进行cutoff,也就是划分阈值(大于某个阈值的是一类,小于某个阈值的是一类)。
缺点:
准确率并不是很高。因为形式非常的简单(非常类似线性模型),很难去拟合数据的真实分布。
很难处理数据不平衡的问题。举个例子:如果我们对于一个正负样本非常不平衡的问题比如正负样本比 10000:1.我们把所有样本都预测为正也能使损失函数的值比较小。但是作为一个分类器,它对正负样本的区分能力不会很好。
处理非线性数据较麻烦。逻辑回归在不引入其他方法的情况下,只能处理线性可分的数据,或者进一步说,处理二分类的问题 。
逻辑回归本身无法筛选特征。有时候,我们会用gbdt来筛选特征,然后再上逻辑回归。
LR如何并行化
1、按行并行。即将样本拆分到不同的机器上去。
2、按列并行。按列并行的意思就是将同一样本的特征也分布到不同的机器中去。