【机器学习】线性分类——线性判别分析LDA(理论+图解+公式推导)

简介: 【机器学习】线性分类——线性判别分析LDA(理论+图解+公式推导)

2021人工智能领域新星创作者,带你从入门到精通,该博客每天更新,逐渐完善机器学习各个知识体系的文章,帮助大家更高效学习。


一、概述

本篇讲解一种新的分类算法,它就是LDA(线性判别分析),它是一个比较经典的一个二分类算法,不过现在不怎么流行了,但是整个算法的思想很具有意义。

它是一种基于降维的方式将所有的样本映射到一维坐标轴上,然后设定一定的阈值,将样本进行区分,画幅图方便理解

它首先会将所有的样本向一个向量做投影,此时我们会获得新的坐标轴上的坐标位置,然后我们希望的是类内小,类间大,也就是同类样本映射后的坐标尽可能的聚在一起,而不同类的样本映射后尽可能的远离。

这个就是LDA的基本算法流程,下面将讲解整个算法的数学推导,以及如何求解方程

二、数学原理推导

1.数学符号

首先我们假设整个样本空间为两个类别,分别是1、-1,我们将1类视为 C 1 C_1C1 ,对应-1我们视为 C 2 C_2C2 ,其中:

∣ X C 1 ∣ = n 1 ∣ X C 2 ∣ = n 2 n 1 + n 2 = n |X_{C_1}|=n1\\|X_{C_2}|=n2\\n1+n2=nXC1=n1XC2=n2n1+n2=n

其中N1、N2代表每个类别样本的个数。

定义z为映射后的坐标即投影

2.定义类均值、方差

由于是将我们的样本数据X向w向量做投影,我们约定w的模长为1,所以有:

z i = w T x i z_i=w^Tx_izi=wTxi

由该式子,我们可以构造映射后的均值和方差,用来衡量样本的类间距离和类内距离

映射后Z坐标的均值为:

z ‾ = 1 n ∑ i = 1 n w T x i \overline z=\frac{1}{n}\sum_{i=1}^nw^Tx_iz=n1i=1nwTxi

Z坐标的方差为:

S z = 1 n ∑ i = 1 n ( z i − z ‾ ) 2 S_z=\frac{1}{n}\sum_{i=1}^n(z_i-\overline z)^2Sz=n1i=1n(ziz)2

这两个公式就可以评估我们映射后的样本密集程度。

C1类样本:

{ z ‾ 1 = 1 n 1 ∑ i = 1 n 1 w T x i S z 1 = 1 n 1 ∑ i = 1 n 1 ( z i − z 1 ‾ ) 2

{z¯¯¯1=1n1n1i=1wTxiSz1=1n1n1i=1(ziz1¯¯¯¯¯)2{z¯1=1n1∑i=1n1wTxiSz1=1n1∑i=1n1(zi−z1¯)2

{z1=n11i=1n1wTxiSz1=n11i=1n1(ziz1)2

C2类样本:

{ z ‾ 1 = 1 n 2 ∑ i = 1 n 2 w T x i S z 2 = 1 n 2 ∑ i = 1 n 2 ( z i − z 2 ‾ ) 2

{z¯¯¯1=1n2n2i=1wTxiSz2=1n2n2i=1(ziz2¯¯¯¯¯)2{z¯1=1n2∑i=1n2wTxiSz2=1n2∑i=1n2(zi−z2¯)2

{ z 1 = n2 1 i=1 n2 w T x i S z2 = n2 1 i=1 n2 ( z i z 2 ) 2

3.构造目标函数

由上面我们获得的方差和均值公式,我们的要求就是类内小,类间大,所以我们可以用相应的函数进行表达

  • 类内小:S z 1 + S z 2 S_{z_1}+S_{z_2}Sz1+Sz2 两个类的方差越小,说明样本越密集
  • 类间大:( z 1 ‾ − z 2 ‾ ) 2 (\overline {z_1}-\overline {z_2})^2(z1z2)2 ,用两个类的均值的距离说明两个类之间的距离

所以我们可以构造目标函数:

J ( w ) = ( z 1 ‾ − z 2 ‾ ) 2 S z 1 + S z 2 J(w)=\frac{(\overline {z_1}-\overline {z_2})^2}{S_{z_1}+S_{z_2}}J(w)=Sz1+Sz2(z1z2)2

我们希望该值是越大越好,也就是:

a r g m a x w J ( w ) argmax_wJ(w)argmaxwJ(w)

三、求解目标函数

上文我们获得了优化函数,接下来的目标就是对该方程进行求解,在求解之前我们先将其进行化简:

J ( w ) = ( z 1 ‾ − z 2 ‾ ) 2 S z 1 + S z 2 = ( 1 n 1 ∑ i = 1 n 1 w T x i − 1 n 2 ∑ i = 1 n 2 w T x i ) 2 1 n 1 ∑ i = 1 n 1 ( z i − z 1 ‾ ) 2 + 1 n 2 ∑ i = 1 n 2 ( z i − z 2 ‾ ) 2 = w T ( X C 1 ‾ − X C 2 ‾ ) ( X C 1 ‾ − X C 2 ‾ ) T w w T ( S C 1 + S C 2 ) w J(w)=\frac{(\overline {z_1}-\overline {z_2})^2}{S_{z_1}+S_{z_2}}\\=\frac{(\frac{1}{n_1}\sum_{i=1}^{n_1}w^Tx_i-\frac{1}{n_2}\sum_{i=1}^{n_2}w^Tx_i)^2}{\frac{1}{n_1}\sum_{i=1}^{n_1}(z_i-\overline {z_1})^2+\frac{1}{n_2}\sum_{i=1}^{n_2}(z_i-\overline {z_2})^2}\\=\frac{w^T(\overline {X_{C_1}}-\overline {X_{C_2}})(\overline {X_{C_1}}-\overline {X_{C_2}})^Tw}{w^T(S_{C_1}+S_{C_2})w}J(w)=Sz1+Sz2(z1z2)2=n11i=1n1(ziz1)2+n21i=1n2(ziz2)2(n11i=1n1wTxin21i=1n2wTxi)2=wT(SC1+SC2)wwT(XC1XC2)(XC1XC2)Tw

这里我们为了方便表示,我们定义:

S b = ( X C 1 ‾ − X C 2 ‾ ) ( X C 1 ‾ − X C 2 ‾ ) T S w = S C 1 + S C 2 S_b=(\overline {X_{C_1}}-\overline {X_{C_2}})(\overline {X_{C_1}}-\overline {X_{C_2}})^T\\S_w=S_{C_1}+S_{C_2}Sb=(XC1XC2)(XC1XC2)TSw=SC1+SC2

所以我们的目标函数就变为了:

J ( w ) = w T S b w w T S w w = w T S b w ( w T S w w ) − 1 J(w)=\frac{w^TS_bw}{w^TS_ww}\\=w^TS_bw(w^TS_ww)^{-1}J(w)=wTSwwwTSbw=wTSbw(wTSww)1

接下来我们需要对目标函数进行求导:

∂ J ( w ) ∂ w = 2 S b w ( w T S w w ) − 1 + w T S b w ( − 1 ) ( w T S w w ) − 2 2 S w w = 0 \frac{\partial J(w)}{\partial w}=2S_bw(w^TS_ww)^{-1}+w^TSbw(-1)(w^TS_ww)^{-2}2S_ww=0wJ(w)=2Sbw(wTSww)1+wTSbw(1)(wTSww)22Sww=0

化简后我们可以获得:

S b w ( w T S w w ) = ( w T S b w ) S w w S_bw(w^TS_ww)=(w^TS_bw)S_wwSbw(wTSww)=(wTSbw)Sww

我们可以观察到,我画括号内的式子为标量,所以此时又可以表达为:

S w w = w T S w w w T S b w S b w = w T S w w w T S b w ( ( X C 1 ‾ − X C 2 ‾ ) ( X C 1 ‾ − X C 2 ‾ ) T ) w S_ww=\frac{w^TS_ww}{w^TS_bw}S_bw\\=\frac{w^TS_ww}{w^TS_bw}((\overline {X_{C_1}}-\overline {X_{C_2}})(\overline {X_{C_1}}-\overline {X_{C_2}})^T)wSww=wTSbwwTSwwSbw=wTSbwwTSww((XC1XC2)(XC1XC2)T)w

又因为 ( X C 1 ‾ − X C 2 ‾ ) T w (\overline {X_{C_1}}-\overline {X_{C_2}})^Tw(XC1XC2)Tw 也是标量,所以我们最终的式子为:

我们的w正比为 S w − 1 ( X C 1 ‾ − X C 2 ‾ ) S_w^{-1}(\overline {X_{C_1}}-\overline {X_{C_2}})Sw1(XC1XC2)

即:

w ∼ S w − 1 ( X C 1 ‾ − X C 2 ‾ ) w \sim S_w^{-1}(\overline {X_{C_1}}-\overline {X_{C_2}})wSw1(XC1XC2)

这里我们没有解得w的准确值是因为我们只需要w的方向,只需要直到将数据映射到的那条直线的方向即可,因为我们之前已经规定过w的模长为1。


目录
相关文章
|
机器学习/深度学习 算法 数据可视化
机器学习模型中特征贡献度分析:预测贡献与错误贡献
本文将探讨特征重要性与特征有效性之间的关系,并引入两个关键概念:预测贡献度和错误贡献度。
1146 3
|
机器学习/深度学习 数据采集 分布式计算
大数据分析中的机器学习基础:从原理到实践
大数据分析中的机器学习基础:从原理到实践
671 3
|
机器学习/深度学习 数据可视化 大数据
机器学习与大数据分析的结合:智能决策的新引擎
机器学习与大数据分析的结合:智能决策的新引擎
738 15
|
机器学习/深度学习 数据采集 运维
机器学习在运维中的实时分析应用:新时代的智能运维
机器学习在运维中的实时分析应用:新时代的智能运维
420 12
|
数据采集 移动开发 数据可视化
模型预测笔记(一):数据清洗分析及可视化、模型搭建、模型训练和预测代码一体化和对应结果展示(可作为baseline)
这篇文章介绍了数据清洗、分析、可视化、模型搭建、训练和预测的全过程,包括缺失值处理、异常值处理、特征选择、数据归一化等关键步骤,并展示了模型融合技术。
1696 1
模型预测笔记(一):数据清洗分析及可视化、模型搭建、模型训练和预测代码一体化和对应结果展示(可作为baseline)
|
机器学习/深度学习 数据可视化 数据挖掘
机器学习中空间和时间自相关的分析:从理论基础到实践应用
空间和时间自相关是数据分析中的重要概念,揭示了现象在空间和时间维度上的相互依赖关系。本文探讨了这些概念的理论基础,并通过野火风险预测的实际案例,展示了如何利用随机森林模型捕捉时空依赖性,提高预测准确性。
992 0
机器学习中空间和时间自相关的分析:从理论基础到实践应用
|
机器学习/深度学习 分布式计算 算法
【大数据分析&机器学习】分布式机器学习
本文主要介绍分布式机器学习基础知识,并介绍主流的分布式机器学习框架,结合实例介绍一些机器学习算法。
|
机器学习/深度学习 人工智能 数据处理
【人工智能】项目实践与案例分析:利用机器学习探测外太空中的系外行星
探测外太空中的系外行星是天文学和天体物理学的重要研究领域。随着望远镜观测技术的进步和大数据的积累,科学家们已经能够观测到大量恒星的光度变化,并尝试从中识别出由行星凌日(行星经过恒星前方时遮挡部分光线)引起的微小亮度变化。然而,由于数据量巨大且信号微弱,传统方法难以高效准确地识别所有行星信号。因此,本项目旨在利用机器学习技术,特别是深度学习,从海量的天文观测数据中自动识别和分类系外行星的信号。这要求设计一套高效的数据处理流程、构建适合的机器学习模型,并实现自动化的预测和验证系统。
487 1
【人工智能】项目实践与案例分析:利用机器学习探测外太空中的系外行星
|
机器学习/深度学习 数据采集 算法
【Python篇】从零到精通:全面分析Scikit-Learn在机器学习中的绝妙应用
【Python篇】从零到精通:全面分析Scikit-Learn在机器学习中的绝妙应用
309 2
|
机器学习/深度学习 数据可视化 算法
机器学习中的回归分析:理论与实践
机器学习中的回归分析:理论与实践