文章目录
本文属于我的机器学习/深度学习系列文章,点此查看系列文章目录
前言
线性(Fisher)判别分析(Linear Discriminant Analysis, LDA)也属于线性分类方法的一种,由(Fisher,1936)
提出,所以也叫Fisher判别分析。
LDA的基本思想是:对于给定的训练数据样本,将样本投影到一条直线上,让同类的样例的投影点尽可能近,异类样例投影点尽可能远,这样就区分开了两类样本。当对新的样本预测时,将其投影到这条直线上,看其离哪个分类近来确定它的类别。
将上面的思想转化成对目标函数的优化,就得到了:
max w J ( w ) = 类 间 平 均 距 离 类 内 平 均 距 离 \max_{\mathbf w}J(\mathbf w) = \frac{类间平均距离}{类内平均距离} wmaxJ(w)=类内平均距离类间平均距离
下图是LDA的二维示意图:
一、散度矩阵
首先设给定数据集 D = { ( x i , y i ) i = 1 m , y i ∈ { 0 , 1 } } D=\{(\mathbf x_i,y_i)_{i=1}^m, y_i\in \{0,1\}\} D={ (xi,yi)i=1m,yi∈{ 0,1}},我们需要用给定数据去刻画类间和类内距离。
-
类间距离
两类样本的类间距离怎么刻画?这么多点,只能通过找两个代表性的点来计算距离,显然是均值向量点。将两个均值向量( μ 1 , μ 2 \mu_1,\mu_2 μ1,μ2)投影到直线上,得到投影点( m 1 , m 2 m_1,m_2 m1,m2)之间的距离平方 ( m 1 − m 2 ) 2 (m_1-m_2)^2 (m1−m2)2。 向量 μ \mu μ在另一向量 w \mathbf w w上的投影为 w T μ \mathbf w^T \mu wTμ(忘了的可以看机器学习:线性分类问题(基础知识))。
由此我们有
类 间 距 离 的 平 方 = ( m 1 − m 2 ) 2 = [ w T ( μ → 1 − μ → 2 ) ] 2 = [ w T ( μ → 1 − μ → 2 ) ] [ w T ( μ → 1 − μ → 2 ) ] T = w T ( μ → 1 − μ → 2 ) ( μ → 1 − μ → 2 ) T w = w T S b w S b = ( μ → 1 − μ → 2 ) ( μ → 1 − μ → 2 ) T , 类 间 散 度 矩 阵 类间距离的平方= (m_1-m_2)^2 \\ = [\mathbf w^T(\overrightarrow \mu_1-\overrightarrow \mu_2)] ^2\\ = [\mathbf w^T(\overrightarrow \mu_1-\overrightarrow \mu_2)][\mathbf w^T(\overrightarrow \mu_1-\overrightarrow \mu_2)]^T\\ = \mathbf w^T(\overrightarrow \mu_1-\overrightarrow \mu_2)(\overrightarrow \mu_1-\overrightarrow \mu_2)^T\mathbf w\\ = \mathbf w^T S_b \mathbf w\\ S_b = (\overrightarrow \mu_1-\overrightarrow \mu_2)(\overrightarrow \mu_1-\overrightarrow \mu_2)^T,类间散度矩阵 类间距离的平方=(m1−m2)2=[wT(μ1−μ2)]2=[wT(μ1−μ2)][wT(μ1−μ2)]T=wT(μ1−μ2)(μ1−μ2)Tw=wTSbwSb=(μ1−μ2)(μ