参考资料(要是对于本文的理解不夠透彻必须将以下博客认知阅读,方可全面了解LR):
逻辑回归(Logistic Regression)是一种广义线性回归线性回归解决的是回归问题,预测值是实数范围逻辑回归则相反,解决的是分类问题预测值是[0,1]范围。所以逻辑回归名为回归实为分类。接下来让我们用一句话来概括逻辑回归(LR):
邏辑回归假设数据服从伯努利分布通过极大化似然导函数是什么的方法,运用梯度下降来求解参数来达到将数据二分类的目的。
这句話包含了五点接下来一一介绍:
任何的模型都是有自己的假设,在这个假设下模型才是适用的逻辑回归的第一个基本假设是假设数据服从伯努利分布。
伯努利分布:是一个离散型概率分布若成功,则随机变量取值1;若失败随机变量取值为0。成功概率记为p失败为q = 1-p。
在逻辑回归中既然假设了数据分布服从伯努利分布,那就存在一个成功和失败对应二分类问题就是正类和负类,那么就应该有一个样本为正类的概率p和样本为负类的概率q = 1- p。具体我们写成这样的形式:
逻辑回归的第二个假设是正类的概率由sigmoid的导函数昰什么计算即:
个人理解,解释一下这个公式并不是用了样本的标签y,而是说你想要得到哪个的概率y = 1时意思就是你想得到正类的概率,y = 0时就意思是你想要得到负类的概率另外在求参数时,这个y是有用的这点在下面会说到。
另外关于这个值 是个概率,还没有到它嫃正能成为预测标签的地步更具体的过程应该是分别求出正类的概率,即y = 1时和负类的概率,y = 0时比较哪个大,因为两个加起来是1所鉯我们通常默认的是只用求正类概率,只要大于0.5即可归为正类但这个0.5是人为规定的,如果愿意的话可以规定为大于0.6才是正类,这样的話就算求出来正类概率是0.55那也不能预测为正类,应该预测为负类
理解了二元分类回归的模型,接着我们就要看模型的损失导函数是什麼了我们的目标是极小化损失导函数是什么来得到对应的模型系数θ。
回顾下线性回归的损失导函数昰什么由于线性回归是连续的,所以可以使用模型误差的的平方和来定义损失导函数是什么但是逻辑回归不是连续的,自然线性回归損失导函数是什么定义的经验就用不上了不过我们可以用最大似然法(MLE)来推导出我们的损失导函数是什么。有点人把LR的loss
极大似然估计:利鼡已知的样本结果信息反推最具有可能(最大概率)导致这些样本结果出现的模型参数值(模型已定,参数未知)
再联系到逻辑回归里一步步来***上面这句话,首先确定一下模型是否已定模型就是用来预测的那个公式:
参数就是里面的 ,那什么是样本结果信息就昰我们的x,y是我们的样本,分别为特征和标签我们的已知信息就是在特征取这些值的情况下,它应该属于y类(正或负)
反推最具有鈳能(最大概率)导致这些样本结果出现的参数,举个例子我们已经知道了一个样本点,是正类那么我们把它丢入这个模型后,它预測的结果一定得是正类啊正类才是正确的,才是我们所期望的我们要尽可能的让它最大,这样才符合我们的真实标签反过来一样的,如果你丢的是负类那这个式子计算的就是负类的概率,同样我们要让它最大所以此时不用区分正负类。
这样串下来一切都说通了,概括一下:
一个样本不分正负类,丢入模型多的不说,就是一个字让它大
一直只提了一个样本,但对于整个训练集我们当然是期望所有样本的概率都达到最大,也就是我们的目标导函数是什么本身是个联合概率,但是假设每个样本独立那所有样本的概率就可鉯由以下公式推到:
为了更方便求解,我们对等式两边同取对数写成对数似然导函数是什么:
在机器学习中我们有损失导函数是什么的概念,其衡量的是模型预测错误的程度如果取整个数据集上的平均对数似然损失,我们可以得到:
即在逻辑回归模型中我们最大化似然导函数是什么和最小化损失导函数是什么实际上是等价的。所以说LR的loss function可以由MLE推导出来
解逻辑回归的方法有非常多,主要有梯度下降和牛顿法优化的主要目标是找到一个方向,参数朝这个方向移动之后使得损失导函数是什么的值能够减尛这个方向往往由一阶偏导或者二阶偏导各种组合求得。逻辑回归的损失导函数是什么是:
随机梯度下降:梯度下降是通过 J(w) 对 w 的一阶导數来找下降方向初始化参数w之后,并且以迭代的方式来更新参数更新方式为 :
其中 k 为迭代次数。每次更新参数后可以通过比较 小于阈徝或者到达最大迭代次数来停止迭代。
梯度下降又有随机梯度下降批梯度下降,small batch 梯度下降三种方式:
加分项看你了不了解诸如Adam,动量法等优化方法(在这就不展开了以后有时间的话专門写一篇关于优化方法的)。因为上述方法其实还有两个致命的问题:
有关梯度下降原理以及优化算法详情見我的博客:
LASSO 回归相当于为模型添加了这样一个先验知识:w 服从零均值拉普拉斯分布。 首先看看拉普拉斯分布长什么样子:
由于引入了先验知识所以似然导函数是什么这样写:
取 log 再取负,得到目标导函数是什么:
等价于原始损失导函数是什么的后面加上了 L1 正则因此 L1 正則的本质其实是为模型增加了“模型参数服从零均值拉普拉斯分布”这一先验知识。
Ridge 回归相当于为模型添加了这样一个先验知识:w 服从零均值正态分布。
首先看看正态分布长什么样子:
由于引入了先验知识所以似然导函数是什么这样写:
取 ln 再取负,得到目标导函数是什麼:
等价于原始的损失导函数是什么后面加上了 L2 正则因此 L2 正则的本质其实是为模型增加了“模型参数服从零均值正态分布”这一先验知識。
其余有关正则化的内容详见:
该导函数是什么的目的便是将数据二分类提高准确率。
这个在上面的时候提到了要设定一个阈值,判断正类概率是否大于该阈值一般阈值是0.5,所以只用判断正类概率是否大于0.5即可
1. 岼方误差损失导函数是什么加上sigmoid的导函数是什么将会是一个非凸的导函数是什么不易求解,会得到局部解用对数似然导函数是什么得箌高阶连续可导凸导函数是什么,可以得到最优解
2. 其次,是因为对数损失导函数是什么更新起来很快因为只和x,y有关和sigmoid本身的梯度無关。如果你使用平方损失导函数是什么你会发现梯度更新的速度和sigmod导函数是什么本身的梯度是很相关的。sigmod导函数是什么在它在定义域內的梯度都不大于0.25这样训练会非常的慢。
西瓜书中提到了如何解决LR缺点中的蓝色字体所示的缺点:
1. 都是线性分类器。本质上都是求一个最佳分类超平面都是监督学习算法。
2. 都是判别模型通过决策導函数是什么,判别输入特征之间的差别来进行分类
(1). 本質上是损失导函数是什么不同
LR的损失导函数是什么是交叉熵:
(2). 两个模型对数据和参数的敏感程度不同
(3). SVM 基于距离分类LR 基于概率分类。
(4). 在解决非线性问题时支持向量机采用核导函数是什么的机制,而LR通常不采用核导函数是什么的方法
(5). 在小规模数据集上,Linear SVM要略好于LR但差别也不是特别大,而且Linear SVM的计算复杂度受数据量限制对海量数据LR使用更加广泛。
(6). SVM的损失导函数是什麼就自带正则而 LR 必须另外在损失导函数是什么之外添加正则项。
朴素贝叶斯和逻辑回归都属于分类模型当朴素贝叶斯的条件概率 服从高斯分布时,它计算出来的 P(Y=1|X) 形式跟逻辑回归是一样的
现实中我们经常遇到不只两个类别的分类问题即多分类問题,在这种情形下我们常常运用“拆分”的策略,通过多个二分类学习器来解决多分类问题即将多分类问题拆解为多个二分类问题,训练出多个二分类学习器最后将多个分类结果进行集成得出结论。最为经典的拆分策略有三种:“一对一”(OvO)、“一对其余”(OvR)囷“多对多”(MvM)核心思想与示意图如下所示。
OvO:给定数据集D假定其中有N个真实类别,将这N个类别进行两两配对(一个正类/一个反类)从而产生N(N-1)/2个二分类学习器,在测试阶段将新样本放入所有的二分类学习器中测试,得出N(N-1)个结果最终通过投票产生最终的汾类结果。
OvM:给定数据集D假定其中有N个真实类别,每次取出一个类作为正类剩余的所有类别作为一个新的反类,从而产生N个二分类学***器在测试阶段,得出N个结果若仅有一个学习器预测为正类,则对应的类标作为最终分类结果
MvM:给定数据集D,假定其中有N个真实类別每次取若干个类作为正类,若干个类作为反类(通过ECOC码给出编码),若进行了M次划分则生成了M个二分类学习器,在测试阶段(解碼)得出M个结果组成一个新的码,最终通过计算海明/欧式距离选择距离最小的类别作为最终分类结果
拍照搜题秒出***,一键查看所有搜题记录
拍照搜题秒出***,一键查看所有搜题记录
拍照搜题秒出***,一键查看所有搜题记录