多元统计分析-第七章计算解

多元统计分析-第七章计算解

周日 6月 07 2026
2888 字 · 11 分钟

代价敏感学习、贝叶斯分类、二次判别分析和线性判别分析的关系

  • 贝叶斯分类是代价敏感学习在误判损失相同 c(ki)=cc(k|i) = c情况下的简化。
  • 二次判别分析是在贝叶斯分类的基础上,进一步假设总体πi\pi_i服从多元正态分布Np(μi,Σi)N_p(\mu_i, \Sigma_i)时的分类方法。
  • 线性判别分析则是在二次判别分析的基础上,再次增加假设,即各个总体πi\pi_i的协方差矩阵均相等Σi=Σ\Sigma_i = \Sigma 时的简化情形。

留出法和k折交叉验证的基本步骤

留出法

  1. 划分数据集: 将数据集分为训练集、验证集和测试集。
  2. 建立规则与计算表观错误率: 通过训练集建立分类规则,并计算训练集中的误分类样本数所占的比例(即表观错误率)。
  3. 估计实际错误率: 通过验证集来估计实际错误率,结果可用于模型选择或调整参数。
  4. 评估泛化性能: 利用独立于训练与验证的测试集,来评估模型在未知样本上的泛化表现。

k折交叉验证基本步骤:

  1. 划分数据集: 将数据集划分为测试集和非测试集(其中非测试集包含训练集和验证集)。
  2. 交叉验证与计算错误率: 将非测试集划分为k个大小大致相等的折(folds)。对每一折,将其余k-1折作为训练集训练分类器,再用该折作为验证集计算误分类样本数。最后将所有折的误分类样本数相加并除以非测试集总样本数,从而得到平均错误率。
  3. 评估泛化性能: 使用独立的测试集来评估模型在未知总体样本上的真实表现。

Fisher 判别函数的个数应如何选择?

  • 在实际应用中,可以通过特征值贡献率(公式为 λ1+λ2++λrλ1+λ2++λp\frac{\lambda_1+\lambda_2+\dots+\lambda_r}{\lambda_1+\lambda_2+\dots+\lambda_p})来选择保留的判别函数个数,但这通常仅作为经验参考。
  • 更为稳健的选择方式是采用以误分类概率为准则的模型选择方法,例如留出法或k折交叉验证。
  • 从理论性质上讲,若令 s=rank(Σ1B)s = rank(\Sigma^{-1} B),则前s个判别函数所达到的分类效果,与考虑全部判别函数时的分类效果是完全相同的。

Fisher 判别分析和线性判别分析的关系

当各个总体的先验概率相等(即 p1==pg=1gp_1 = \cdots = p_g = \frac{1}{g}),并且Fisher判别分析中使用的判别函数个数不少于 ss 个(s=rank(Σ1B)s = rank(\Sigma^{-1}B))时,Fisher判别分析与线性判别分析这两种分类方法是完全等价的。

广义线性模型的定义

广义线性模型(GLM)是对经典线性回归模型的推广,它允许因变量不服从正态分布。它主要考虑因变量服从指数分布族的情形。在模型形式上,它通过一个连接函数(link function)g()g(\cdot)将因变量的条件期望μE(YX=x)\mu \equiv E(Y|X = x)与线性预测子ηxβ\eta \equiv x\beta联系起来,即g(μj)=ηjβxjg(\mu_j) = \eta_j \equiv \beta' x_j

凝聚型层次聚类法的算法步骤

  1. 定义距离: 首先确定各个样品之间的距离,以及簇与簇之间的距离衡量标准。
  2. 初始化: 将每个样品自成一簇,此时样品间的距离即等于簇间距离。
  3. 合并最近簇: 在所有簇中寻找距离最小的一对簇,并将它们合并为一个新簇。
  4. 更新距离: 计算出刚刚形成的新簇与其余各个已有簇之间的距离。
  5. 重复合并: 不断重复上述的合并和更新距离步骤,每次合并距离最近的两簇,直到最终所有的样品都被归并为同一个大簇为止。

常见簇间连接法的定义。

(设 DpqD_{pq}表示簇CpC_p和簇CqC_q 的簇间距离,djld_{jl}表示样品距离)

  • 最短距离法 (Single Linkage): 簇间距离定义为两簇中距离最近的两个样本点之间的距离,公式为Dpq=minjCp,lCqdjlD_{pq} = min_{j \in C_p, l \in C_q} d_{jl}
  • 最长距离法 (Complete Linkage): 簇间距离定义为两簇中距离最远的两个样本点之间的距离,公式为 Dpq=maxjCp,lCqdjlD_{pq} = max_{j \in C_p, l \in C_q} d_{jl}
  • 类平均法 (Average Linkage): 簇间距离定义为两簇中所有可能样本对距离的平均值,公式为 Dpq=1npnqjCp,lCqdjlD_{pq} = \frac{1}{n_p n_q} \sum_{j \in C_p, l \in C_q} d_{jl}
  • 重心法 (Centroid Linkage): 簇间距离定义为两簇重心(即样本均值)之间的距离,公式为 Dpq=dxˉp,xˉqD_{pq} = d_{\bar{x}_p, \bar{x}_q}
  • 中间距离法 (Median Linkage): 直接由递推公式定义,公式为 Drk2=12Dpk2+12Dqk214Dpq2D_{rk}^2 = \frac{1}{2} D_{pk}^2 + \frac{1}{2} D_{qk}^2 - \frac{1}{4} D_{pq}^2
  • Ward法: 它的目标是最小化所有簇的簇内平方和,并在合并时选择使总簇内平方和增加最小的两簇。

Ward 法局部最优策略的算法步骤。

  1. 初始时,将每个样品自成一簇。
  2. 在每一步中,计算所有可能的合并方案,选择能使总簇内平方和(SS)增加最小的两簇进行合并;此时的簇间距离定义为 Dpq=SrSpSqD_{pq} = S_r - S_p - S_q
  3. 重复执行上述合并过程,使得每次总簇数减少一簇,直到所有的样品最终被合并为一个簇。

非层次聚类法中初始划分和迭代优化的常见方式。

  • 初始划分的常见方式:
    • 直接划分样品: 通过随机分配或者凭经验判断,直接将所有的样品划分为K个簇。
    • 选取初始凝聚点: 可以凭经验或随机选择K个样品作为凝聚点;也可以采用密度法,即以给定半径计算样品点周围的密度,按密度由高到低依次选取相距一定距离的点作为凝聚点。选好凝聚点后,将其他样品分配到距离其最近的凝聚点所在的簇。
  • 迭代优化的常见方式:
    • 批量修改法 (Batch Updating): 每次迭代时,依据当前的簇中心,将所有样品统一重新分配到最近的簇中,然后再统一更新各簇的中心,不断重复直至收敛。
    • 逐个修改法 (Sequential Updating): 每次迭代时,依次逐个处理每个样品,将其分配至最近簇后立刻即时更新该簇的中心,待所有样品处理一轮后继续重复,直至收敛。

例题

假设有 gg个总体π1,,πg\pi_1,\cdots,\pi_g,其中总体 πi\pi_i出现的先验概率为pip_i,对应的概率密度函数为 fi(x)f_i(\mathbf{x})i=1,,gi=1,\dots,g。现给定一个新的样品 x\mathbf{x},我们需要判定其来自哪个总体。在代价敏感学习的框架下,分类规则是通过最小化平均误判损失来确定,即

minR1,R2,,RgECM=i=1gpi(kiP(ki)c(ki))\min_{R_1,R_2,\dots,R_g} \text{ECM} = \sum_{i=1}^g p_i \left( \sum_{k\neq i} P(k|i) c(k|i) \right)

其中,RiR_i表示将样品x\mathbf{x}判定为πi\pi_i 的集合,P(ki)P(k|i)表示来自πi\pi_i的样品被误判为πk\pi_k 的概率,c(ki)c(k|i)表示来自πi\pi_i的样品被误判为πk\pi_k的损失。请证明以下结论:


(1) 对于样品x\mathbf{x},若 =argmink=1,2,,ghk(x)\ell = \arg\min_{k=1,2,\dots,g} h_k(\mathbf{x}),则将 x\mathbf{x} 判定为 π\pi_\ell。其中:hk(x)=ikpifi(x)c(ki)h_k(\mathbf{x}) = \sum_{i\neq k} p_i f_i(\mathbf{x}) c(k|i)

人话:\ell 是 让 hk(x)h_k(\mathbf{x}) 最小的拿个类别吗?

minR1,R2,,RgECM=i=1gpi(kiP(ki)c(ki))\min_{R_1,R_2,\dots,R_g} \text{ECM} = \sum_{i=1}^g p_i \left( \sum_{k\neq i} P(k|i) c(k|i) \right)

其中:

  • Ri\displaystyle R_i:将样品 x\mathbf{x}判定为πi\pi_i的集合(决策区域)
  • P(ki)\displaystyle P(k|i):来自 πi\pi_i 的样品被误判为πk\pi_k的概率( P(ki)=Rkfi(x)dx\displaystyle P(k|i) = \int_{R_k} f_i(\mathbf{x}) d\mathbf{x}
  • c(ki)\displaystyle c(k|i):来自 πi\pi_i 的样品被误判为πk\pi_k 的损失

代入到ECM中:

ECM=i=1gpikic(ki)Rkfi(x)dx\mathrm{ECM} = \sum_{i=1}^g p_i \sum_{k\neq i} c(k|i) \int_{R_k} f_i(\mathbf{x}) \, d\mathbf{x}

交换求和与积分次序(就不证明为什么了):

ECM=i=1gkiRkpifi(x)c(ki)dx\mathrm{ECM} = \sum_{i=1}^{g} \sum_{k \neq i} \int_{R_k} p_i f_i(\mathbf{x}) c(k|i) \, d\mathbf{x}

这里是外层对i求和,我们改写成对k求和,其余没变:

ECM=k=1gikRkpifi(x)c(ki)dx\mathrm{ECM} = \sum_{k=1}^{g} \sum_{i \neq k} \int_{R_k} p_i f_i(\mathbf{x}) c(k|i) \, d\mathbf{x}

双重求和 i=1gki\sum_{i=1}^{g} \sum_{k \neq i},含义是:

先固定 ii(真实类),再对所有不等于 iikk(误判类)求和。这等价于先固定 kk(误判类),再对所有不等于 kkii(真实类)求和,即 k=1gik\sum_{k=1}^{g} \sum_{i \neq k}。两者遍历的指标对 (i,k)(i,k) 完全相同,只是交换了求和次序,因此可以改写。


RkR_k是将样品x\boldsymbol{x}判定为总体 πk\pi_k 的决策区域。

由于积分区域 RkR_k 与内层求和无关,可交换积分与求和(凑出表达式):

ECM=k=1gRk(ikpifi(x)c(ki))dx=k=1gRkhk(x)dx\mathrm{ECM} = \sum_{k=1}^{g} \int_{R_k} \left( \sum_{i \neq k} p_i f_i(\mathbf{x}) c(k|i) \right) d\mathbf{x} = \sum_{k=1}^{g} \int_{R_k} h_k(\mathbf{x}) d\mathbf{x}

我们分类的依据就是ECM最小,所以:

对于每一个固定的样本点 x\mathbf{x},它只能判为 π\pi_\ell 。此时它对 ECM 的贡献是 h(x)h_\ell(\mathbf{x})。为了使总 ECM 最小,应当对每个 x\mathbf{x} 选择使 h(x)h_\ell(\mathbf{x}) 最小的类别 \ell,即

=argmink=1,,ghk(x).\ell = \arg\min_{k=1,\dots,g} h_k(\mathbf{x}).因此,分类规则为:将x\mathbf{x}判给使得hk(x)h_k(\mathbf{x})最小的类π\pi_\ell

(2) 如果所有误判损失 c(ji)c(j|i) 均相等,分类规则可简化为:若=argmaxk=1,2,,gpkfk(x)\ell = \arg\max_{k=1,2,\dots,g} p_k f_k(\mathbf{x}),则将样品 x\mathbf{x}判定为π\pi_\ell

若所有误判损失相等,即 c(ki)=cc(k|i) = c(常数)对 kik \neq i

hk(x)=ikpifi(x)ch_k(\mathbf{x}) = \sum_{i \neq k} p_i f_i(\mathbf{x}) c

这里全体求和 i=1gpifi(x)\sum_{i=1}^{g} p_i f_i(x) 可以分成i=ki = kiki \neq k 两部分,所以可以拆开:

i=1gpifi(x)=pkfk(x)+ikpifi(x)\sum_{i=1}^{g} p_i f_i(\mathbf{x}) = p_k f_k(\mathbf{x}) + \sum_{i \neq k} p_i f_i(\mathbf{x}) ikpifi(x)=i=1gpifi(x)pkfk(x)\sum_{i \neq k} p_i f_i(\mathbf{x}) = \sum_{i=1}^g p_i f_i(\mathbf{x}) - p_k f_k(\mathbf{x})

所以: hk(x)=ikpifi(x)c=c(i=1gpifi(x)pkfk(x)).h_k(\mathbf{x}) = \sum_{i \neq k} p_i f_i(\mathbf{x}) c = c \left( \sum_{i=1}^g p_i f_i(\mathbf{x}) - p_k f_k(\mathbf{x}) \right). 由于 i=1gpifi(x)\sum_{i=1}^g p_i f_i(\mathbf{x})kk无关,最小化hk(x)h_k(\mathbf{x})等价于最大化pkfk(x)p_k f_k(\mathbf{x})(因为是减去而且是非负的)。故分类规则变为 =argmaxk=1,,gpkfk(x).\ell = \arg\max_{k=1,\dots,g} p_k f_k(\mathbf{x}).

例题

已知样品由 3 个变量 (X1,X2,X3)(X_1,X_2,X_3)构成。样品 1 的观测值为x1=(2,1,4)\mathbf{x}_1 = (2,1,4),样品 2 的观测值为 x2=(3,6,7)\mathbf{x}_2 = (3,6,7),请分别计算样品 1 和样品 2 的曼哈顿距离、欧式距离、切比雪夫距离、堪培拉距离和余弦距离(计算结果保留小数点后两位)。

曼哈顿距离

dman=i=13x1ix2i=23+16+47=1+5+3=9.00d_{\text{man}} = \sum_{i=1}^{3} |x_{1i} - x_{2i}| = |2-3| + |1-6| + |4-7| = 1+5+3 = 9.00

欧式距离

deuc=i=13(x1ix2i)2=(23)2+(16)2+(47)2=1+25+9=355.92d_{\text{euc}} = \sqrt{\sum_{i=1}^{3} (x_{1i} - x_{2i})^2} = \sqrt{(2-3)^2 + (1-6)^2 + (4-7)^2} = \sqrt{1+25+9} = \sqrt{35} \approx 5.92

切比雪夫距离(L∞距离)

dche=maxix1ix2i=max(1,5,3)=5.00d_{\text{che}} = \max_{i} |x_{1i} - x_{2i}| = \max(1,5,3) = 5.00

堪培拉距离

dcan=i=13x1ix2ix1i+x2i=12+3+51+6+34+7=1.18701.19d_{\text{can}} = \sum_{i=1}^{3} \frac{|x_{1i} - x_{2i}|}{|x_{1i}| + |x_{2i}|} = \frac{1}{2+3} + \frac{5}{1+6} + \frac{3}{4+7} = 1.1870 \approx 1.19

余弦距离(1 − 余弦相似度)

余弦相似度:

cosθ=x1x2x1x2=2×3+1×6+4×722+12+4232+62+72=6+6+282194=4019744044.4300.9003\cos \theta = \frac{\mathbf{x}_1 \cdot \mathbf{x}_2}{\|\mathbf{x}_1\| \|\mathbf{x}_2\|} = \frac{2\times3 + 1\times6 + 4\times7}{\sqrt{2^2+1^2+4^2} \cdot \sqrt{3^2+6^2+7^2}} = \frac{6+6+28}{\sqrt{21}\cdot\sqrt{94}} = \frac{40}{\sqrt{1974}} \approx \frac{40}{44.430} \approx 0.9003

余弦距离:

dcos=1cosθ10.9003=0.09970.10d_{\text{cos}} = 1 - \cos \theta \approx 1 - 0.9003 = 0.0997 \approx 0.10

例题

已知样品由 5 个二元变量构成,用以描述样品的 5 种特征:变量取值为 1 表示该特征存在,取值为 0 表示该特征缺失。样品 1 与样品 2 的观测值如下表所示:

样品变量变量变量变量变量
1号2号3号4号5号
样品110011
样品211010

请分别计算样品 1 和样品 2 的简单匹配系数、Dice 系数和 Rogers-Tanimoto 系数。

根据样品1和样品2的二元变量观测值,计算列联表:

  • a = 2(两样品 同时 为 1)
  • b = 1(样品1 为 1 样品2 为 0)
  • c = 1(样品1 为 0 样品2 为 1)
  • d = 1(两样品 同时 为 0)

则各系数如下:

简单匹配系数

SMC=a+da+b+c+d=2+15=35=0.60\text{SMC} = \frac{a+d}{a+b+c+d} = \frac{2+1}{5} = \frac{3}{5} = 0.60

Dice系数

Dice=2a2a+b+c=2×24+1+1=46=230.67\text{Dice} = \frac{2a}{2a+b+c} = \frac{2\times2}{4+1+1} = \frac{4}{6} = \frac{2}{3} \approx 0.67

ogers-Tanimoto系数

R=a+da+d+2(b+c)=2+13+2×2=370.43R = \frac{a+d}{a+d+2(b+c)} = \frac{2+1}{3+2\times2} = \frac{3}{7} \approx 0.43

简单匹配系数 0.60,Dice系数 0.67,Rogers-Tanimoto系数 0.43


Thanks for reading!

多元统计分析-第七章计算解

周日 6月 07 2026
2888 字 · 11 分钟

Comments

cover

青山绿野

渡边 雅二