最小绝对偏差(Least Absolute Deviation, LAD)---子梯度法

最小绝对偏差(Least Absolute Deviations,简称LAD)是一种用于回归分析的统计方法,其目标是最小化残差的绝对值之和,而不是最小二乘法中的残差平方和。LAD回归特别适用于存在异常值的数据集,因为它对异常值不那么敏感。

在优化问题中,当目标函数不是处处可微时,可以使用次梯度(Subgradient)法来找到函数的极小值。对于LAD问题,由于绝对值函数在其零点不可微,因此可以使用子梯度法来求解。

以下是使用子梯度法求解LAD问题的步骤:

1. LAD问题的数学表述

给定一个数据集 ( x i , y i ) (x_i, y_i) (xi,yi),其中 i = 1 , … , n i = 1, \ldots, n i=1,,n,LAD回归的目标是最小化以下目标函数:
min ⁡ β ∑ i = 1 n ∣ y i − x i T β ∣ \min_{\beta} \sum_{i=1}^{n} |y_i - x_i^T \beta| βmini=1nyixiTβ
其中, β \beta β 是回归系数。

2. 子梯度法的基本步骤

子梯度法是一种迭代优化算法,其基本步骤如下:

初始化
  • 选择一个初始解 β ( 0 ) \beta^{(0)} β(0)
  • 设定一个步长序列 α k \alpha_k αk,通常随着迭代次数增加而递减。
  • 设定一个容忍误差 ϵ \epsilon ϵ 来决定何时停止迭代。
迭代过程
  • 对于 k = 0 , 1 , 2 , … k = 0, 1, 2, \ldots k=0,1,2,,执行以下步骤直到收敛:
    1. 计算目标函数在当前解处的子梯度 g ( k ) g^{(k)} g(k)。对于LAD问题,子梯度可以表示为:

      g ( k ) = − ∑ i = 1 n sign ( y i − x i T β ( k ) ) ⋅ x i g^{(k)} = -\sum_{i=1}^{n} \text{sign}(y_i - x_i^T \beta^{(k)}) \cdot x_i g(k)=i=1nsign(yixiTβ(k))xi

      其中, sign ( z ) \text{sign}(z) sign(z) 是符号函数,当 z > 0 z > 0 z>0 时为 1,当 z < 0 z < 0 z<0 时为 -1,当 z = 0 z = 0 z=0 时可以取 0 或者 -1 和 1 之间的任意值。

    2. 更新解:

      β ( k + 1 ) = β ( k ) − α k ⋅ g ( k ) \beta^{(k+1)} = \beta^{(k)} - \alpha_k \cdot g^{(k)} β(k+1)=β(k)αkg(k)

    3. 检查收敛性:如果 ∥ g ( k ) ∥ < ϵ \|g^{(k)}\| < \epsilon g(k)<ϵ 或者目标函数值的下降小于某个阈值,则停止迭代。

步长的选择
  • 步长 α k \alpha_k αk 可以是固定的,也可以是逐步减小的,例如使用线搜索或者回溯线搜索来确定每个迭代步的最佳步长。

3. 收敛性

  • 子梯度法并不保证总是收敛到全局最小值,但通常可以收敛到局部最小值。
  • 对于LAD问题,由于目标函数是凸的,子梯度法可以保证收敛到全局最小值。

4. 注意事项

  • 子梯度法可能比梯度下降法慢,因为它不利用目标函数的局部信息。
  • 子梯度法的实现需要仔细选择步长序列,以避免过多的迭代或者发散。

通过以上步骤,可以使用子梯度法求解LAD回归问题。在实际应用中,还有更高效的算法,如内点法(Interior Point Method)和线性规划,这些算法在解决LAD问题时通常比子梯度法更高效。

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

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

相关文章

Linux - 进程等待和进程替换

进程等待 前面我们了解了如果父进程没有回收子进程, 那么当子进程接收后, 就会一直处于僵尸状态, 导致内存泄漏, 那么我们如何让父进程来回收子进程的资源. waitpid 我们可以通过 Linux 提供的系统调用函数 wait 系列函数来等待子进程死亡, 并回收资源. #include <sys/t…

mac下载安装jdk

背景 长时间不折腾mac全部忘记 特此记录 安装 1.下载jdk 根据需要下载对应的jdk 我直接 下载到/Applicatiions目录 https://www.oracle.com/java/technologies/downloads/#java8-mac 2.解压 cd /Applicatiions tar -zxvf jdk-8u431-macosx-x64.tar.gz 3.配置环境 …

【Java】—— 图书管理系统

基于往期学习的类和对象、继承、多态、抽象类和接口来完成一个控制台版本的 “图书管理系统” 在控制台界面中实现用户与程序交互 任务目标&#xff1a; 1、系统中能够表示多本图书的信息 2、提供两种用户&#xff08;普通用户&#xff0c;管理员&#xff09; 3、普通用户…

1-1.mysql2 之 mysql2 初识(mysql2 初识案例、初识案例挖掘)

一、mysql2 概述 mysql2 是一个用于 Node.js 的 MySQL 客户端库 mysql2 是 mysql 库的一个改进版本&#xff0c;提供了更好的性能和更多的功能 使用 mysql2 之前&#xff0c;需要先安装它 npm install mysql2 二、mysql2 初识案例 1、数据库准备 创建数据库 testdb CREAT…

[HDCTF 2023]LoginMaster

[HDCTF 2023]LoginMaster 知识点 quine注入 解题 用户名要为admin 查看robots.txt&#xff0c;查看源码 password是注入点 function checkSql($s) {if(preg_match("/regexp|between|in|flag||>|<|and|\||right|left|reverse|update|extractvalue|floor|subs…

springboot398研究生调研管理系统(论文+源码)_kaic

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对信息管理混乱&#xff0c;出错率高&#xff0c;信息安全性差&#…

OSCP - Proving Grounds - Zino

主要知识点 SMB知识python脚本提权 具体步骤 执行nmap Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-10-10 01:24 UTC Nmap scan report for 192.168.52.64 Host is up (0.00077s latency). Not shown: 65529 filtered tcp ports (no-response) PORT STATE SER…

JDK8新特性之Stream流03

收集Stream流中的结果 IntStream intStream = Stream.of(1, 2, 3, 4, 5).mapToInt(Integer::intValue); intStream.filter(n -> n > 3).forEach(System.out::println); intStream.filter(n -> n > 3).count; intStream.filter(n -> n > 3).reduce(0, Integer…

自制shell命令行解释器,深入理解Linux系统命令行实现原理

个人主页&#xff1a;敲上瘾-CSDN博客 个人专栏&#xff1a;Linux学习、游戏、数据结构、c语言基础、c学习、算法 目录 ​编辑 1.打印命令提示符 ​编辑 2.获取用户输入指令 3.重定向分析 4.命令行参数表与环境变量表 5.命令解析 6.命令执行 6.1.创建子进程 6.2.文件…

ADB常用各模块操作命令

目录 1. 基本设备信息获取 2. 设备连接与管理 3. 文件管理 4. 进程与应用管理 5. 日志与调试 6. 调试和性能 7. 设备操作 8.adb命令的应用场景 1. 基本设备信息获取 获取设备的系统版本&#xff0c;获取设备安卓版本号&#xff1a; adb shell getprop ro.build.version.…

Mac M1 安装数据库

1. Docker下载 由于Sqlserver和达梦等数据库&#xff0c;不支持M系列的芯片&#xff0c;所以我们通过docker安装 下载并安装docker: https://www.docker.com/get-started/ 安装完成后&#xff0c;打开docker 2. SQL Server 安装 2.1 安装 打开终端&#xff0c;执行命令 doc…

渗透测试实验环境搭建

下载虚拟机镜像 5个虚拟机镜像&#xff0c;其中Linux攻击机我选择用最新的kali Linux镜像&#xff0c;其余的均使用本书配套的镜像。 网络环境配置 VMware虚拟网络编辑器配置&#xff1a; 将VMnet1和VMnet8分别设置IP为192.168.10.0/24和10.10.10.0/24。 虚拟机镜像配置 攻击机…

Linux shell脚本(一)

监控内存和磁盘容量&#xff0c;小于给定值时报警 [rootlinux-lyz test1]# ./monitor.sh & [1] 23110 # 提取根分区剩余空间 disk_size$(df / | awk /\//{print $4})# 提取内存剩余空间 mem_size$(free | awk /Mem/{print $4}) while : do # 注意内存和磁盘提取空间大小都…

C# 中 Interface(接口)和 virtual(虚方法)

文章目录 前言一、Interface&#xff08;接口&#xff09;1. 什么是接口2. 接口的定义3. 实现接口4. 接口的作用 二、virtual&#xff08;虚方法&#xff09;1. 什么是虚方法2. 虚方法的定义3. 重写虚方法4. 虚方法的作用 三、Interface 和 virtual 的结合使用1. 接口中的虚方法…

JWT 在 SaaS 系统中的作用与分布式 SaaS 系统设计的最佳实践

在现代 SaaS&#xff08;软件即服务&#xff09; 系统中&#xff0c;随着服务规模的扩大和用户需求的多样化&#xff0c;如何高效、安全地进行用户身份验证、权限控制以及租户隔离&#xff0c;成为了系统架构中的核心问题之一。**JWT&#xff08;JSON Web Token&#xff09;**作…

《智能体雏形开发(高阶实操)》二、智能体雏形开发

基于阿里云百炼平台开发智能体应用:生成日报与周报 在智能体开发中,生成结构化的日报与周报是一个典型的任务。本篇文章将基于阿里云百炼平台,结合 Python 开发环境,介绍如何开发一个从日志文件提取信息并生成摘要的智能体。我们将从需求分析、任务设计到核心功能实现逐步…

阿里云ECS服务器域名解析

阿里云ECS服务器域名解析&#xff0c;以前添加两条A记录类型&#xff0c;主机记录分别为www和&#xff0c;这2条记录都解析到服务器IP地址。 1.进入阿里云域名控制台&#xff0c;找到域名 ->“解析设置”->“添加记录” 2.添加一条记录类型为A,主机记录为www&#xff0c…

Scala的正则表达式(1)

package hfd //正则表达式的应用场景 //1.查找 findAllin //2.验证 matches //3.替换//验证用户名十分合法 //规则&#xff1a; //1.长度在6-12之间 //2.不能数字开头 //3.只能包含数字&#xff0c;大小写字母&#xff0c;下划线 object Test36 {def main(args: Array[String])…

网络知识:IP数据报知识详解

目录 一、IP数据报概念 二、IPV4数据报报头组成 三、IPV6数据报报头组成 今天给大家分享IP数据库相关的知识,希望对大家进一步了解IP协议提供一些帮助! 一、IP数据报概念 TCP/IP协议的网际层接收到传输层传递过来的数据单元,封装成向下(OSI模型的数据链路层、TCP/IP协…

Android 因为混淆文件配置,打release包提示running R8问题处理

一、报错信息 Missing classes detected while running R8. Please add the missing classes or apply additional keep rules that are generated in E:\workplace\xxxxxx\app\build\outputs\mapping\release\missing_rules.txt. Missing class org.mediakit.R$layout (refer…