逻辑回归(logistic regression)是统计学习中的经典分类方法。逻辑回归(Logistic Regression, LR)模型其实仅在线性回归的基础上,套用了一个逻辑函数,但也就由于这个逻辑函数,使得逻辑回归模型成为了机器学习领域一颗耀眼的明星,更是计算广告学的核心。
逻辑斯蒂分布
设是连续随机变量,服从逻辑斯蒂分布是指具有下列分布函数与密度函数:
逻辑斯蒂分布的密度函数
逻辑斯蒂分布的分布函数
特别注意逻辑斯蒂分布的概率分布函数自中心附近增长速度较快,而在两端的增长速度相对较慢。形状参数ss的数值越小,则概率分布函数在中心附近增长越快。
当μ=0,s=1μ=0,s=1 时,逻辑斯蒂分布的概率分布函数就是我们常说的sigmoid函数:
且其导数为:
这是一个非常好的特性,并且这个特性在后面的推导中将会被用到。
sigmoid函数优点:
输出范围优先,数据在传递的过程中不容易发散。
输出范围为(0,1),所以可以用作输出层,输出表示概率,抑制两头,对中间细微变化敏感,对分类有利。
是任意阶可导的凸函数,有很好的数学性质。
逻辑斯蒂回归为什么要用sigmoid函数:
逻辑回归是广义线性回归的一个特例,,其中函数成为联系函数。逻辑斯蒂函数是一个单调可微,罗辑回归人为函数分布服从伯努利分布,将其写成指数形式就是sigmoid函数。
二项逻辑斯蒂回归模型
二项逻辑斯蒂回归模型是一种分类模型,由条件概率分布表示,形式为参数化的逻辑斯蒂分布,这里,随机变量取值为实数,随即变量取值为1或0。
和是参数,称为权值向量,称为偏置,是和的内积
对于给定的输入实例,计算两个概率值,逻辑斯蒂回归比较两个条件概率值的大小,将实例分到概率值较大的那一类。
模型参数估计
应用极大似然估计法估计模型参数。
设
似然函数为:
(为什么要用似然函数?因为目标是要让预测为正的概率最大,且预测为负的概率也最大,即每一个样本预测都要得到最大的概率,将所有的样本预测后的概率进行相乘都最大。)
对数似然函数为:
对求极大值,得到的估计值。这样,问题就变成以对数似然函数为目标函数的最优化问题,通常采用梯度下降或者拟牛顿法。
假设的极大似然估计值是,那么学到的逻辑斯蒂回归模型为:
逻辑回归作为一个回归,如何应用到分类上?得到的y值是一个连续的变量,逻辑回归的做法是划定一个阈值。
逻辑回归的正则化
当模型的参数过多时,很容易遇到过拟合的问题,正则化是结构风险最小化的一种实现方式。通过经验风险加一个正则项来惩罚过大的参数来防止过拟合。
p = 1或 2,表示范数或范数
惩罚的LR回归:
惩罚的LR回归:
C是用于调节目标函数和惩罚项之间的关系。
使用可以得到稀疏的权值
使用可以得到平滑的权值
LR的优点:
- 形式简单,模型的可解释性强,从特征的权重可以看到不同的特征对最后结果的影响。
- 训练速度快,分类的时候计算量仅仅只和特征的数目相关。
- 资源占用小。
- 无需事先假设数据分布,这样就避免了假设分布不准确所带来的问题,它不是仅预测出类别,而是可以得到近似概率预测。
LR的缺点:
1. 准确率并不是很高,因为形式非常简单(类似于线性回归),很难去拟合数据的真实分布。
2. 很难处理数据不平衡的问题。
3. 处理非线性数据教麻烦,只能处理线性可分的数据。或者进一步讲,只能处理二分类。
4. 逻辑回归本身无法筛选特征。
LR和SVM的区别与联系:
相同点:
1. 都是监督的分类算法。
2. 如果不考虑核函数,LR和SVM都是线性分类算法,即分类决策面都是线性的。
3. 都是判别式模型
一般来说,分类算法都是求解,即对一个新的样本计算其条件概率,这个可以看作是一个后验概率。
判别式模型是直接生成一个表示或者的判别函数(或预测模型)
生成式模型是先计算联合概率分布,然后通过贝叶斯公式转化为条件概率。
SVM,LR,KNN和决策树都是判别式模型,而朴素贝叶斯、隐马尔科夫模型是生成式模型。
生成式算法尝试去找到这个数据是曾敏生成的(产生),然后再对一个信号进行分类。基于你的生成假设,那么那个类别最有可能产生这个信号,这个信号就属于那个类别。判别式模型不关心数据是怎么生成的,它只关心信号之间的差别,然后用差别来简单对给定的一个信号进行分类。
不同点:
LR 和Linear SVM本质上的区别来自loss function 的不同
LR的损失函数是cross entropy :
SVM的损失函数是最大化间隔距离:
不同的loss function 代表了不用的假设前提,也就代表了不同的分类原理。
LR方法是基于概率理论,假设样本为0或者1的概率可以用sigmoid函数来表示,然后通过极大似然估计的方法估计出参数的值,或者从信息论的角度来看,其是让模型产生的分布尽可能接近训练数据的分布,相当于最小化KL距离(因为KL距离展开后,后一项为常数,剩下的一项就是cross entropy)
SVM基于几何间隔最大化原理,认为存在最大几何间隔的分类面为最优分类面。
所以SVM只考虑分类面上的点(即支持向量),线性SVM不直接依赖于数据分布,分类面不受一类点的影响。
而LR考虑全局(远离的点对边界线的确定也起作用),受所有数据点的影响,如果数据不同类别strongly unbalance,一般需要先对数据做balancing
SVM不能产生概率,LR可以产生概率
LR本身是基于概率的,所以它产生的结果代表了分成某一类的概率,而SVM则因为优化的目标不含有概率因素,所以其不能直接产生概率。
在解决非线性问题时,SVM采用核函数,而LR通常不采用核函数
分类模型的结果就是计算绝策面,模型训练的过程就是绝策面的计算过程。我们知道,在计算决策面时,SVM中只有少数代表支持响亮的样本参与计算,也就是只有少数几个样本需要参与核计算。然而,LR算法中,每个样本点都必须参与绝策面的计算过程中,也就是说,假设我们在LR里也应用核函数的原理,每个样本点都必须参与核计算,这带来的计算复杂度是很高的。所以,在具体应用时,LR很少应用核函数。
SVM依赖于数据的测度,而LR则不受影响
因为SVM是基于距离的,其依赖于不同维度测度的不同,如果差别较大需要做normalization。而LR是基于概率的,所以LR是不受数据不同维度测度不同的影响,如果LR要加上正则化时,也需要normalization。
如果使用梯度下降算法,则一般都需要feature scaling
如果不归一化,各维特征差距很大,目标函数就会是“扁”的:
(图中椭圆表示目标函数的等高线,两个坐标轴表示两个特征)
这样在进行梯度下降的时候,梯度的方向就会偏离最小值的方向,走很多弯路。如果归一化了,那么目标函数就“圆”了
SVM自带结构风险最小化,LR则是经验风险最小化
因为SVM本身就是优化最小化,所以其优化的目标函数本身就含有结构风险最小化,所以不需要加正则化。
而LR不加正则化的时候,其优化的目标是经验风险最小化,所以需要加入正则化,增强模型的泛化能力。
应用场景分析:
- 如果feature的数量很大,跟样本数量差不多,这时选用LR或者是Linear Kernel 的SVM
- 如果feature的数量比较小,样本数量一般,选用SVM+Gaussian Kernel
- 如果feature的数量比较小,而样本数量很多,需要手工添加一些feature编程第一种情况。
连续特征的离散化:在什么情况下将连续的特征离散化之后可以获得更好的效果?
在CTR预估中,一般都是用LR,而且特征都是离散化的。为什么要一定要用离散特征?这样做的好处在哪里?
在工业界,很少直接将连续值作为逻辑回归模型的特征输入,而是将连续特征离散化为一系列0、1特征交给逻辑回归模型,这样做的优势有以下几点:
1、离散特征的增加和减少都很容易,易于模型的快速迭代。(离散特征的增加和减少,模型也不需要调整,重新训练是必须的,相比于贝叶斯或者树模型要迭代的快);
2、稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展;
3、离散化后的特征对异常数据有很强的鲁棒性;
4、逻辑回归属于广义线性模型,表达能力受限,单变量离散化为N个后,每个变量有单独的权重,相当于为模型引入了非线性。
5、离散化后可以进行特征交叉,加入特征A离散化为M个值,特征B离散化为N个值,那么交叉之后会有M*N个变量,进一步引入非线性,提升表达能力;
6、特征离散化后,模型会更加稳定,比如如果对用户年龄离散化,不会因为一个用户年龄长了一岁就变成一个完全不同的人。
7、特征离散化后,起到了简化了逻辑回归模型的作用,降低了模型过拟合的风险(当使用连续特征时,一个特征对应于一个权重,那么,如果这个特征权重较大,模型就会很依赖于这个特征,这个特征的一个微小变化可能会导致最终结果产生很大的变化,这样的模型很危险,当遇到新样本的时候很可能因为对这个特征过分敏感而得到错误的分类结果,也就是泛化能力差,容易过拟合。而使用离散特征的时候,一个特征变成多个,权重也变成多个,那么值钱连续特征对模型的影响力就被分散弱化了,从而降低了过拟合的风险。)
模型是使用离散特征还是连续特征,其实是一个“海量离散特征+简单模型” 和“少量连续特征+复杂模型”的权衡。即可以用线性模型,也可以用连续特征加深度学习。
在机器学习中,有哪些特征选择的工程方法?
数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。
常用于选择特征的方法有:
1 计算每一个特征与响应变量的相关性:常用的是计算皮尔逊系数和互信息系数,皮尔逊系数只能衡量线性相关性而互信息系数能够很好地度量各种相关性。得到相关性之后就可以排序选择特征了。
2 构建单个特征的模型,通过模型的准确性为特征排序,借此来选择特征。
3通过L1正则项来选择特征:L1正则方法具有稀疏解的特性,因此天然具备特征选择的特性。
4训练能够对特征打分的预选模型
5 通过特征组合后再来选择特征。这种做法在推荐系统和广告系统中比较常见,原因是用户数据比较稀疏,组合特征能够同时兼顾全局模型和个性化系统。
6通过深度学习具有自动学习特征的能力。