《机器学习》周志华(西瓜书)学习笔记 第三章线性模型

本文深入探讨了机器学习中的线性模型,包括线性回归、对数几率回归、线性判别分析等,详细解析了模型原理、数学基础及在多分类问题中的应用策略。同时,针对类别不平衡问题提供了有效的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

机器学习 西瓜书学习笔记 总目录

世上只有一种投资是只赚不赔的,那就是学习。
当你的的能力还驾驭不了你的目标时,
就应该沉下心来历练;
当你的才华撑不起你的野心时,
就应该静下心来学习

第三章 线性模型

3.1 基本形式

线性模型(linear model) 就是试图从由d个属性描述的示例
中通过训练试图去学得一个通过属性的线性组合来进行预测的函数
在这里插入图片描述
一般用向量形式写成
在这里插入图片描述
x=(x1,x2…),x1表示示例x在第1个属性的取值。

w=(w1;w2;…;wd),w和b学得之后,模型就得以确定。w表示个各属性在预测模型中的重要性

  • 线性模型形式简单,易于建模,但却蕴涵着机器学习中一些重要的基本思想
  • 许多功能更为强大的非线性模型(nonlinear model)可在线性模型的基础上通过引入层级结构或高维映射而得。
  • 线性模型有很好的可解释性(comprehensibility)。
3.2 线性回归

线性回归(linear regression)试图学得一个线性模型,以尽可能准确地预测实值输出标记
即试图学得
在这里插入图片描述
确定w和b关键在于衡量f(x)和y之间的差别

为了衡量f(x)和y之间的差别,均方误差是回归任务中最常用的性能度量,我们试图让均方误差最小化,即:
在这里插入图片描述
均方误差有非常好的几何意义,他对应了常用的欧几里得距离(二范数),简称欧氏距离(Euclidean distance)。

基于均方误差最小化来进行模型求解的方法称为“最小二乘法”(least square method).

在线性回归任务中,最小二乘法就是希望学得一条直线,使得所有样本到该直线上的欧氏距离之和最小。

求解w和b使得均方误差最小化的过程,称为线性回归模型的最小二乘“参数估计”(parameter estimation)

为了解决对均方误差线性方程求最小值,解出w,b这一问题。我们先对w,b分别求偏导,另偏导为0即可解出w,b,从而确定线性回归模型。

更一般的,样本由d维属性描述的情况,则为多元线性回归:
在这里插入图片描述
可利用最小二乘法对w和b进行估计,把w和b吸入向量形式w =(w;b),把数据集D表示为m行 (d+1)列大小的矩阵X,每行对应一个示例,该行前d个元素对应于示例的d个属性值,最后一个元素均置为1,即
在这里插入图片描述
同时也将(y1,y2,y3,…,ym)以向量y=(y1;y2;…;ym)表示,则有:
在这里插入图片描述
在这里插入图片描述
当X^TX为满秩矩阵或正定矩阵,令上式为0可得:
在这里插入图片描述
在这里插入图片描述
则最终学得的多元线性回归模型为:
在这里插入图片描述
然而,在现实任务中,我们会遇到大量的变量,数目甚至超过样例数,导致X的列数多余行数,往往不是满秩矩阵,此时可以解出多个w向量,它们都能使均方误差最小化,选择哪一个解作为输出,将由学习算法的归纳偏好决定,常用做法是引入正则化项。
假设我们认为示例对应的输出标记在指数尺度上变化,可将输出标记的对数作为线性模型逼近的目标,即:
在这里插入图片描述
这就是“对数线性回归”(log-linear regression),它实际上是在让
在这里插入图片描述
逼近y。在形式上仍是线性回归,实质上是在求输入空间到输出空间的非线性函数映射,如下图所示,这里的对数函数起到了将线性回归模型的预测值与真实标记联系起来的作用。
在这里插入图片描述
更一般的,考虑单调可微函数g(⋅),令
在这里插入图片描述
这样得到的模型是“广义线性模型”(generalized linear model),其中函数g(⋅)称为联系函数(link function),对数线性回归是广义线性模型在g(⋅)在In(⋅)的特例.

3.3 对数几率回归

上述讨论了线性模型以及线性模型进行回归学习,但是如果要利用线性模型进行分类怎么办呢?

答案是找一个单调可微函数将分类任务的真实标记y与线性回归模型的预测值联系起来。

对于二分类任务,输出标记y取值为{0,1},而线性回归模型产生的预测值是实值,

所以要将实值z转换为0/1值,最理想的是”单位阶跃函数“(unit-step function):
在这里插入图片描述
若预测值z大于0就判为正例,小于0判为反例,为临界值可任意判别。
在这里插入图片描述
但是单位阶跃函数不连续,我么需要找道一个单调可微的函数拟合它,这就是对数几率函数:
在这里插入图片描述
可以看出对数几率函数将z值转化为一个接近0或1的y值,并且输出值在z=0附近变化很陡。变化可得:
在这里插入图片描述
若将y视为x为正例的可能性,则1−y是其反例的可能性,两者的比值y/1−y称为”几率“(pdds),反映了x为正例的相对可能性,对几率取对数则得到”对数几率“(log odds):
在这里插入图片描述
在这里插入图片描述实际上是用线性回归模型的预测结果去逼近真实标记的对数几率,其对应模型称为”对数几率回归“(logistic regression) .

3.4 线性判别分析

线性判别分析(简称LDA)是一种经典的线性学习方法,也称“Fisher判别分析”。
LDA的思想非常朴素,它给定训练样例集,将样例投影到一条直线上,使同类样例的投影点尽可能接近 、异样样例的投影点尽可能远离;对新样本分类时,将其投影到同样的这条直线上,根据投影点的位置确定新样本的类别,
在这里插入图片描述

3.5 多分类学习

现实中常遇到多分类学习任务,有些二分类学习方法可直接推广到多分类,但在更多情况下,我们是基于一些基本策略,利用二分类学习器来解决多分类问题。
所以对于多分类问题,关键在于如何拆分。

最经典的拆分策略有三种:OvO,OvR,MvM。
给定数据集D
在这里插入图片描述OvO拆分时,将这N个类别两两配对,从而产生N(N−1)/2个二分类任务。在训练阶段,OvO将为Ci和Cj训练成一个分类器,该分类器把D中的Ci类样例作为正例,Cj类样例作为反例。在测试阶段,新样本将同时提交给所有分类器,于是得到N(N−1)/2个分类结果,最终把预测的最多的类别作为最终分类结果
在这里插入图片描述
OvR拆分时,在训练阶段,将一个类的样例作为正例,所有其它类的样例作为反例来训练N个分类器。在测试阶段,新样本将同时提交给所有分类器,若仅有一个分类器预测为正类、则对应的类别标记作为最终分类结果;若有多个分类器预测为正类,则通常考虑各分类器的预测置信程度,选择置信度最大的类别标记作为分类结果。

比较OvO和OvR可以看出,OvR只需训练N个分类器,而OvO需训练N(N−1)/2个分类器,因此,OvO的存储开销和测试时间开销通常比OvR更大。但在训练时,OvR的每个分类器均使用全部的训练样例,OvO的每个分类器仅使用两个类的样例,因此,在类别很多时,OvO的训练时间开销通常比OvR小。但预测性能在多数情况下两者差不多。
  
MvM是每次将若干个类作为正类,若干个其它类作为反类。

MvM的正反类构造必须有特殊的设计,不能随便选取.

纠错输出码(Error Correcting Outputs Codes,简称ECOC)
纠错输出码是一种常用的MvM技术:

其工作工程主要分为两步:

  • 编码: 对N个类别进行M次划分,每次划分将一部分类别作为正类,一部分类别作为反类,形成一个二分类训练集。这样一共可以产生M个训练集,可以训练出M个分类器。
  • 解码:M个分类器分别对测试演变进行预测,这些预测标记组成一个编码。将这个预测标记与每个类别各自的编码进行比较,返回其中距离最小的类别作为最终预测结果。

类别划分通过“编码矩阵”(coding matrix)指定,常见有二元码(只有正类和反类)和三元码(正类反类和停用类)。在测试阶段,ECOC编码对分类器的错误有一定的容忍和修正能力。
在这里插入图片描述
上图(a)的若取海明距离(在信息编码中,两个合法代码对应位上编码不同的位数称为码距,又称海明距离)最小,又或者取欧氏距离最小的预测结果是C3。

3.6 类别不平衡问题

类别不平衡(class-imbalance)就是指分类任务中不同类别的训练样例数目差别很大的情况。
  
  例如1000个样例中有998个反例,2个正例,那么学习方法只需要一直输出反例,则可达99.8%的精度。
  
  在使用OvR、MvM策略后产生的二分类任务仍可能出现类别不平衡现象。不失一般性,我们假设正类样例较少,反类样例较多。
  
  从线性分类器的角度讨论,在用y=wTx+b对新样本x进行分类时,通常将预测出来的y值与阀值比较,例如当y>0.5时判别为正例,否则反例。故
  在这里插入图片描述
  当训练集中正、反例的数目不同时,令m+表示正例数目,m−表示反例数目,则观察几率m+/m−。由于我们通常假设训练集是真实样本总体的无偏差采样,因此观察几率就代表了真实几率。当分类器的预测几率高于观察几率时,为正例的可能性大。于是:
在这里插入图片描述

但分类器做决策时是根据式:
  在这里插入图片描述
  因此需要让

在这里插入图片描述这是类别不平衡学习的一个基本策略——“再缩放”(rescaling)。
值得一提的是,再缩放也是代价敏感学习 cost-sensitive learning)的基础

欠采样(undersampling):去除一部分反例,使得正例与反例数目接近。
过采样(oversampling):增加一些正例,使得正例与反例数目接近。
阀值移动(threshold-moving):将在这里插入图片描述嵌入到其决策过程中。

### 关于周志华机器学习》(西瓜)第二章的学习笔记 #### 模型评估与选择概述 模型评估与选择是机器学习领域的重要组成部分,旨在通过合理的方法评价不同模型的表现并挑选最优者。这一过程不仅涉及如何衡量单个模型的好坏,还包括怎样对比多个候选方案以做出最佳决策。 #### 偏差、方差和噪声的概念解析 偏差度量了学习算法的期望预测与实际结果之间的差距,反映了算法自身的拟合精度;方差描述的是相同规模训练集变化引起的学习效果波动情况,体现了数据扰动带来的影响;而噪声则设定了给定任务下所有可能采用的学习方法能达到的最佳预期泛化误差界限,揭示了问题本身固有的复杂性和挑战性[^2]。 #### 性能度量指标——P-R图及其应用 为了更直观地展示各类分类器的工作特性,通常会绘制精确率-召回率(Precision-Recall, P-R)曲线来辅助分析。当面对多组实验结果时,可以通过观察这些图形相互间的位置关系来进行优劣评判:如果某条曲线始终位于另一条之上,则表明前者具有更好的整体表现;而对于那些存在交点的情况,则需进一步计算各自下方区域面积大小作为判断依据之一。此外,“平衡点”作为一种特殊的性能测度,在特定条件下也能提供有价值的参考信息[^3]。 #### 偏差-方差分解理论简介 该理论为理解学习算法的一般化能力提供了框架性的指导思路,通过对平均测试错误率实施拆分操作,可以深入剖析导致过拟合现象背后的原因所在,并据此探索改进措施的方向。具体而言,总误差由三部分构成——不可约减误差点(即噪声)、平方形式表达出来的偏差项以及线性累加而成的方差成分[^4]。 ```python import numpy as np from sklearn.model_selection import train_test_split from sklearn.metrics import precision_recall_curve, auc def evaluate_model_performance(model, X, y): """ 计算并返回PR曲线下面积(AUC),用于量化模型的整体性能。 参数: model (object): 已经训练好的分类模型实例。 X (array-like of shape (n_samples, n_features)): 测试特征矩阵。 y (array-like of shape (n_samples,)): 对应的真实标签向量。 返回: float: PR AUC得分。 """ # 划分训练集/验证集 X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2) # 使用训练集拟合模型 model.fit(X_train, y_train) # 获取验证集中各观测对应的概率估计值 probas_pred = model.predict_proba(X_val)[:, 1] # 绘制PR曲线并求得AUC分数 precisions, recalls, _ = precision_recall_curve(y_val, probas_pred) pr_auc_score = auc(recalls, precisions) return pr_auc_score ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值