预备知识——一点线性代数知识,一点感知机的知识
LDA介绍
通过LDA 数据降维
先求w,确定分别面方向,即最佳投影方向
再求b,确定偏置
投影后有最佳的可分离性,即最大的类间距离和最小的类内距离
同时优化这两个目标
得到这个,分母越大越好,分子越小越好,平方是为了后续方便求导
u0和u1表示两类样本的类间距离,下标不重要,同样s0和s1也是一样。
投影向量计算:
假定最佳投影向量为𝜔,则任意一个n维样本向量𝑥在投影向量上的投影为𝝎’x,w’表示w的转置
计算类内散度J ,即是上面公式的S
分为下面几个步骤:
先求组内偏差
计算类别内每个样本距离中心的偏差,
再将全部偏差进行相加,
假定x来自与第0类,则其投影为X
则第0类的则内偏差为:
其他类也这样算
最后得到类内散度:
设总样本数为m,第0类样本数为𝑚0,第1类样本数为𝑚1
则协方差矩阵:
经过推算,则上面的J1 类内散度可以改写为下面这个:
S_w我们称为类内散度矩阵
接下来求类间距离:
则可以定义类间散度矩阵
则类间散度矩阵可以画成如此
则原问题化成
求解:
定义拉格朗日函数为𝐿 𝑊, 𝜆 = 𝑊’𝑆_𝑏𝑊 − 𝜆( 𝑊‘𝑆_𝑤𝑊 − 𝑐) , 𝜆为待定系数
由线性代数知识和上面的式子,可以知道:
继续化简一下:
可以遵循下面的算法
求偏置b
那该如何求偏置b呢
求得最佳分类投影方向后,如何分类,求取分类阈值。
假设我们有一个数据集X,对应的类别标签为y。在LDA中,我们希朁找到一个投影向量w,将原始的高维数据X投影到一维或者更低维的空间。假设投影后的数据为X_proj,那么投影过程可以表示为 X_proj = X * w。
LDA中的偏置b通常是通过以下步骤来求得的:
计算每个类别的均值向量(mean vector)。
计算不同类别均值向量之间的差异。
根据类别均值向量的差异来计算偏置b。
具体来说,偏置b的计算过程如下:
首先,计算每个类别在投影空间上的均值(投影后的数据的均值),记作 m1, m2, …, mk。
然后,计算这些均值的中心化均值,即所有类别均值的平均值:m_mean = (m1 + m2 + … + mk) / k。
最后,偏置b可以通过 b = -w’ * m_mean 计算得到,其中w’为投影向量w的转置。
示例:
(5)中[-0.79 0.89]‘约等于[-1 1.13]’ ,方向相同即可