逻辑回归

我们可以使用线性模型进行回归,但是如果我们想要做分类任务,此时,我们该如何做呢?这个时候我们先考虑一下之前使用的线性模型是不是可以解决这个问题。首先,做分类任务的话,我们想要得到的预测值必定是离散的。但是在线性回归模型中我们用的是直线来进行拟合。这样,我们的拟合函数的值必然是连续的。那么我们第一个需要思考的问题就是如何把这些连续的值映射成为离散的值。

对于二分类的问题,我们想要做的是将预测的结果映射到0或者1,因此,我们需要引入一个函数,可以将我们预测结果映射到0或者1,我们可以使用如下的函数(这个函数不唯一,可以根据具体情况进行改变):

h_\theta(x)>=0.5,预测y=1

h_\theta(x)<0.5,预测y=0

但是这种方法存在一个问题,就是这不是一个连续的函数,我们希望找到的是一个可微的函数,这样,我们找到另一个被称为sigmoid的函数,其表达是如下:

g(z)=\frac{1}{1+e^{-z}}

其函数图象如下:

这样我们就可以得到一个新的模型,即逻辑回归模型:h_\theta(x)=g(\theta^{T}X),其中\theta^{T},X为向量。我们现在思考一下h_\theta(x)的意义是什么?

它的作用就是对于给定的变量,根据选择的参数计算得到等于1的可能性,即h_\theta(x)=P(y=1|x;\theta),例如h_\theta(x)=0.7,则表示70%的几率预测值为正向类。此时,一定要理解h_\theta(x)=P(y=1|x;\theta)h_\theta(x)=P(y=0|x;\theta)的意义,这将在后面的推到过程中至关重要。

在得到模型后,下一步我们要做的事情是什么呢?对于h_\theta(x)的函数图像大致如下:

这是一个非凸函数,若是用线性回归构建代价函数的方法对,然后对这个函数用梯度下降的话,可能会陷入局部最小值而找不到全局最小值。那么,此时的问题,就是我们该如何构建代价函数呢, 此时我们需要使用最大似然函数。最大似然函数的作用就是在给定分布的情况下会找出关于\theta最可能的值(即在所有可能的\theta中,寻找一个\theta值,使这个采样的可能性最大)。

下面给出逻辑回归代价函数的推导过程:

h_\theta(x)=P(y=1|x;\theta)h_\theta(x)=P(y=0|x;\theta)写在一起,得到如下公式

取似然函数为:

 取对数似然函数为:

l(\theta)=logL(\theta) =\sum_{i=1}^{m}(y^{i}logh_\theta(x^{i})+(1-y)log(1-h_\theta(x^{i})))

此时我们求到的是l(\theta)取最大值时\theta,当然我们希望l(\theta)能取到最小值,所以我们需要加一个负的系数,得到了J,其表示形式如下:

J(\theta)=-\frac{1}{m}\sum_{i=1}^{m}(y^{i}logh_\theta(x^{i})+(1-y)log(1-h_\theta(x^{i})))

这样我们就通过极大似然法得到了代价函数,下一步我们要做的当然还是求一组最小的\theta使得代价函数最小,方法依旧是梯度下降。主要的过程就是:

\theta_j=\theta_j-\alpha \frac{\partial }{\partial \theta_j}J(\theta_j)

化解后可以得到(建议读者自己化解一遍,可以加深理解):

\theta_j=\theta_j-\alpha \frac{1}{m}\sum_{i=1}^{m}(h_\theta(x^i)-y^i)x_{j}^{i}      

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值