机器学习—降维算法1LDA线性判别分析(理论)

1.降维原理的概述

由于特征数据过于庞大,需要对数据进行降维处理,即通过某种映射方法将原始高维空间中的数据点映射到低维度的空间中(减少特征的个数),比较经典的是LDA线性判别分析(Linear Discriminant  Analysis)PCA主成分分析

LDA线性判别分析也叫作Fisher 线性判别(FLD)(有监督问题),最初用于机器学习的分类任务,更多用于降维。降维不仅要压缩数据的特征,还需找到合适的投影方向,使得压缩后的数据更有利用价值。

降维的两个目标:

(1)不同类别的数据点,投影后离得越远越好

(2)同类别的数据点,投影后越集中越好,离组织的中心越近越好

2.优化的目标

投影就是通过矩阵变换把数据映射到最适合做分类的方向

y=w^{^{T}}x

x表示原始数据所在空间,y表示降维后数据所在空间,求最合适的变换方向就是求解出参数w。

(1)不同类别的数据(不同的特征数据)

不同类别的数据点,投影后离得越远越好

数据点的均值表示数据的中心位置,中心点位置的计算方法如下:

\mu _{i}=\frac{1}{N_{i}}\sum _{x\in w_{i}}x

对于多分类的问题,要得到各自类别的中心点,在降维算法中,我们比较关心的是投影后数据的中心点位置:

\tilde{\mu _{i}}=\frac{1}{N_{i}}\sum _{x\in w_{i}}w^{T}x=w^{T}\mu _{i}

i表示第i类数据。对于二分类问题,我们希望这两类数据的中心点里的越远越好,

J\left ( w \right )=\left | \tilde{\mu _{1}}-\tilde{\mu _{2}} \right |=\left | w^{T} \left ( \mu _{1} -\mu _{2}\right )\right |

即我们J\left ( w \right )希望越大越好

(2)同类别的数据

同类别的数据点,投影后越集中越好,离组织的中心越近越好

散列值:表示同类数据样本点的离散程度,定义如下:

\tilde{s_{t}^{2}}=\sum _{y\in Y_{i}}\left ( y-\tilde{\mu _{i}} \right )^{2}

y表示投影后的数据,\tilde{\mu _{i}}表示投影后数据的中心点位置,散列值表示样本的密集程度,值越大,越分散;值越小,则越集中。

我们的目标希望J\left ( w \right )越大也挺好,\tilde{s_{t}^{2}}越小越好

 3.线性判别分析求解

对于二分类任务,要最大化不同类别之间的距离,将其作为分子,最小化同类样本之间的离散程度,作为分母,即最终整体的J\left ( w \right )求其极大值,对于两类数据,

J\left ( w \right )=\frac{\left | \tilde{\mu _{1}} -\tilde{\mu _{2}} \right |^{2}}{\tilde{s_{1}^{2}}+\tilde{s_{2}^{2}}}

\tilde{s_{t}^{2}}=\sum _{y\in Y_{i}}\left ( y-\tilde{\mu _{i}} \right )^{2}=\sum _{y\in Y_{i}}\left ( w^{T}x-w^{T}\mu _{i}\right )^{2}=\sum _{y\in Y_{i}}w^{T}\left ( x-\mu _{i} \right )\left ( x-\mu _{i} \right )^{T}w

S_{i}=\sum _{x\in X_{i}}\left ( x-\mu _{i} \right )\left ( x-\mu _{i} \right )^{T}为散布(离散)矩阵

定义类内总的散布矩阵为:

S_{w}=S_{1}+S_{2}

可得:

\tilde{s_{1}^{2}}+\tilde{s_{2}^{2}}=w^{T}S_{w}w

\left ( \tilde{\mu _{1}} -\tilde{\mu _{2}} \right )^{2}=\left ( w^{T}\mu _{1}-w^{T}\mu _{2}\right )^{2}=w^{T}\left ( \mu _{1}-\mu _{2}\right )\left ( \mu _{1}-\mu _{2}\right )^{T}w=w^{T}S_{B}w

S_{B}=\left ( \mu _{1}-\mu _{2}\right )\left ( \mu _{1}-\mu _{2}\right )^{T}类间散布矩阵。

目标函数最终可以表示成:

J\left ( w \right )=\frac{w^{T}S_{B}w}{w^{T}S_{w}w}

对于S_{B}S_{w},只要有数据和标签就可以求解.对于J(w),通常先固定分母,经过放缩变换之后,将其值限定为1,则令:w^{T}S_{w}w=1,在此条件下求解w^{T}S_{B}w的极大值点,利用拉格朗日乘子法:

c\left ( w \right )=w^{T}S_{B}w-\lambda \left ( w^{T}S_{w}w-1\right ),

对其关于w求导令其为0:

\frac{\partial c}{\partial w}=2S_{B}w-2\lambda S_{w}w=0

即:S_{w}^{-1}S_{B}w=\lambda w

在线性判别法中,只要得到S_{B}S_{w},然后求其特征值,可以得到投影方向,然后对数据做相应的矩阵变换,就完成全部的降维操作。

参考文档:《跟着迪哥学Python数据分析与机器学习实战》

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值