判别分析

intro

判别分析是一类监督学习,解决的是在已知标签的训练数据时,训练模型对未知标签的数据进行分类。在统计学习方法中有以下方法可以来做分析。

  • 软分类:logistic回归、随机森林、神经网络等
  • 硬分类:距离判别分析、贝叶斯判别分析、费希尔判别分析、支持向量机、决策树、朴素贝叶斯等

其中关于硬分类问题,判别分析所做的从本质上来看是对特征空间的一组划分,并在此划分上定义了一个映射。划分的概念即将样本空间\(\Omega\)划分为互不相交的子集,划分记为\(R=\{R-1,R_2...Rm\}\),且\(\bigcup_{n=1}^m R_n=\Omega\)\(R_i \bigcap R_j=\phi(\forall i\ne j\))。样本空间元素记为\(x\),对\(\forall x \in\Omega\)\(\exists R_n \in R,s.t. x \in R_n\),给定分类的类别集合为\(Category=\{c_1,c_2...c_k\}\),定义映射(满)\(f:\Omega \to Category,x\to c_i (i=1,2...k)\)。映射不同我们用于判别分析的方法不同。而软分类问题(以0-1分类为例)则是定义了由样本空间到\([0,1]\)的映射。
下面主要是关于多元统计中常用的距离判别分析、贝叶斯判别分析、费希尔判别分析的原理和函数实现。后文中除非特殊说明,所有的样本\(x\in R^p\).

距离判别法

距离判别法的思路很简单,计算新到的样本距离各总体的距离,选择最近的作为新样本的所属类别,但是这里计算距离的时候我们考虑了已知总体的分布状况,选择的是\(manhanttan\)距离。
给定k组标记数据,第k数据标签为\(Y_k\),包含\(n_k\)个样本,其中每个样本\(X_{k,i}\)为来自\(R_p\)的随机向量,记为\(\{Y_k,X_{k,1:{n_k}}\}\)。假定第k个总体的协方差矩阵为\(\Sigma_k\)。计算得到第k组标记数据的样本矩阵为\(\mu_k\)。给定样本X,判定其类别的方法为:

\[category(X)=\mathop{argmin}\limits_{i}(X-\mu_i)'\Sigma_i^{-1}(X-\mu_i) \]

贝叶斯判别法

距离判别法采用样本距离聚类中心大小判定聚类类别的思想十分直观,但是一方面没考虑到总体的先验分布,另一方面没考虑到类别的重要性程度,各类别之间出现误分类的后果等一而视。贝叶斯判别法由类别的重要性考虑到误分类的惩罚以及样本的先验大小。
给定类别的先验概率\(q_1,q_2...q_k\),并且给定原本属于类别\(i\)误分到类别\(j\)的误分类损失函数\(c_{j|i}\),且有\(c_{i|i}=0\),误分类矩阵记为\(C\)。现给定一个划分\(R=\{R_1,R_2...R_k\}\),以及定义在这个划分上的映射——\(f:R_i \to i\),即划分映射到下标对应的分类。假定第\(k\)类的样本的概率密度函数为\(f_i(x)\)。定义由\(i\)类误分到\(j\)类的误分类概率为\(P_{j|i}=\int_{R_j} f_i(x)dx\),误分类损失为\(\int_{R_j} f_i(x)c_{j|i}dx\)。由此定义第i类误分类的总的损失为\(\sum_{j= 1}^k\int_{R_j} f_i(x)c_{j|i}dx\)。最后结合各类出现的先验概率,给出在给定划分\(R\)以及映射规则以后,平均的误分类损失函数:

\[l(R)=\sum_{i=1}^k q_i \sum_{j=1}^k\int_{R_j} f_i(x)c_{j|i}dx \]

若记误分类到第\(i\)类样本的平均概率密度为\(h_i(x)=\sum_{j=1}^k q_i f_i(x)c_{i|j}dx\),则总的平均误分类损失函数为:

\[l(R)=\sum_{i=1}^k \int_{R_i} h_i(x)dx \]

寻求平均误分类损失最小的划分:

\[R^*=\mathop{argmin}\limits_{R} l(R) \]

在实际应用中,若\(R=\{R_1,R_2...R_k\}\)是最小平均损失的划分,此时另给任意以其他划分\(R^*=\{R^*_1,R^*_2...R^*_k\}\),则其平均损失之差为:

\[l(R)-l(R^*)=\sum_{i=1}^k \{\int_{R_i}h_i(x)dx-\int_{R^*_i}h_i(x)dx\} \]

\[=\sum_{i=1}^k \sum_{j=1}^k \int_{R_i \cap R^*_j}(h_i(x)-h_j(x))dx \]

根据\(R\)的定义,在\(R\)为最优划分时,在区域\(R_i\)\(h_i(x) \leq h_j(x)\)对一切\(j\)成立。即在最优划分下,若给定一个未知样本,计算\(h_i(x),i=1,2...k\),样本被划分到平均损失\(h_i(x)\)最小的分类下。
特殊情况下,两总体的情形,当类别之间先验概率相同\(q_1=q_2\),各类别的误分类惩罚相同\(c_{1|2}=c_{2|1}=c,c_{1|1}=c_{2|2}=0\),同时样本服从不同的多元正态分布,此时贝叶斯判别分析退化为距离判别分析。此时穷举划分的损失函数,比较两类划分的损失大小,采用做比的方式就可以将正态概率密度函数的比值转化为指数函数内的马氏距离,从而问题转化为比较样本空间内的点距离两个类中心的马氏距离大小,与距离判别法等价,详细的证明略过。

Fisher最大投影判别法

Fisher判别法的思路是为p维随机变量寻找一个最优的投影方向,使得投影后的数据在新的投影方向上保留尽可能大组间离差和尽可能小的组内离差和,直观地说,就是选择一个投影方向让不同类别的样本尽可能得分得开。下面阐述Fisher判别法求解过程。
记样本类别均值矩阵为\(\overline{X}_c\),其第\(i\)行为第\(i\)个样本所属类别的均值向量;总体的均值矩阵\(\overline{X}\),其每个行向量是所有样本的均值向量。有样本的组内离差\(E=(X-\overline{X}_c)’(X-\overline{X}_c)\)组间离差阵\(A=(\overline{X}_c-\overline{X})’(\overline{X}_c-\overline{X})\)给定一个投影方向为\(a_{p\times 1}\),样本矩阵\(X\)在这个方向上的投影为\(Xa\)。则投影后,在\(a\)方向的组间离差为\(A^*=a'Aa\),组内离差\(E^*=a'Ea\),此处我们假定组内离差阵为非奇异矩阵。此外由于我们寻找的是投影的方向,因此不妨选择合适的\(a\)设定\(a'Ea=1\)。要寻找一个\(a\)使得投影方向的组内离差最大组间离差最小,考虑到不同方向的利差绝对值不同,因此选择组间离差和组内离差之比作为目标函数:

\[a=\mathop{argmin}\limits_{a\in R^p}a'Aa \]

\[s.t. a'Ea=1 \]

求解约束优化,写出拉格朗日函数:

\[L(a)= a'Aa-\lambda (a'Ea-1) \]

\[\frac{\partial L(a)}{\partial{a}}=2Aa-2\lambda Ea=0 \]

\[E^{-1}Aa=\lambda a \]

即由一阶条件解得\(a\)是矩阵\(E^{-1}A\)的特征向量,其对应的特征值为\(\lambda\)。且此处在一阶条件等式左右左侧同乘以\(a'\)有:

\[a'Aa-\lambda a'Ea=0 \]

代入朗格朗日函数:

\[L(a)= a'Aa-\lambda (a'Ea-1) \]

\[=\lambda \]

由此要目标函数取得最大值,则\(a\)需要选择矩阵\(E^{-1}A\)的最大特征值\(\lambda_{max}\)对应的投影方向\(a_{\lambda _{max}}\)。验证此时二阶条件得\(\frac{\partial^2 L(a)}{\partial{a^2}}=2E(E^{-1}A-\lambda I)\)\(Hessian\)矩阵非正定,即在\(a_{\lambda _{max}}\)出目标函数取得极大值。由此得到了最大投影方向。(其实不需要验证二阶条件,此处无边界点,并且我们已经验证过所有可能的极值点中\(\lambda_{max}\)特征向量对应目标函数最大了)
计算逐个类别均值向量在\(a\)上的投影位置,分别记为\(\mu_1,\mu_2...\mu_k\),给定新的样本\(x_{p\times 1}\),样本所属类别为:

\[category(x)=\mathop{argmin}\limits_{i=1}^k||(x-\mu_i)||^2 \]

最后确定投影方向以后,最优分类按照欧式距离来计算,并未采用马氏距离。

posted @ 2022-04-23 21:22  年轻的土豆  阅读(349)  评论(0)    收藏  举报