一、生成学习算法
判别学习算法,为对整个样本集进行总体建模(即对P{y|x}建模,给定特征时输出某种结果的概率),训练得到参数后对给定的输入代入参数得到输出。
在分类问题中,有一类算法叫生成学习算法,会对不同的类别分别进行建模(即对P{x|y}建模,给定结果时显示某种特征的概率),然后把输入分别用不同类别模型进行处理,看最符合哪个。
使用生成模型进行输出分类(以0-1分类为例)时,往往还会计算P{y}的分布,然后由贝叶斯公式P(y=1∣x)=P(x∣y=1)P(y=1)P(x)=P(x∣y=1)P(y=1)∑i=0i=1P(x∣y=i)P(y=i)=P(x∣y=1)P(y=1)P(x∣y=0)P(y=0)+P(x∣y=1)P(y=1)P(y=1|x)= \frac{P(x|y=1)P(y=1)}{P(x)}= \frac{P(x|y=1)P(y=1)}{\sum_{i=0}^{i=1}P(x|y=i)P(y=i)}= \frac{P(x|y=1)P(y=1)}{P(x|y=0)P(y=0)+P(x|y=1)P(y=1)}P(y=1∣x)=P(x)P(x∣y=1)P(y=1)=∑i=0i=1P(x∣y=i)P(y=i)P(x∣y=1)P(y=1)=P(x∣y=0)P(y=0)+P(x∣y=1)P(y=1)P(x∣y=1)P(y=1)
高斯判别分析就是一种生成学习算法,前提假设为:特征xi均连续,Y服从伯努利分布,P(x|y)服从正态分布(可能为高维)。在给出高斯判别分析之前,先给出高维正态概率分布。
二、协方差与高维正态分布
令X,Y为两个随机变量,它们的协方差Cov(X,Y)定义为Cov(X,Y)=E[X−E(X)(Y−E(Y)]Cov(X,Y)=E[X-E(X)(Y-E(Y)]Cov(X,Y)=E[X−E(X)(Y−E(Y)],其中,E(X)为随机变量X的数学期望(数学期望的定义为E(X)=∫−∞+∞xfX(x)dxE(X)=\int_{-\infty}^{+\infty}xf_X(x)dxE(X)=∫−∞+∞xfX(x)dx)。协方差用于衡量两个随机变量的线性关系水平,相关系数ρ\rhoρ定义为ρXY=Cov(X,Y)D(X)∗D(Y)\rho_{XY}=\frac{Cov(X,Y)}{\sqrt{D(X)*D(Y)}}ρXY=D(X)∗D(Y)Cov(X,Y)(D(X)为随机变量X的二阶中心矩,即E{|X-E(X)|2})。ρXY\rho_{XY}ρXY取值范围为[-1,1]闭区间,值为1时X,Y线性正相关(Y=aX,a>0),为-1时X,Y线性负相关(Y=aX,a<0),为0时没有任何线性关系。
给出协方差和相关系数的定义后,对于n个随机变量X1,X2…Xn,就可以得到协方差矩阵的定义C^=\hat C=C^= [CX1X1CX1X2...CX1XnCX2X1CX2X2...CX2Xn...CXnX1CXnX2...CXnXn]\left[\begin{matrix}C_{X1X1} & C_{X1X2} & ...C_{X1Xn}\\C_{X2X1} & C_{X2X2} & ... C_{X2Xn}\\...\\C_{XnX1} & C_{XnX2} & ...C_{XnXn} \end{matrix}\right]⎣⎢⎢⎡CX1X1CX2X1...CXnX1CX1X2CX2X2CXnX2...CX1Xn...CX2Xn...CXnXn⎦⎥⎥⎤,由相关系数ρ\rhoρ的定义可以把协方差矩阵C^\hat CC^写成
C^=\hat C=C^=[ρX1X1D(X1)∗D(X1)ρX1X2D(X1)∗D(X2)...ρX1XnD(X1)∗D(Xn)ρX2X1D(X2)∗D(X1)ρX2X2D(X2)∗D(X2)...ρX2XnD(X2)∗D(Xn)...ρXnX1D(Xn)∗D(X1)ρXnX2D(Xn)∗D(X2)...ρXnXnD(Xn)∗D(Xn)]\left[ \begin{matrix}\rho_{X1X1}\sqrt{D(X1)*D(X1)} & \rho_{X1X2}\sqrt{D(X1)*D(X2)} &... \rho_{X1Xn}\sqrt{D(X1)*D(Xn)}\\\rho_{X2X1}\sqrt{D(X2)*D(X1)} & \rho_{X2X2}\sqrt{D(X2)*D(X2)} & ... \rho_{X2Xn}\sqrt{D(X2)*D(Xn)}\\ ...\\\rho_{XnX1}\sqrt{D(Xn)*D(X1)} & \rho_{XnX2}\sqrt{D(Xn)*D(X2)} & ... \rho_{XnXn}\sqrt{D(Xn)*D(Xn)}\end{matrix}\right]⎣⎢⎢⎡ρX1X1D(X1)∗D(X1)ρX2X1D(X2)∗D(