经典回归算法

news2024/11/25 20:46:06

回归的概念

回归方程:
在这里插入图片描述
写成矩阵:
在这里插入图片描述

  • 核心问题,构建预测函数z来映射特征矩阵x和标签y的线性关系

预测的目标值,有连续值也有离散值

  • 连续值,就直接预测输出就行
  • 离散值,需要在输出端加一个变换函数例如。Sigmoid函数,将连续值映射到【0,1】之间,即变成概率,根据概率大小就行判别分类
    • Sigmoid函数也有致命的缺陷
      在这里插入图片描述
  • 正无穷趋近于1,负无穷趋近于0 ,会导致梯度爆炸和梯度消失

如何对标签值就行转换?

  • 取对数,预测值y(x) 和 1 - y(x) 和必然为1,所以二者相除可以得到形似概率的结果

在这里插入图片描述

  • 所以,叫作对数几率回归 logistic regression , 实质上在做分类

y(x)代表了样本为某一类标签的概率吗?

参考回答:

在这里插入图片描述

逻辑回归存在的问题

缺点:

线性回归对数据的要求很严格,比如标签必须满足正态分布,特征之间的多重共线性需要消除等等,而现实中很多
真实情景的数据无法满足这些要求,因此线性回归在很多现实情境的应用效果有限

  • 逻辑回归由线性回归发展而来,当然存在这个问题

优点:

  1. 逻辑回归对线性关系的拟合效果好到丧心病狂。

    • 特征与标签之间的线性关系极强的数据,比如金融领域中的信用卡欺诈,评分卡制作,电商中的营销预测等等相关的数据,都是逻辑回归的强项。
    • 虽然现在有了梯度提升树GDBT,比逻辑回归效果更好,也被许多数据咨询公司启用,但逻辑回归在金融领域,尤其是银行业中的统治地位依然不可动摇
    • 相对的,逻辑回归在非线性数据的效果很多时候比瞎猜还不如,所以如果你已经知道数据之间的联系是非线性的,千万不要迷信逻辑回归
  2. 逻辑回归计算快:对于线性数据,逻辑回归的拟合和计算都非常快,计算效率优于SVM和随机森林,亲测表
    示在大型数据上尤其能够看得出区别

  3. 逻辑回归返回的分类结果不是固定的0,1,而是以小数形式呈现的类概率数字:我们因此可以把逻辑回归返
    回的结果当成连续型数据来利用

    • 比如在评分卡制作时,我们不仅需要判断客户是否会违约,还需要给出确定的”信用分“,而这个信用分的计算就需要使用类概率计算出的对数几率,而决策树和随机森林这样的分类器,可以产出分类结果,却无法帮助我们计算分数(当然,在sklearn中,决策树也可以产生概率,使用接口predict_proba调用就好,但一般来说,正常的决策树没有这个功能)。

详细理解

在这里插入图片描述

  • 两种概率整合:yi的取值就是0或1 ,参数是cta
    在这里插入图片描述

  • 预测的概率P
    在这里插入图片描述

  • 两边取对数
    在这里插入图片描述

  • 得到损失函数:用极大似然法推导

在这里插入图片描述

拟合:

逻辑回归和线性回归是天生欠拟合的模型,但我们还是需要控制过拟合的技术来帮助我们调整模型,对逻辑回归中过拟合的控制,通过正则化来实现。

正则化:
正则化是用来防止模型过拟合的过程,常用的有L1正则化和L2正则化两种选项,分别通过在损失函数后加上参数向
θ \theta θ 的L1范式和L2范式的倍数来实现

在这里插入图片描述
L1正则化:

在L1正则化在逐渐加强的过程中,携带信息量小的、对模型贡献不大的特征的参数,会比携带大量信息的、对模型
有巨大贡献的特征的参数更快地变成0,所以L1正则化本质是一个特征选择的过程,掌管了参数的“稀疏性”。L1正
则化越强,参数向量中就越多的参数为0,参数就越稀疏,选出来的特征就越少

L2正则化:

L2正则化在加强的过程中,会尽量让每个特征对模型都有一些小的贡献,但携带信息少,对模型贡献不大
的特征的参数会非常接近于0。通常来说,如果我们的主要目的只是为了防止过拟合,选择L2正则化就足够了。

逻辑回归中的特征工程

  • 业务指标选择

    • 直接凭借经验,选择通常相关性比较高的指标
  • PCA和SVD一般不用

    • 说到降维,我们首先想到的是之前提过的高效降维算法,PCA和SVD,遗憾的是,这两种方法大多数时候不适用于
      逻辑回归。逻辑回归是由线性回归演变而来,线性回归的一个核心目的是通过求解参数来探究特征X与标签y之间的
      关系,而逻辑回归也传承了这个性质,我们常常希望通过逻辑回归的结果,来判断什么样的特征与分类结果相关,
      因此我们希望保留特征的原貌。PCA和SVD的降维结果是不可解释的,因此一旦降维后,我们就无法解释特征和标
      签之间的关系了。
    • 当然,在不需要探究特征与标签之间关系的线性数据上,降维算法PCA和SVD也是可以使用的。
  • 统计方法可以使用,但不是非常必要

    • 既然降维算法不能使用,我们要用的就是特征选择方法。逻辑回归对数据的要求低于线性回归,由于我们不是使用
      最小二乘法来求解,所以逻辑回归对数据的总体分布和方差没有要求,也不需要排除特征之间的共线性
      • 解释一下特征共线性的问题:
      • 在一些博客中有这样的观点:多重共线性会影响线性模型的效果。对于线性回归来说,多重共线性会影响比较大,
        所以我们需要使用方差过滤和方差膨胀因子VIF(variance inflation factor)来消除共线性。但是对于逻辑回归,其实不是非常必要,甚至有时候,我们还需要多一些相互关联的特征来增强模型的表现
      • 消除共线性的方法 : VIF , Box-cox方法
    • 统计方法,比如方差,卡方,互信息等方法来做特征选择,也并没有问题。过滤法中所有的方法,都可以用在逻辑回归上

处理:

  1. 直接embedding
  2. 方差贡献率,在逻辑回归中可以使用系数coef_来这样做

关于梯度下降的误区

对损失函数求最小值,自然而然就知道求导数,偏导数

  • 注意 ∇ f ( x , y ) ∂ x \frac{\nabla f(x,y)}{\partial x} xf(x,y) ∇ f ( x , y ) ∂ y \frac{\nabla f(x,y)}{\partial y} yf(x,y) 其实 是对 θ \theta θ求导,然后链式求导法则来的,不是直接对x和y求偏导,得到梯度的

目标函数: J ( θ 1 , θ 2 , . . . ) , θ i ∈ θ 目标函数:J(\theta_1,\theta_2,...) ,\theta_i \in \theta 目标函数:J(θ1,θ2,...)θiθ

在这里插入图片描述

  • 所以,步长不是任何物理距离,它甚至不是梯度下降过程中任何距离的直接变化,它是梯度向量的大小 d上的一个
    比例,影响着参数向量 θ \theta θ 每次迭代后改变的部分。

在这里插入图片描述

求解器

参数solver & multi_class : 二元回归与多元回归

在这里插入图片描述

  • 样本不平衡与参数class_weight : 暂定是玄学

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/471879.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

入参校验产品化 schema

与规则引擎不同,规则面向技术, 传入data, 返回 所有异常字段和原因. 面向技术, 先有对象,再有规则, 如何通过交互来编写schema是个难题? 和json-schema区别: 思路上就是反过来的, 面相产品, schema可视化编辑器, 是面向结构设计. 现有模型,才有数据, 才可以编程. 基于配置…

Docker安装运行Nginx容器(纯步骤)

Docker安装Nginx容器并运行 本文章只有步骤,没有原理解释,只做平时学习提示。提前说明:由于nginx里的配置文件比较多,所以本文章不对此配置文件解释而且会有一些小问题,这个你酌情操作,但不影响你nginx容器…

化工厂5G+北斗RTK室外人员定位系统解决方案

化工厂的安全管理工作非常重要,为了确保员工的安全和提高生产效率,建议引入人员定位技术。下面给大家介绍化工厂5G北斗RTK室外人员定位系统解决方案。关于化工厂室内人员定位方案,可以参考我之前写的文章:化工厂5G蓝牙LoRa室内人员…

声网 Token 鉴权机制,以及常见的问题

Token鉴权是什么? Token也称为动态密钥,是在加入频道时用于校验用户权限的一组字符串;鉴权是指在用户访问你的系统前,对其进行身份校验。用户在使用声网服务,如加入音视频通话或登录信令系统时,声网会使用…

广州华锐互动:工厂园区数字孪生系统让企业管理更加高效便捷

随着信息技术的快速发展,企业管理越来越倾向于数字化和智能化,而数字孪生技术在这一领域中扮演着重要角色。 工厂园区数字孪生系统是一种基于数字孪生技术的智能化系统,可以模拟工厂生产过程,将真实场景数字化,并进行…

高阶数据结构 ——— 并查集

文章目录 并查集并查集的原理并查集的实现并查集的初始化查找元素所在的集合合并两个元素所在的集合获取并查集中集合的个数并查集的路径压缩元素的编号问题 并查集的题目省份的数量等式方程的可满足性 并查集 并查集是一种树型的数据结构,用于处理一些不相交集合的…

如何合理使用 Jetpack 组件开发 Android 项目?

Jetpack 是 Android 官方推出的一套开发库,其中包含众多的组件,可以让 Android 开发者更快更高效地开发应用程序。Jetpack 组件分为四大部分:架构、行为、UI 和基础组件。 下面详细阐述如何合理使用 Jetpack 组件开发 Android 项目。 1. 熟练…

openQA----基于openSUSE部署openQA

【原文链接】openQA----基于openSUSE部署openQA (1)下载 openqa-bootstrap 脚本并执行 cd /opt/ curl -s https://raw.githubusercontent.com/os-autoinst/openQA/master/script/openqa-bootstrap | bash -x(2)配置apache proxy…

Nestjs全网最佳翻译-概况-守卫-Guards

守卫 带上装饰器 Injectable() 并实现了 CanActivate 接口的类,就是守卫。 守护只做一件事情。他们根据运行时的某些条件(如权限、角色、ACL等)来决定一个给定的请求是否会被路由处理程序处理。这通常被称为授权。在传统的Express应用程序中…

浅析AI视频智能检测技术在城市管理中的场景应用

随着中国的城市建设和发展日益加快,城镇化过程中重建设、轻管理模式带来不少管理难点,传统城管模式存在违法问题多样、缺乏源头治理、业务协同难、取证手段单一等,人员不足问题进一步加剧管理难度。随着移动互联网、物联网、云计算、大数据、…

Vue3 全局实例上挂载属性方法

导语 在大多数开发需求中,我们有时需要将某个数据,或者某个函数方法,挂载到,全局实例身上,以便于,在项目全局的任何位置都能够调用其方法,或读取其数据。 在Vue2 中,我们是在 main.j…

【Unity URP】Rendering Debugger和可视化MipMap方案

写在前面 最近开始学习Unity性能优化,是结合了《Unity游戏优化》这本书和教程《Unity性能优化》第叁节——静态资源优化(3)——纹理的基础概念一起学习。在学习纹理优化部分时候遇到了问题,固定管线下Unity的Scene窗口有一个可视化Mipmap的渲染模式&…

ChatGPT实现数据结构转换

数据结构转换 在应用系统开发和维护中,经常会有配置数据或客户数据需要在不同的序列化结构中相互转换的需求。不同编程语言之前,对数据结构的偏好也不一样,比如 JavaScript 一般使用 JSON、Java 一般使用 XML、Ruby 一般使用 YAML、Golang 一…

搞懂 API , API 这些特点要记住

API 是现代软件开发和应用程序中的必要组成部分,它为企业和开发者提供了极大的便利和工作效率。不过,API 也有其不足之处。下面将在这篇文章中详细探讨 API 的优点和缺点。 优点: 简化数据访问和交互 API 消除了传统的数据集成方法&#x…

使用chatGPT开发获取格点天气数据

1. 格点天气 1.1. 格点天气 以经纬度为基准的全球高精度、公里级、格点化天气预报产品,包括任意经纬度的实时天气和天气预报。其中,任意坐标的高精度天气,精确到3-5公里范围,包括:温度、湿度、大气压、天气状况、风力…

nvidia-smi命令解析

桌面端 服务器端 Fan:风扇转速(0%-100%),N/A表示没有风扇 Temp:GPU温度(GPU温度过高会导致GPU频率下降) Perf:性能状态,从P0(最大性能)到P12(最…

zookeeper 安装下载与集群

一、单机部署 1、安装包下载 https://archive.apache.org/dist/zookeeper 2、上传并解压 tar -zvxf zookeeper-3.4.14.tar.gz3、配置环境变量 my_env.sh是自己创建的环境变量文件,你也可以自己创建 vim /etc/profile.d/my_env.sh#ZOOKEEPER_HOME export ZOOKE…

什么是分布式任务调度?怎样实现任务调度

通常任务调度的程序是集成在应用中的,比如:优惠卷服务中包括了定时发放优惠卷的的调度程序,结算服务中包括了定期生成报表的任务调度程序,由于采用分布式架构,一个服务往往会部署多个冗余实例来运行我们的业务&#xf…

1.3 防火墙通过TELNET登录设备

防火墙通过TELNET登录设备 需求:使远程管理员能够通过telnet方式登录到设备上进行管理 序号任务任务说明备注1物理连接略2登录设备略3配置设备telnet设备默认不支持telnet功能,必须开启telnet功能,以及用于远程登录设备的账号密码等。重点4测…

【hello Linux】进程间通信——共享内存

目录 前言: 1. System V共享内存 1. 共享内存的理解 2. 共享内存的使用步骤 3. 共享内存的使用 1. 共享内存的创建 查看共享内存 2. 共享内存的释放 3. 共享内存的挂接 4. 共享内存的去挂接 4. 共享内存的使用示例 1. 两进程挂接与去挂接演示: 2. 两进程…