《机器学习》 学习记录 - 第三章

news/2024/10/24 0:57:59

第3章 线性模型

3.1 基本形式

给定由\(d\)个属性描述的示例\(x=(x_{1};x_{2};...;x_{d})\),其中\(x_{i}\)\(x\)在第\(i\)个属性上的取值,线性模型(linear model)试图学得一个通过属性的线性组合来进行预测的函数,即

\(f(x)=w_{1}x_{1}+w_{2}x_{2}+...+w_{d}x_{d}+b\) (式3.1)

(式3.1)一般用向量形式写成

\(f(x)=w^{T}x+b\) (式3.2)

其中\(w=(w_{1};w_{2};...;w_{d})\)\(w\)\(b\)学得之后,模型就得以确定。

许多功能更为强大的非线性模型(nonlinear model)可以在线性模型的基础上通过引入层级结构或高维映射而得。

由于\(w\)直观表达了各属性在预测中的重要性,因此线性模型有很好的可解释性(comprehensibility)/可理解性(understandability)。

3.2 线性回归

线性回归试图学的一个线性模型以尽可能准确地预测实值输出标记。

3.2.1 当输入属性数目只有一个时

对离散属性,若属性值间存在“”关系,可通过连续化将其转化为连续值。例如:

  • 二值属性“身高”的取值“高”“矮”可转化为{1.0,0.0};
  • 三值属性“高度”的取值“高”“中”“低”可转化为{1.0,0.5,0.0};

若属性值间不存在序关系,假定有\(k\)个属性值,则通常转化为\(k\)维向量。如:

  • 属性“瓜类”的取值“西瓜”“南瓜”“黄瓜”可转化为(0,0,1),(0,1,0),(1,0,0).

若将无序属性连续化,则会不恰当地引入序关系,对后续处理如距离计算等造成误导。

线性回归试图学得

\(f(x_{i})=wx_{i}+b\),使得\(f(x_{i}) \simeq y_{i}\).(式3.3)

要确定式子中的\(w\)\(b\),我们可以让其均方误差(亦称平方损失square loss)最小化

均方误差有非常好的几何意义,它对应了常用的欧几里得距离,简称“欧式距离”(Euclidean distance)。

  • 最小二乘法(least square method):基于均方误差最小化来进行模型求解的方法。

在线性回归中,最小二乘法就是试图找到一条直线,使所有样本到直线上的欧式距离之和最小。

求解\(w\)\(b\)使\(E_{(w,b)}=\sum_{i=1}^{m}(y_{i}-wx_{i}-b)^{2}\)最小化的过程,称为线性回归模型的最小二乘“参数估计”(parameter estimation).

我们可以将\(E_{(w,b)}\)分别对\(w\)\(b\)求导,并令其导数为零,得到\(w\)\(b\)最优解的闭式(closed-form)

3.2.2 当输入属性数目有多个时

此时,我们试图学得

\(f(x_{i})=w^{T}x_{i}+b\),使得\(f(x_{i}) \simeq y_{i}\).

这称为“多元线性回归”(multivariate linear regression),也称“多变量线性回归”。

对多元线性回归模型求解时可能会解出多个\(w\),它们都能使均方误差最小化。选择哪一个解作为输出将由学习算法的归纳偏好决定,常见的做法是引入正则化(regularization)

3.2.3 对数线性回归

为了便于观察,我们将线性回归模型简写为:

\(y=w^{T}x+b\).(式3.13)

假设我们认为示例所对应的输出标记是在指数尺度上变化,那就可以将输出标记的对数作为线性模型逼近的目标,即

\(ln(y)=w^{T}x+b\).(式3.14)

这就是“对数线性回归”(log-linear regression),它实际上是在试图让\(e^{w^{T}x+b}\)逼近\(y\).式(3.14)在形式上仍是线性回归,但实质上已是在求取输入空间到输出空间的非线性函数映射

pAd7v90.png

如图3.1所示,这里的对数函数起到了将线性回归模型的预测值与真实标记联系起来的作用。

更一般的,考虑单调可微函数\(g(·)\),令

\(y=g^{-1}(w^{T}x+b)\),(式3.15)

这样得到的模型称为“广义线性模型”(generalized linear model),其中函数\(g(·)\)称为“联系函数”。

广义线性模型的参数估计常常通过加权最小二乘法极大似然法进行。并且\(g(·)\)连续且充分光滑。

显然,对数线性回归时广义线性模型在\(g(·)=ln(·)\)时的特例。

3.3 对数几率回归(logistic regression,亦称logit regression)

虽然对数几率回归的名字是“回归”,但它实际上确是一种分类学习方法。

  • 它直接对分类可能性进行建模,无需事先假设数据分布,这样就避免了假设分布不准确所带来的问题。
  • 它不仅预测出“类别”,而是可得到近似概率预测,这对许多需利用概率辅助决策的任务很有用。

若要使用线性模型进行分类任务,只需找一个单调可微函数将分类任务的真实标记\(y\)与线性回归模型的预测值联系起来即可。

3.3.1 二分类任务

首先考虑二分类任务,其输出标记\(y \in \{0,1\}\),而线性回归模型产生的预测值\(z=w^{T}x+b\)是实值。我们需要将实值\(z\)转换为0/1值。

最理想的是“单位阶跃函数”(unit-step function)(也叫Heaviside函数):

pAdHegK.png

若预测值\(z\)大于零即判为正例,小于零则判为反例,预测值为临界值零则可任意判别。如图3.2所示。

pAdHKDe.png

但是从图3.2可以看出,单位阶跃函数不连续,并不能直接用作式(3.15)中的\(g^{-}(·)\)
于是找到一个常用的、能在一定程度上近似单位阶跃函数的“替代函数”(surrogate function),对数几率函数(logistic function)(可简称为“对率函数”):

\(y=1 / (1+e^{-z})\)(式3.17)

可以从图3.2看出,对数几率函数是一种“Sigmoid”函数,即形似S的函数,它将\(z\)
转化为一个接近0或1的\(y\)值,并且其输出值在\(z=0\)附近变化很陡。

将对数几率函数作为\(g^{-}(·)\)代入式(3.15)并做变换后,可以得到:

\(ln (y/(1-y))=w^{T}x+b\)(式3.19)

若将\(y\)视为样本\(x\)作为正例的可能性,则\(1-y\)是其反例可能性。二者的比值\(y/(1-y)\)称为几率(odds),反映了\(x\)作为正例的相对可能性。对几率取对数则得到了“对数几率”(log odds,亦称logit)\(ln (y/(1-y))\)

3.4 线性判别分析

线性判别分析(Linear Discriminant Analysis,简称LDA)是一种经典的线性学习方法,亦称“Fisher判别分析”.

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

LDA的二维示意图如图3.3所示:

pAdH1UA.png

3.5 多分类学习

在更多情形下,我们基于一些基本策略,利用二分类学习器来解决多分类问题。(通常称分类学习器为“分类器”(classifier))

考虑\(N\)个类别\(C_{1},C_{2},...,C_{N}\),多分类学习的基本思路是“拆解法”:将多分类任务拆为若干个二分类任务求解。

  • 具体来说,先对问题进行拆分,然后为拆出的每个二分类任务都训练一个分类器;
  • 在测试时,对这些分类器的预测结果进行集成以获得最终的多分类结果。

最经典的拆分策略有三种:

  • “一对一”(One vs. One,简称OvO)
  • “一对其余”(One vs. Rest,简称OvR),亦称OvA(One vs. All)
  • “多对多”(Many vs. Many,简称MvM)

3.5.1 OvO

OvO将数据集中的N个类别两两配对,从而产生\(N(N-1)/2\)个分类任务。

在测试阶段,新样本将同时提交给所有分类器,我们将得到\(N(N-1)/2\)个分类结果,最终结果可通过投票产生:把被预测得最多的类别作为最终分类结果

3.5.2 OvR

OvR是每次将一个类的样例作为正例、所有其他类的样例作为反例来训练\(N\)个分类器。

  • 在测试时若仅有一个分类器预测为正类,则对应的类别标记为最终分类结果。
  • 若有多个分类器预测为正类,则通常考虑分类器的预测置信度,选择置信度最大的类别标记作为分类结果。

图3.4给出了一个示意图:

pAdHtv8.png

容易看出,OvO的存储开销和测试时间开销通常比OvR更大。但在训练时,OvR的每个分类器均使用全部训练样例,而OvO每个分类器仅用到两个类的样例。因此,在类别很多时,OvO的训练时间开销通常比OvR更小。

3.5.3 MvM

MvM是每次将若干个类作为正类,若干个其他类作为反类。

MvM的正、反类构造必须有特殊的设计,不能随意选取。其中,有最常用的一种MvM技术:“纠错输出码”(Error Correcting Output Codes,简称ECOC)。

ECOC将编码的思想引入类别拆分,并尽可能在解码过程中具有容错性。

  • 其中,类别划分通过“编码矩阵”(coding matrix)指定。常见的编码矩阵有二元码三元码,前者将每个类别分别指定为正类和反类,后者在正、反类之外,还可指定“停用类”。图3.5给出了一个示意图。

pAdHcvT.png

  • 一般来说,对同一个学习任务,ECOC编码越长,纠错能力越强。
  • 理论上来说,对同等长度的编码,任意两个类别之间的编码距离越远,则纠错能力越强。在码长较小时可根据这个原则计算出理论最优编码
  • 并不是编码的理论性质越好,分类性能就越好。(机器学习问题涉及很多因素)

3.6 类别不平衡问题

前面介绍的分类学习方法都有一个共同的基本假设:不同类别的训练样例数目相当

  • 类别不平衡(class-imbalance):分类任务中不同类别的训练样例数目差别很大的情况。

从线性分类器的角度讨论:我们在用\(y=w^{T}x+b\)对新样本\(x\)进行分类时,是在用预测出的\(y\)值与一个阈值进行比较。

几率\(y/(1-y)\)反映了正例可能性与反例可能性之比值,阈值设置为0.5恰表明分类器认为真实正、反例可能性相同,即分类器决策规则为:

\(y/(1-y) > 1\) 则 预测为正例(式3.46)

当训练集中正、反例数目不同时,令\(m^{+}\)表示正例数目,\(m^{-}\)表示反例数目,则观测几率为\(m^{+}/m^{-}\),由于我们通常假设训练集是真实样本总体的无偏采样,因此观测几率就代表了真实几率。于是,只要分类器的预测几率高于观测几率就应判定为正例,即:

\(y/(1-y) > m^{+}/m^{-}\) 则 预测为正例(式3.47)

但我们的分类器基于式(3.46)进行决策,所以我们需要对其预测值进行调整,让其实际上是在执行式(3.47)。要做到这但,只需令

\(y_{'}/(1-y_{'}) = y/(1-y) * m^{+}/m^{-}\) (式3.48)

此为类别不平衡学习的一个基本策略————“再缩放”(rescaling).

但是“训练集是真实样本总体的无偏采样”这个假设往往并不成立,我们未必能有效地基于训练集观测几率来推断出真实几率。现有技术大体上有三类做法:

  • 直接对训练集里的反类样例进行“欠采样”(undersampling)/“下采样”(downsampling),即去除一些反例使正、反例数目接近,然后再进行学习;
  • 对训练集里的正类样例进行“过采样”(oversampling)/“上采样”(upsampling),即增加一些正例使得正、反例数目接近,然后再进行学习;
  • 直接基于原始训练集进行学习,但在用训练好的分类器进行预测时,将式(3.48)嵌入到其决策过程中,称为“阈值移动”(threshold-moving)。

需注意以下几点:

  • 欠采样法的时间开销通常远小于过采样法,因为前者丢弃了很多反例,使分类器训练集远小于初始训练集;后者增加了很多正例,其训练集大于初始训练集。
  • 过采样法不能简单地对初始正例样本进行重复采样,否则会招致严重的过拟合。
    过采样法的代表性算法SMOTE是通过对训练集里的正例进行插值来产生额外的正例。
  • 欠采样法若随机丢弃反例,则可能丢失一些重要信息。
    欠采样法的代表性算法EasyEnsemble是利用集成学习机制,将反例划分为若干个集合供不同学习器使用,这样在全局来看不会丢失重要信息。

再缩放代价敏感学习(cost-sensitive learning)的基础。在代价敏感学习中将式(3.48)中的\(m^{+}/m^{-}\)\(cost^{+}/cost^{-}\)代替即可,其中,\(cost^{+}\)是将正例误分为反例的代价,\(cost^{-}\)是将反例误分为正例的代价。

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

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

相关文章

超星学习通视频课件课程下载工具,如何在电脑端下载超星学习通视频课程课件资料PDF,PPT到本地?

一. 安装超星学习通课程下载器 1.获取学无止下载器 https://www.xuewuzhi.cn/chaoxing_downloader 2.下载安装后,然后点击桌面快捷方式运行即可。 注意:杀毒软件可能会阻止外部exe文件运行,并将其当做成病毒,直接添加信任即可,本软件绝对没有木马病毒。 二. 使用说明 1.学…

有道精品课上买的课程过期了怎么办?教你如何下载有道精品课视频课程到本地永久观看~

前言:很多同学都遇到过购买的网课课程过期了,然后无法观看,花了钱还没学完,血亏。这里教大家一种方法,把有道精品课上面快过期的课程下载到电脑本地,然后可以永久观看了 PS: 对于已经过期的有道精品课程,也能是能下载的呢~ 提示:操此方法需要使用Windows电脑,Mac还不支…

教职云智慧职教视频课件课程下载工具,如何在电脑端下载智慧职教视频课程课件资料到本地?

一. 安装智慧职教课程下载器 1.获取学无止下载器 https://www.xuewuzhi.cn/icve_downloader 2.下载安装后,然后点击桌面快捷方式运行即可。 注意:杀毒软件可能会阻止外部exe文件运行,并将其当做成病毒,直接添加信任即可,本软件绝对没有木马病毒。 二. 使用说明 1.学无止下…

ChatGPT官网中文版镜像网站整理合集(2024/10/24)

​ 一、GPT工具跟国内AI大模型整理 (一)、GPT国内 更多咨询可以看:https://gpthomechat.com/?p=95 1.https://snakegpt.work ChatGPT中文版,支持GPT3.5/4/4o,可以用MJ绘画 2.GPTCAT GPT官网逆向版,支持GPT4o的实时语音对话,支持GPTo1-preview 3.https://ai-panda.xy…

API接口的12种安全措施

API接口的12种安全措施

[转]gcc的-g,-o,-c,-D,-w,-W,-Wall,-O3等参数的意义

一、-g -g可执行程序包含调试信息-g为了调试用的加个-g 是为了gdb 用,不然gdb用不到 二、-o -o指定输出文件名-o output_filename,确定输出文件的名称为output_filename,同时这个名称不能和源文件同名。如果不给出这个选项,gcc就给出预设的可执行文件a.out。一般语法:gcc …

dubbo

一、Dubbo是什么? Dubbo是一款高性能、轻量级的Java RPC(远程过程调用)框架,主要用于实现服务的分布式调用。由阿里巴巴公司开发并开源。其核心组件主要包括服务提供者、服务消费者、注册中心、和监控中心。 什么是RPC? RPC全称为remote procedure call,即远程过程调用。…

牛顿迭代法

$x_{i+1}=x_i-\frac{f(x_i)}{f(x_i)}$1 牛顿迭代法的作用 对于单个方程\(f(x)=0\),通过不断的迭代趋近于某一个单解,最终求出答案。但也有例外,比如出现无理数、无限循环小数等特殊情况,只能趋近,也就是结果是有限的。 2 牛顿迭代法的内容 2.1 怎么迭代 设\(x_1\)为你对\(…