逻辑回归原理_逻辑回归分析

逻辑回归原理_逻辑回归分析逻辑回归原理

大家好,又见面了,我是你们的朋友全栈君。

来自:刘建平

 

逻辑回归是分类算法,可以处理二元分类和多元分类。

名字里有“回归”二字,但不是回归算法。为什么名字有“回归”这个误导词?因为它的原理有回归模型的影子。

 

1. 从线性回归到逻辑回归

线性回归模型是求Y和X之间的线性关系系数Θ,满足Y= XΘ。此时Y是连续的,所以是回归模型。

想要Y是离散的话,对Y再做一次函数转换,变为g(Y)。如果g(Y)结果类别是两种,就是二元分类模型。

 

2. 二元逻辑回归的模型

对线性回归的结果做函数g的转换,变为逻辑回归。g一般取sigmoid函数:

逻辑回归原理_逻辑回归分析

取sigmoid函数,主要因为两个性质:

  • 当z趋于正无穷时,g(z)趋于1,当z趋于负无穷,g(z)趋于0。
  • (导数性质)逻辑回归原理_逻辑回归分析

令g(z)中的z为:z = ,得到二元逻辑回归模型一般形式:

逻辑回归原理_逻辑回归分析

       其中x为样本输入,hΘ(x)为模型输出,可以是某一分类的概率大小。hΘ(x)和二元分类样本y(假设为0和1)有这样对应关系,如果hΘ(x)>0.5,即xΘ>0,则y为1。如果hΘ(x)<0.5,即xΘ<0,则y为0。y = 0.5是临界情况,此时xΘ=0,无法确定分类。

       hΘ(x)值越小,分类为0的概率越高;值越大,分类为1的概率越高。靠近临界点,分类准确率会下降。

 

模型的矩阵模式

逻辑回归原理_逻辑回归分析

其中hΘ(X)为模型输出,m*1维度。X为样本特征矩阵,为m*n维度。Θ为模型系数,为n*1的向量。

 

3. 二元逻辑回归的损失函数

线性回归是连续的,使用模型误差的平方和来定义损失函数。逻辑回归使用最大似然法定义损失函数。

样本输出是0或1两类,得到:

逻辑回归原理_逻辑回归分析

把两个式子写成一个式子:

逻辑回归原理_逻辑回归分析

其中y的取值是0或者1。

得到y的概率分布函数,就可以用似然函数最大化求解模型系数Θ。为了方便求解,用对数似然函数最大化,对数似然函数取反即为损失函数J(θ)其中,似然函数的代数表达式为:

逻辑回归原理_逻辑回归分析

损失函数表达式:

逻辑回归原理_逻辑回归分析

矩阵形式:

逻辑回归原理_逻辑回归分析

  • 为内积。

 

4. 二元逻辑回归的损失函数的优化方法

损失函数最小化, 最常见的有梯度下降法、坐标轴下降法、等牛顿法。

下面是推到梯度下降法中θ步骤:

逻辑回归原理_逻辑回归分析

 

5. 二元逻辑回归的正则化

逻辑回归也有过拟合问题,需要正则化,常见的L1正则化和L2正则化。

 

L1正则化:

逻辑回归原理_逻辑回归分析

超参数α是惩罚系数,||θ||1为θ的L1范数。

L1正则化损失函数的优化方法常用坐标轴下降法和最小角回归法。

 

L2正则化:

逻辑回归原理_逻辑回归分析

||θ||2为θ的L2范数。

L2正则化损失函数的优化方法和普通的逻辑回归类似(梯度下降法)。

 

6. 二元逻辑回归的推广:多元逻辑回归

 

 

 

 

 

 

 

 

hθ(x)

 

转载于:https://www.cnblogs.com/keye/p/10506641.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106940.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • jsp实现留言板_jsp网站开发实例

    jsp实现留言板_jsp网站开发实例jsp+mysql开发网站留言板源代码下载源代码下载地址:http://www.zuidaima.com/share/1550463448304640.htm

    2022年10月20日
    5
  • 浅谈Java异常及其编译时异常和运行时异常的区别[通俗易懂]

    浅谈Java异常及其编译时异常和运行时异常的区别[通俗易懂]异常是程序编码和运行时经常发生的事件,了解异常有助于我们提高代码质量,增强系统的健壮性,这里总结一下载Java编程中,编译时异常和运行异常时的区别,并列举几种常见的异常,以供参考学习。

    2022年9月29日
    4
  • 有限域运算_有限域GF

    有限域运算_有限域GF  忙了一周,总算把网络编码的Demo搞定了。  回想一下,大部分的时间都花在有限域的运算上了。网上找了几个运算类,没一个像样的,算出来结果也没两个是一样的,汗…主要是三个方面的问题,一是本原多项式P(x),到现在我还是没搞懂这玩意是怎么定出来的,为什么同样是GF(2^8),有人说P(x)=x^8+x^4+x^3+x+1,有人又说是P(x)=x^8+x^4+x^3+x^2+1,而且两种还都可以

    2025年6月5日
    3
  • JavaScript—网络编程(3)-Object、String、Array对象和prototype属性[通俗易懂]

    JavaScript—网络编程(3)-Object、String、Array对象和prototype属性[通俗易懂]本节学习JavaScript的对象和方法(函数)~Object对象提供所有JScript对象通用的功能。obj=newObject([value])参数obj必选项。要赋值为Object对象的变量名。value可选项。任意一种JScript基本数据类型。(Number、Boolean、或String。)如果value为一个对象,返回不作改动的该对象。如果

    2022年5月9日
    50
  • Centos6.5镜像下载[通俗易懂]

    Centos6.5镜像下载[通俗易懂]CentOS6.5系统安装1、首先打开网易开源镜像站:http://mirrors.163.com/当然,大家也可以使用阿里开源镜像站:http://mirrors.aliyun.com/2、点击进入centos目录。3、因为我们选择安装centos6.5版本系统,所以点击进入6.5/目录4、我们打开里面的readme文件,找到下载地址:http://va…

    2022年4月30日
    264
  • 参数化查询原理

    参数化查询原理机房重构敲组合查询时 会遇到多个操作符 因为之前在使用参数化查询时只要遇到给数据库赋值时就使用参数 光知道这样能防止 SQL 注入 直到如今才知道它为什么能防止 SQL 注入 索性就把操作符也用成参数 但这时就报 语法错误 了 可是解决了很长时间 老以为是 sql 语句写错了 自我认为是那种丢掉一个空格或引号之类的错误 其实是没真正理解之前听到到 防 SQL 注入 的原理 或是说为什么能 防

    2025年11月27日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号