机器学习(西瓜书)第 3 章 线性模型

news2025/1/11 13:02:51

3.1 基本形式

在这里插入图片描述
例如若在西瓜 问题中学得“/好瓜⑺- 0.2 • n色泽+ 0.5 •/根蒂+ 0.3 •力敲声+ 1”,则意味着可 通过综合考虑色泽、根蒂和敲声来判断瓜好不好,其中根蒂最要紧,而敲声比 色泽更重要.

本章介绍几种经典的线性模型.我们先从回归任务开始,然后讨论二分类和多分类任务.

3.2 线性回归

一元线性回归

我们先考虑一种最简单的情形:输入属性的数目只有一个
在这里插入图片描述
(大致有两大类方法,有一类特别擅长处理离散的东西,有一大类特别擅长处理连续的东西,如果用离散的东西去处理这种连续信号,那要先把连续信号做离散化;反之,要先把离散值连续化。而这两个过程,到现在也没有一个完美的解决方案)
(以下使用逗号表示行向量(x1, x2),用分号表示列向量(x1;x2))
线性模型擅长的是处理数值属性,而
离散属性,若属性值间存在“序”(order)关系,可通过连续化将其转化为连续值,例如三值属性“高度” 的取值“高” “中” “低”可转化为{1.0,0.5,0.0}; 若属性值间不存在序关系,假定有k 个属性值,则通常转化为k 维向量,例如属性“瓜类”的取值“西 瓜” “南瓜” “黄瓜”可转化为(0,0,1), (0,1,0),(1,0,0).若将无序属性连续化,则会不恰当地引入序关系,对后续处理如距离计算等造成误导

如何确定w和b 呢?显然,关键在于如何衡量于f(x)与y 之间的差别(垂直的差别,而不是点到直线的距离).2.3节 介绍过,均方误差 / 平方损失回归任务中最常用的性能度量,因此我们可试图让均方误差最小化,即

在这里插入图片描述
均方误差有非常好的几何意义,它对应了常用的欧几里得距离或简称“欧 氏距离"(Euclidean distance).基于均方误差最小化来进行模型求解的方法称 为“最小二乘法”(least square m e t h o d ) .在线性回归中,最小二乘法就是试图 找到一条直线,使所有样本到直线上的欧氏距离之和最小.

求解w和b 使E(w,b)最小化的过程,称为线性回归模型的最小二乘“参数估计”
在这里插入图片描述
这里E(w ,b)是关于w和 b的凸函数,当它关于w和 b 的导数均为零时,得到w 和b 的最优解.
对实数集上的函数,可 通过求二阶导数来判别: 若二阶导数在区间上非负, 则称为凸函数;若二阶导 数在区间上恒大于0 ,则称 为严格凸函数.
然后令式(3.5)和(3.6)为零可得到w 和b最优解的闭式(closed-form)解
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

a.极大似然估计

正态分布(Normal distribution)又名高斯分布(Gaussian distribution)
若随机变量X服从一个数学期望为μ、标准方差为σ^2的高斯分布,记为: X ∼ N ( μ , σ 2 ) X∼N(μ,σ^2) XN(μ,σ2),则其概率密度函数为
在这里插入图片描述
正态分布的期望值μ决定了其位置,其标准差σ决定了分布的幅度。因其曲线呈钟形,因此人们又经常称之为钟形曲线。我们通常所说的标准正态分布是μ = 0,σ = 1的正态分布(见右图中绿色曲线)。

因为概率密度函数给出了相应值的概率,我们就可以按照分布对数据进行采样,每一个数据点的采样互不影响,而且都是从同一个分布中采样而来的,这样的采样结果我们称之为 独立同分布 的数据,而独立同分布是大部分算法模型的重要假设

想由一组数据得到是哪个高斯分布?高斯分布的定义域是从负无穷到正无穷,因此任何一个都可能采样出这组数据,因此真正想知道的是哪个高斯分布能让这组数据出现的概率最大
每一个数据被采样的概率都可以写成一个条件概率的形式N(1.88|μ,σ^2),表示从mu和sigma的高斯分布中被采样的可能性大小。由于它们是同分布的,因此每一个条件概率中的参数mu和sigma都是一样的
同时又由于它们是相互独立的,所以同时出现的概率(也就是联合概率)体现为概率的连乘
由于我们的任务是找到一个高斯分布让这组数据出现的概率最大,所以要将联合概率取最大值,对应最大值的参数mu和sigma就是我们要找的这个高斯分布,这就是 极大似然估计 的基本思想(似然 即 参数估计的可能性)
在极大似然估计的函数中,联合概率的计算需要连乘来实现,但可以看到x*x的结果总是在y=x下方,所以大量的小于1的概率连乘结果会是一个非常小的数字,在实际使用中数字太小很可能直接下溢到0无法计算,所以要想办法把连乘消灭掉,通常的做法是将联合概率取对数,将内部的乘法转变为外部的加法,而加法不会让概率越来越小,对数操作也不会影响到求取最大值,因为它是单调递增的函数,所以极大似然估计往往是求取对数似然的最大值
在这里插入图片描述
将目标值y看作从一个高斯分布中采样而来的数据
将目标值y看作从一个高斯分布中采样而来的数据,在给定x的情况下,y是不确定的,现在的数据只不过是其中的一种采样结果,这相当于增加了一个均值为0的噪声项,目标值y对于x的分布就是一个均值为wx,方差为sigma的高斯分布
假设所有数据都遵循同一个条件分布,且数据点相互独立,就可以进行极大似然估计。我们将高斯分布概率密度函数代入,最终得到一大坨,其中sigma是噪声的参数,与模型无关,可以从求最大值的过程中剔除,最后的结果就是我们重新得到了最小二乘估计
看似不需要证明的最小二乘估计,其实只是极大似然估计在高斯分布下的一种特殊形式
在这里插入图片描述

在这里插入图片描述
极大似然估计的用途就是估计概率分布的参数值,通常我们对一个随机变量进行建模的话,我们通常只会1.确定一下它属于哪个分布,例如正态分布,但是正态分布中有两个关键参数,由这两个参数可以2.确定唯一的一个正态分布
在这里插入图片描述
在这里插入图片描述

为什么只要是误差就会服从均值为0的正态分布?首先从直觉上讲,误差一般都是0左右浮动;从中心极限定理来说,如果一个随机变量是由很多个独立的随机变量之和,那么这个随机变量就服从正态分布
在这里插入图片描述
在这里插入图片描述

b.求解w和b

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上述知识铺垫结束,以下回归正题:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

对于凸函数来说,全局解就是最小值点,因此充分必要条件就是一阶导为0
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如果要想用Python 来实现上式的话,上式中的求和运算只能用循环来实现。但是如果能将上式向量化, 也就是转换成矩阵(即向量)运算的话,我们就可以利用诸如NumPy这种专门加速矩阵运算的类库来进行编写。下面我们就尝试将上式进行向量化。
在这里插入图片描述

在这里插入图片描述

多元线性回归

更一般的情形是如本节开头的数据集。,样本由d 个属性描述.此时我们
试图学得在这里插入图片描述
这称为“多元线性回归“(multivariate linear regression).

a.由最小二乘法导出损失函数Ew-hat

在这里插入图片描述
在这里插入图片描述
然后它就能写成这样一个很简洁的 两个向量内积 的形式
写成这样的形式后,就可以套最小二乘法了
在这里插入图片描述
把求和运算进行进一步的向量化,便于用numpy那种矩阵加速
在这里插入图片描述

在这里插入图片描述
因为两个向量相乘是一个数,所以它整体的转置相当于是对一个数做一个转置,是不变的(这样转化是为了敲代码方便,一般数据集用的data frame都是反过来摆的)
在这里插入图片描述

b.求解w-hat

在这里插入图片描述
在这里插入图片描述

未知数w-hat是d+1维的向量

三项都是标量对向量求导,属于矩阵微分的内容,就是上节课的梯度,标量对向量求导
在这里插入图片描述
在这里插入图片描述

矩阵
在这里插入图片描述
在这里插入图片描述
若X^TX满秩或正定,则以上解
若X^TX不满秩,则可解出多个w-hat,此时不能硬去解它,而是加入额外的限制。此时需求助于归纳偏好,或引入 正则化 regularization

然而,现实任务中X T X 往往不是满秩矩阵.例如在许多任务中我们会遇到 大量的变量,其数目甚至超过样例数,导致X 的列数多于行数,X T X 显然不满 秩.此时可解出多个w-hat它们都能使均方误差最小化.选择哪一个解作为输出, 将由学习算法的归纳偏好决定,常见的做法是引入正则化(regularization)项.
例如,生物信息学的基因芯片数据中常有成千上万个属性,但往往只有几十、上百个样例.回忆一下:解线性方程组时,若因变量过多,则会解出多组解.

线性模型的变化:
现在可以用求解线性的方式来得到一个非线性的方案

可否令模型预测值逼近g 的衍生物呢?譬如说,假设我们认为示例所对应的输 出标记是在指数尺度上变化,那就可将输出标记的对数作为线性模型逼近的目 标,即
在这里插入图片描述
式(3.14)在形式上仍是线性回归,但实质上已是在求取输入空间到输出空间的非线性函数映射

广义线性模型:
更一般地,考虑单调可微函数g (・),令
在这里插入图片描述
显然,对数线性回归是广义线性模型在 g(-) = In(-)时的特例.

3.3 对数几率回归

算法原理

对数几率回归,也被称为 逻辑回归
机器学习中只有两大类算法,回归和分类。
虽然名字中带有回归,但其本质上是一个分类算法
在线性模型的基础上套一个映射函数来实现分类功能

在这里插入图片描述

单位阶跃函数不连续,因此不能直接用作式(3.15)中 的g—( • ) .于是我们希望找到能在一定程度上近似单位阶跃函数的“替 代函数”(surrogate function), 并希望它单调可微.对数几率函数(logistic function)正是这样一个常用的替代函数:
在这里插入图片描述

从图3.2可看出,对数几率函数是一种"Sigmoid函数"它将z 值转化为一个 接近0 或1 的g 值,并且其输出值在z = 0 附近变化很陡.将对数几率函数作为 9一(•)代入式(3.15),得到
在这里插入图片描述
在这里插入图片描述

损失函数的极大似然估计推导

在这里插入图片描述
注意由于是离散型变量,所以是概率质量函数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

损失函数的信息论推导

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
由于均方损失非凸,对数几率回归不能通过令偏导为0求解,即对数几率回归是没有闭式解的,即无法像线性回归那样求解出w=,而是一般用这些近似求解的方式,梯度下降,牛顿法

3.4 线性判别分析

用线性模型做“分类“有2种基本思路,刚才的是先用线性模型做线性回归,然后找一个联系函数,把我们要做的分类结果和回归结果联系起来,比如刚才的对率回归
那我们可以直接做分类吗?

线性判别分析(Linear Discriminant Analysis,简称LDA)是一种经典的线性学习方法,在二分类问题上因为最早由[Fisher, 1936]提出,亦称“Fisher判别分析”.

算法原理(模型)

在这里插入图片描述
LDA的思想非常朴素:给定训练样例集,设法将样例投影到一条直线上,
使得同类样例的投影点尽可能接近、异类样例的投影点尽可能远离;在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新样本的类别
在这里插入图片描述
在这里插入图片描述

本质上可以认为是一种降维的做法,而这个降维是要考虑类别标记的,因此是一种监督降维
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

反正我们看的是在w上的投影,因此w的大小不重要,只需要关注w的方向

通常我们在讲优化时,都最小化,因为我们是基于凸函数来讨论的

损失函数推导(策略)

在这里插入图片描述
二范数就是求向量的模长:
在这里插入图片描述

这里补上w的模长的好处:这样就可以直接转换成内积的这样一种很简便的形式,一个整体就可以换成一个向量内积的形式

w转置乘mu0就是mu0在w这个方向上的投影长度,不严谨说法

严格来说这不是方差,因为方差的话前面少了系数1/m0
w转置乘mu0就是它们的中心在w上的投影长度
拿x的样本减去中心,都是数,两个相乘,就相当于(x-x拔)^2,加上前面的求和,这就是方差的公式

在这里插入图片描述

二范数的平方其实就是相当于求一个向量的内积

w是向量,向量没有除法不能乱约掉
在这里插入图片描述

拉格朗日乘子法

在这里插入图片描述

求解w(算法)

在这里插入图片描述

由于Sb是对称矩阵,所以Sb转置等于Sb;Sw也是如此
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

广义特征值和广义瑞利商

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

线性判别分析的多类推广

可以将L D A推广到多分类任务中…假定存在N 个类,且第i 类示例数为 m_i。我们先定义“全局散度矩阵”:
在这里插入图片描述

其中全局散度矩阵中u是所有数据的均值向量

3.5 多分类学习

若不用LDA,比如回归,就两类分类,包括知识向量机也只有两类分类
也就是说怎么把基于两类的模型来做多类的分类呢?

不失一般性,考虑N 个类别C 1 & , … ,CN , 多分类学习的基本思路是 “拆解法”,即将多分类任务拆为若干个二分类任务求解.具体来说,先对问题 进行拆分,然后为拆出的每个二分类任务训练一个分类器;在测试时,对这些分 类器的预测结果进行集成以获得最终的多分类结果.这里的关键是如何对多分 类任务进行拆分,以及如何对多个分类器进行集成.本节主要介绍拆分策略.

最经典的拆分策略有三种:“一对一”(One vs. One,简称O v O )、“一对 其余“(One vs. Rest,简称 O vR)和"多对多" (Many vs. M a n y ,简称 MvM).

在这里插入图片描述

通常我们的训练开销是和样本多少关系非常大,不是线性,通常是平方甚至三次方,所以反而OvO训练时间比OvR小,因为每个模型中用到的样本比它少,而且它可以更好的做变形化

类别不平衡

在这里插入图片描述

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

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

相关文章

为什么正午选她演大女主戏?看到殷桃这个片段,我全懂了

最近小编听说正午的最新力作《凡人歌》要上了,而且女主还是我特别喜欢的殷桃,赶紧马不停蹄的去追剧,结果狠狠爱上了殷桃的演技! 剧里殷桃饰演的沈琳是一位家庭主妇,她以为她放弃了工作,做家庭主妇&#xff…

你还在为编程效率低下而烦恼吗?编程界的神级辅助!一键解锁高效编程模式,让你的工作效率飙升不止一倍!

哪个编程工具让你的工作效率翻倍? 第一章 引言 在软件开发领域,编程工具的重要性不言而喻。它们不仅能够加速开发过程,还能提高代码质量,从而显著提升开发人员的工作效率。随着技术的不断进步,越来越多的编程工具涌现…

多头切片的关键:Model 类 call解释;LlamaModel 类 call解释;多头切片的关键:cache的数据拼接

目录 Model 类 call解释 LlamaModel 类 call解释 方法签名 方法体 总结 Model 类 call解释 这段代码定义了一个特殊的方法 __call__,它是Python中的一个魔术方法(magic method),允许类的实例像函数那样被调用。在这个上下文中,这个方法很可能被定义在一个封装了某种…

java宠物商城网站系统的设计与实现

springboot508基于Springboot宠物商城网站系统 题目:宠物商城网站系统的设计与实现 摘 要 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往…

算法图解(1)

配套代码: https://github.com/egonSchiele/grokking_algorithms?tabreadme-ov-filehttps://github.com/egonSchiele/grokking_algorithms?tabreadme-ov-file 理论 数据结构:组织和存储数据的方式,影响程序的性能和存储效率 算法&#…

OpenHarmony使用ArkUI Inspector分析布局

● 摘要:视图的嵌套层次会影响应用的性能,开发者应该移除多余的嵌套层次,缩短组件刷新耗时。本文会介绍如何使用ArkUI Inspector工具分析布局,提示应用响应性能。 ● 关键字:列举本文相关的关键字:OpenHar…

Linux防火墙问题排查记录

问题描述 在业务当中,开通了防火墙,导致外部数据无法通过SFTP服务访问本机的服务,根据防火墙策略判断,应该是有一些IP没有被加进accept策略导致的,所以需要查看防火墙日志来追溯哪些IP被过滤掉了,只要放通…

开学了 需要考研的同学快看过来!考研倒计时你的鞭策神器!

开学了 需要考研的同学快看过来!考研倒计时你的鞭策神器! 2025年考研准备又要开始了,考试科目包括思想政治理论、管理类联考综合能力、外国语、业务课一、业务课二等。考研初试是每位考生迈向研究生阶段的重要一步,希望考生在考试…

python+requests 搭建接口自动化测试框架【超详细】

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 一、前言 Python是一种简单易学、功能强大的编程语言,广泛应用于各种软件开发和测试场景中。requests是Python中流行的HTTP库,支持发送…

windows下安装elasticSearch和kibana

下载es 下载地址官网 下载后是个压缩包(elasticsearch-8.15.0-windows-x86_64),解压即可 启动 配置 改一下 /conf/jvm.options文件,最后加一行编码配置,这个是为了启动后防止控制台乱码 -Dfile.encodingGBK启动es 依赖jdk8环境&#xf…

Qt中的父窗口子窗口和父类子类的区别

好多人在开发初期,往往将父子窗口和父子类搅在一起容易搞混。 今天借着这篇文章给大家分辨一下。 C中我们常说子类继承自父类,子类具有父类所有的特性和功能。所以父类和子类是继承关系。 而子窗体和父窗体,不是继承关系,准确地讲…

安卓13拦截home功能 监听home键 禁用home键

总纲 android13 rom 开发总纲说明 目录 1.前言2.问题分析3.代码分析4.代码修改5.编译6.彩蛋1.前言 经常遇

数据结构与算法的代码实现(C++版)

数据结构与算法的代码实现(C版) 1. 线性表的顺序表示和实现1.1 线性表的初始化1.2 线性表的销毁1.3 线性表的清空1.4 线性表的长度1.5 判断线性表是否为空1.6 线性表的线性表取值1.7 线性表的顺序查找1.8 线性表的插入1.9 线性表的删除总结 2. 线性表的链…

EPLAN如何在插入设备的时候修改部件的数据?

EPLAN如何在插入设备的时候修改部件的数据? 默认情况下,插入部件的时候,部件的数据是无法更改的,那么如何设置在插入部件的时候对部件的数据进行修改呢? 具体可参考以下内容: 设置完成后,点击右…

QT实现简易记事本

QT的Qmainwindow实现简易记事本,不带有UI界面。 1、功能展示 1、编辑文件时,文件名左上角有个“*”,代表文件未保存 2、菜单栏有文件、编辑的选项 3、工具栏有保存、新建、打开、调节字体、调节颜色。 4、文件菜单中有,新建,保存、打开、…

【C语言从不挂科到高绩点】06-流程控制语句-循环语句

Hello!彦祖们,俺又回来了!!!,继续给大家分享 《C语言从不挂科到高绩点》课程 本套课程将会从0基础讲解C语言核心技术,适合人群: 大学中开设了C语言课程的同学想要专升本或者考研的…

2024测试开发必知必会:Pytest框架实战!

应用场景: pytest 框架可以解决我们多个测试脚本一起执行的问题。 它提供了测试用例的详细失败信息,使得开发者可以快速准确地改正问题。它兼容最新版本的 Python。它还兼容 unittest、doctest 和 nose,开箱即用。接下来我们详细了解下pyte…

LLM与知识图谱

重磅推荐专栏: 《大模型AIGC》 《课程大纲》 《知识星球》 本专栏致力于探索和讨论当今最前沿的技术趋势和应用领域,包括但不限于ChatGPT和Stable Diffusion等。我们将深入研究大型模型的开发和应用,以及与之相关的人工智能生成内容(AIGC)技术。通过深入的技术解析和实践经…

昆仑山矿泉水《大湾区旅行者》正式开机,携手共赴一场净化心灵之旅

在这个快节奏的时代,我们总在寻找一片能让心灵得以栖息的地方。今年,昆仑山矿泉水与深圳卫视再度携手,推出充满人文温情与自然探索的慢生活旅行综艺《大湾区旅行者》,目前已于8月29日开机启航。本次旅行,昆仑山矿泉水与…

废品回收小程序,从传统到现代化的回收模式

在数字化发展的当下,废品回收行业也进行了更新换代,由传统“喊卖”,到目前的线上回收,将互联网小程序与废品回收相结合,打造一个线上回收模式,让大众可以直接通过手机进行回收。小程序的出现不仅解决了传统…