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

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

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

来自:刘建平

 

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

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

 

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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • GTest 总结_gtest单元测试

    GTest 总结_gtest单元测试GoogleC++单元测试框架(简称Gtest),可在多个平台上使用(包括Linux,MacOSX,Windows,Cygwin和Symbian),它提供了丰富的断言、致命和非致命失败判断,能进行值参数化测试、类型参数化测试、“死亡测试”。1断言一般的,要测试一个方法(函数)是否是正常执行的,可以提供一些输入数据,在调用这个方法(函数)后,得到输出数据,然后检查输出的数据是否与我们期望的结果是一致的,若一致,则说明这个方法的逻辑是正确的,否则,就有问题。在对输出结果进行检查(chec.

  • CUDA学习(四十)

    CUDA学习(四十)

  • 这10个Redis使用技巧,提升90%工作效率(建议收藏)

    前言 Redis 在当前的技术社区里是非常热门的。从来自 Antirez 一个小小的个人项目到成为内存数据存储行业的标准,Redis已经走过了很长的一段路。随之而来的一系列最佳实践…

  • 数据库分区、分表、分库、分片[通俗易懂]

    数据库分区、分表、分库、分片[通俗易懂]一、分区的概念        数据分区是一种物理数据库的设计技术,它的目的是为了在特定的SQL操作中减少数据读写的总量以缩减响应时间。        分区并不是生成新的数据表,而是将表的数据均衡分摊到不同的硬盘,系统或是不同服务器存储介子中,实际上还是一张表。另外,分区可以做到将表的数据均衡到不同的地方,提高数据检索的效率,降低数据库的频繁IO压力值,分区的优点如下:1、相对于单个文件系统或是硬盘…

  • whl文件安装方法

    whl文件安装方法   whl格式本质上是一个压缩包,里面包含了py文件,以及经过编译的pyd文件。使得可以在不具备编译环境的情况下,选择合适自己的python环境进行安装问题描述:whl下载了后不会安装解决方法:1.把下载的文件拖到桌面2.进入cmd命令行3.使用cd进入whl文件属性标识的目录)(红色框)4.使用“pipinstall文件名”安装下载的文件(绿色框)5.安装完成…

  • Ubuntu彻底卸载pycharm的方法[通俗易懂]

    Ubuntu彻底卸载pycharm的方法[通俗易懂]1.查看配置信息位置首先在解压的pycharm-2020.2.1文件夹中,查看Install-Linux-tar.txt,找到配置信息的位置(下图中蓝色标识)。2.卸载安装文件首先找到安装文件所在的目录,cd切换至其目录,然后sudorm-rfpycharm-2020.2.13.删除配置信息依次cd切换至Pycharm2020.2的位置,然后rm删除掉该用户使用记录,即能实现完全卸载。…

发表回复

您的电子邮箱地址不会被公开。

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