逻辑回归(logistic Regression)

分类问题

在分类中,如果要预测的变量y的离散的,我们将这一学习过程称之为逻辑回归,可以判断的二元以至多元问题

二元分类

两个类分别为正向、负向类,因变量y={0,1},0为负向类,1为正向类,预测过程中,我们设置一个阈值,例如h(θ)>0.5 y=1 h(θ)<=0.5 y=0

对于逻辑回归算法,我们要做到的是,将输出值控制在0-1之间

假说表示

要实现因变量y的值在0-1之间, 我们要引入逻辑回归模型,回归模型的假设是 hθ(x)=g(θTX)

X为特征向量,g表示的是逻辑函数,假设中θTX即为求得的y,经过g逻辑函数变换之后得到0-1之间的值

常用的g函数有sigmoid函数 g(z)=11+ez

hθ(x)的作用就是给出输入变量为正向类的几率,比如hθ(x)=0.7表明有70%的几率使y为正向类(y=1),那么

P(y=0|x;θ) = 1 - hθ(x) = 0.3

判断边界

逻辑回归时

hθ(x)>=0.5,也就是g(θTX)>=0.5 预测y = 1

hθ(x)<0.5,也就是g(θTX)<0.5预测y = 0

反映在坐标轴上就是(x轴表示正负向)

代价函数

对于线性回归模型的损失(代价)函数,使用的是所有实例(模型)的误差的平方和,代价函数是光滑的如下图

但是对于例如逻辑回归模型中用的hθ(x)=11+eθTX是非线性的,表现在坐标轴上是一个非凸函数,例如下图

也就意味着损失(代价)函数存在很多的局部最优解(极小值),会影响梯度下降算法寻找最小值

面对这种情况我们要做的是找到一种损失(代价)函数的构造方法使得其为凸函数(convex),

损失函数J(θ)=1mi=1mCost(hθ(x(i)),y(i))

其中Cost(hθ(x),y)={log(hθ(x))if y=1log(1hθ(x))if y=0

上述损失函数的图像如下

当y=1的时候,如果预测值h=0,那么损失函数肯定趋于无穷大,反之y=0,预测值=1同理

简化的成本函数和梯度下降

以上损失函数公式可以化简为

Cost(hθ(x),y)=ylog(hθ(x))(1y)log(1hθ(x))

代价函数也就是J(θ)=1mi=1mCost(Hθ(x),y)

有上面这样一个代价函数之后,我们就可以使用梯度下降

θj=θjαθjJ(θ)

也就是 θj=θjα1mi=1m(hθ(x(i))y(i))xj(i)

上述式子需要注意的是,逻辑回归的预测值函数与线性回归的不同,使用的是sigmoid函数,而不是直接计算θTX,所以与线性回归并不相同

高级优化

与梯度下降不同,我们也有一些更高级、复杂的算法,类似共轭梯度法BFGS,L-BFGS(限制变尺度法)

以上几种高级方法的有点是,不需要手动设置 α值且往往比梯度下降法更加快速,但是更加复杂

多类别分类:一对多

简单的举例:要将病人当前的状态分类,y=0表示没生病 y=1表示感冒,y=2表示流感

相当于有三块聚集的类别且各不相同,这种一对多的分类问题又被称之为一对余的方法,也就是先选定一个类别作为正向类1,其余的类别相当于反向类0,如下图所示


也就相当于我们得到了三个分类器分别将这类1,2,3分为 类1&&其他,类2&&其他,类3&&其他

记录为hθ(i)(x) ,其中类i为正向类,其余为负向类, 且hθ(i)(x)=p(y=i|x;θ)(i=1,2,3...k),在预测时,将自变量x带入每一个预测模型中,选择P最大的模型,找出相应的类别

posted @   crazy18  阅读(338)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
点击右上角即可分享
微信分享提示