机器学习--Logistic Regression(逻辑回归)---分类器

2023-11-15

写在之前:
带着问题去学习,往往能够让我们有着一个纲领的学习方法,而不会迷失在各种概念,和公式的推导中。
1、什么是逻辑回归?逻辑回归的推导,损失函数的推导分别是什么?为什么LR需要归一化或者说取log
2、LR为什么要用sigmoid函数?这个函数的优点与缺点?为什么不用其他函数
3、为什么LR需要把特征离散化,且离散化后效果更好。
4、LR与线性回归,SVM有什么不同?

1. 回归与分类的区别

回归是统计学中最有力的工具之一。机器学习监督学习算法分为分类算法和回归算法两种,其实就是根据类别标签分布类型为离散型、连续性而定义的。回归算法用于连续型分布预测,针对的是数值型的样本,使用回归,可以在给定输入的时候预测出一个数值,这是对分类方法的提升,因为这样可以预测连续型数据而不仅仅是离散的类别标签。

2. Logistic 分布

Logistic Regression 虽然被称为回归,但其实际上是分类模型,并常用于二分类。Logistic Regression 因其简单、可并行化、可解释强深受工业界喜爱。

Logistic 回归的本质是:假设数据服从这个分布,然后使用极大似然估计做参数的估计。
Logistic 分布是一种连续型的概率分布,其分布函数和密度函数分别为:
在这里插入图片描述其中,u 表示位置参数, r >0 为形状参数。其图像特征如下。
在这里插入图片描述Logistic 分布是由位置和尺度参数定义。而Sogmoid函数就是Logistic 分布在u-0, r=1的特殊形式。

考虑二分类的情况。如下所示,期望找到一个分离平面,能将二者划分开。而线性回归的目的是找到一个函数使得所有的点的误差距离最小。如第二图所示。
在这里插入图片描述在这里插入图片描述Logistic 回归在找到决策边界w1x1+w2x2+b =0 , 后,还要找到分类概率P(Y=1)与输入向量X的直接关系,然后通过比较概率值来判别类别。 这时候WX+b 与类别概率的用什么函数来拟合呢??而且概率的分布是连续的。要求我们的函数时连续的,值域为[0,1]. 当然第一时间就想到了sogmoid函数。设Z = WX+b.
则输出的概率Y = 1/(1+ exp^(-z))…
到此我们可以利用这个函数进行分类任务了。但是就这样有个缺陷就是之预测了正例的概率。
所以考虑对sogmoid函数取对数。则有ln(y/(1-y)) = Z = WX+b.
取对数有如下几个优点:
1,直接对分类的概率进行求解。
2,不仅可以预测出类别,还能得到该预测的概率。
3, 对数函数时任意可导的凸函数,有很多数值优化算法可以求解最优解。

为什么要对特征进行离散化:

在这里插入图片描述

特征离散化,从数学角度来说可以认为是增加robustness,但是更重要的,make sense of the data,将数据转变成人类可以理解、可以validate的格式。
另外一点,我们LR是广义的线性模型。线性模型就得通过离散化将非线性的特征转化为线性的,这个过程就是离散化。
下面一段内容摘自LR与SVM的区别, 【机器学习】逻辑回归(非常详细)
离散化提升特征的表达能力,提高鲁棒性。
“LR 是参数模型,SVM 是非参数模型,参数模型的前提是假设数据服从某一分布,该分布由一些参数确定(比如正太分布由均值和方差确定),在此基础上构建的模型称为参数模型;非参数模型对于总体的分布不做任何假设,只是知道总体是一个随机变量,其分布是存在的(分布中也可能存在参数),但是无法知道其分布的形式,更不知道分布的相关参数,只有在给定一些样本的条件下,能够依据非参数统计的方法进行推断。所以 LR 受数据分布影响,尤其是样本不均衡时影响很大,需要先做平衡,而 SVM 不直接依赖于分布”

在工业界,很少直接将连续值作为逻辑回归模型的特征输入,而是将连续特征离散化为一系列0、1特征交给逻辑回归模型,这样做的优势有以下几点:
0. 离散特征的增加和减少都很容易,易于模型的快速迭代;

  1. 稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展;
  2. 离散化后的特征对异常数据有很强的鲁棒性:比如一个特征是年龄>30是1,否则0。如果特征没有离散化,一个异常数据“年龄300岁”会给模型造成很大的干扰;
  3. 逻辑回归属于广义线性模型,表达能力受限;单变量离散化为N个后,每个变量有单独的权重,相当于为模型引入了非线性,能够提升模型表达能力,加大拟合;
  4. 离散化后可以进行特征交叉,由M+N个变量变为M*N个变量,进一步引入非线性,提升表达能力;
  5. 特征离散化后,模型会更稳定,比如如果对用户年龄离散化,20-30作为一个区间,不会因为一个用户年龄长了一岁就变成一个完全不同的人。当然处于区间相邻处的样本会刚好相反,所以怎么划分区间是门学问;6. 特征离散化以后,起到了简化了逻辑回归模型的作用,降低了模型过拟合的风险。
    (参考:链接:https://www.zhihu.com/question/31989952/answer/54184582)

与其他模型比

1、 与线性回归

逻辑回归是在线性回归的基础上加了一个 Sigmoid 函数(非线形)映射,使得逻辑回归称为了一个优秀的分类算法。本质上来说,两者都属于广义线性模型,但他们两个要解决的问题不一样,逻辑回归解决的是分类问题,输出的是离散值,线性回归解决的是回归问题,输出的连续值。

我们需要明确 Sigmoid 函数到底起了什么作用:

线性回归是在实数域范围内进行预测,而分类范围则需要在 [0,1],逻辑回归减少了预测范围;线性回归在实数域上敏感度一致,而逻辑回归在 0 附近敏感,在远离 0 点位置不敏感,这个的好处就是模型更加关注分类边界,可以增加模型的鲁棒性。

2、与 SVM

相同点:

都是分类算法,本质上都是在找最佳分类超平面;都是监督学习算法;都是判别式模型,判别模型不关心数据是怎么生成的,它只关心数据之间的差别,然后用差别来简单对给定的一个数据进行分类;都可以增加不同的正则项。

不同点:

  • LR 是一个统计的方法,SVM 是一个几何的方法;
  • SVM 的处理方法是只考虑 Support Vectors,也就是和分类最相关的少数点去学习分类器。而逻辑回归通过非线性映射减小了离分类平面较远的点的权重,相对提升了与分类最相关的数据点的权重;
    *损失函数不同:LR 的损失函数是交叉熵,SVM 的损失函数是 HingeLoss,这两个损失函数的目的都是增加对分类影响较大的数据点的权重,减少与分类关系较小的数据点的权重。对 HingeLoss 来说,其零区域对应的正是非支持向量的普通样本,从而所有的普通样本都不参与最终超平面的决定,这是支持向量机最大的优势所在,对训练样本数目的依赖大减少,而且提高了训练效率;
  • LR 是参数模型,SVM 是非参数模型,参数模型的前提是假设数据服从某一分布,该分布由一些参数确定(比如正太分布由均值和方差确定),在此基础上构建的模型称为参数模型;非参数模型对于总体的分布不做任何假设,只是知道总体是一个随机变量,其分布是存在的(分布中也可能存在参数),但是无法知道其分布的形式,更不知道分布的相关参数,只有在给定一些样本的条件下,能够依据非参数统计的方法进行推断。所以 LR 受数据分布影响,尤其是样本不均衡时影响很大,需要先做平衡,而 SVM 不直接依赖于分布;
  • LR 可以产生概率,SVM 不能 ;
  • LR 不依赖样本之间的距离,SVM 是基于距离的;
  • LR 相对来说模型更简单好理解,特别是大规模线性分类时并行计算比较方便。而 SVM 的理解和优化相对来说复杂一些,SVM 转化为对偶问题后,分类只需要计算与少数几个支持向量的距离,这个在进行复杂核函数计算时优势很明显,能够大大简化模型和计算。

下面时3分类的结果,效果还不错,训练精度与测试精度很接近。
在这里插入图片描述在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

机器学习--Logistic Regression(逻辑回归)---分类器 的相关文章

随机推荐

  • 【云原生之Docker实战】使用Docker部署pigallery2照片库网站

    云原生之Docker实战 使用Docker部署pigallery2照片库网站 一 pigallery2介绍 二 本地环境介绍 2 1 本地环境规划 2 2 本次实践介绍 三 本地环境检查 3 1 检查Docker服务状态 3 2 检查Doc
  • pysot-toolkit--eval.py笔记(读取算法结果,根据评价指标计算结果并可视化)

    pysot toolkit 的eval文件 目前pysot toolkit与pysot的eval不同之处在于是否有VOT2019等最新的数据集评价程序 包含的数据有 OTB系列 VOT2016 2018 2017 短时序列 VOT2018
  • STM32嵌入式FLASH擦除与写入

    嵌入式Flash Flash具有以下主要特性 1 对于STM32F40x和 STM32F41x 容量高达1 MB 对于STM32F42x和STM32F43x 容量高达2MB 128位宽数据读取 意思就是128 8 16 字节 2 字节 半字
  • 服务器更换主板后系统无法启动

    针对 2008R2 linux6 以上版本更换主板后无法启动 由于机器故障不得不更换主板 这样主板上的启动项就会随着老主板一起报废开机后找不到 启动项无法进入系统 新更换的主板没有操作系统的启动项 进入 RAID 看 raid 信息是否完整
  • 正大国际期货:你身边有朋友或者亲人做期货挣钱的没有?

    有 但不长久 可能是这段时间行情匹配了他的交易系统 那么才有可能 期货市场上账到钱的概率是极少的 基本可能说 5 都不到 来了都是亏了 暴仓了 然后再走了 剩下的就是还在默默的亏损 但现实就是这个样子 但不是谁都能够做到和盈利 我们抛开一切
  • PowerShell使用教程(挑战全网最全,不喜勿喷)

    PowerShell使用教程 遇到它是因为我有一个appx文件要安装 结果 win10没法安装 最后遇到了它 PowerShell 1 背景及定义 微软是一个很 低调 的公司 取名为微软 感觉有 微微软下去 的意思 这是个玩笑了 windo
  • C++循环案例

    目录 1 while循环练习案例 猜数字 2 练习案例 水仙花数 3 练习案例 敲桌子 4 练习案例 乘法口诀表 1 while循环练习案例 猜数字 案例描述 系统随机生成一个1到100之间的数字 玩家进行猜测 如果猜错 提示玩家数字过大或
  • DVCon US 2022论文集合

    2022年DVCon US Paper共55篇 已开放下载论文全集 在此整理各篇论文的摘要和下载链接 方便大家获取和交流 也可后台私信获取 1 A Comparative Study of CHISEL and SystemVerilog
  • 华为架构师8年经验谈:从单体架构到微服务的服务化演进之路

    华为架构师8年经验谈 从单体架构到微服务的服务化演进之路 目录技术文章 2016年6月28日 转自 http www 58maisui com 2016 06 28 a 327 ref myread 本次分享的大纲如下 传统应用开发面临的挑
  • 系统呼叫服务器,一种基于服务器的后台呼叫方式及系统技术方案

    技术实现步骤摘要 本专利技术涉及通讯领域 特别是涉及一种基于服务器的后台呼叫方式及系统 技术介绍 通话是人们生活中必不可少的功能 我们在拨打电话时都遇到过因对方手机关机 占线 暂时无法接通或停机而无法及时联络到对方的情况 目前的处理方式是
  • 人生清单100条

    人生清单是一个个人向往 目标和追求的集合 每个人的清单都会因其个人价值观 兴趣和优先事项而不同 以下是一个包含一些常见目标和价值的人生清单的示例 以供参考 1 学习一门新语言 2 旅行至少10个不同的国家 3 完成一次马拉松 4 创办自己的
  • python 自动复制U盘文件到电脑磁盘v202112012250

    python 自动复制U盘文件到电脑磁盘v202112012250 打包exe去黑框 pyinstaller F w D a1 py import pathlib import time import datetime import shu
  • Dynamics CRM邮箱配置 (OP版)

    Dynamics CRM邮箱配置 Dynamics CRM对邮箱有很好的支持 开通邮箱后方便用户通过邮件进行Dynamics CRM的业务处理 同时也可以作为一直消息流提醒的手段应用于审批 通知等场景 可以做一些更深入的功能拓展 本次集成以
  • MyBatis-Plus详解

    MyBatis Plus 1 简介 1 1 操作步骤 1 2 mybatis plus mapper编写规则 2 注解介绍 2 1 常用注解 2 2 mybatis plus通用Mapper接口 3 条件构造器 4 高级查询 4 1 列投影
  • 学习笔记:多重纹理

    学习笔记 多重纹理 2009 09 01 14 20 52 转载 分类 学习笔记 多重纹理 多重纹理就是在渲染一个多边形的时候可以用到多张纹理图 把多张纹理图进行一些颜色的操作 可以达到一些效果 但是多重纹理必须是在显卡支持的情况下 但是还
  • centOS 配置DNS

    修改 etc resolv conf 重启网卡或者重启电脑后 etc resolv conf会恢复到原来的状态 原因说明 CentOS redhat下面直接修改 etc resolv conf 达到临时效果 但是重启网络后会重置 重启后 根
  • c++ 结构体

    1 结构体定义 整形 长整形 字符型以及浮点型等这些数据类型指南记录单一的数据 而这些数据只能被称为基础数据类型 如果需要定义某种类型 同时包含以上几种的基本数据类型 比如一个人同时含有身高 体重以及年龄的属性 而结构体就是将这些变量类型包
  • @ApiImplicitParams这个注解的作用

    ApiImplicitParams这个注解的作用 ApiImplicitParams是一个用于描述方法参数的注解 它可以用在方法上 作用是为方法中的参数定义多个注解 并将这些注解集中到一个注解集中进行统一管理 通过 ApiImplicitP
  • 1028. 从先序遍历还原二叉树

    题目 https leetcode cn com problems recover a tree from preorder traversal 我们从二叉树的根节点 root 开始进行深度优先搜索 在遍历中的每个节点处 我们输出 D 条短
  • 机器学习--Logistic Regression(逻辑回归)---分类器

    写在之前 带着问题去学习 往往能够让我们有着一个纲领的学习方法 而不会迷失在各种概念 和公式的推导中 1 什么是逻辑回归 逻辑回归的推导 损失函数的推导分别是什么 为什么LR需要归一化或者说取log 2 LR为什么要用sigmoid函数 这