机器学习降维之线性判别分析

简介: 机器学习降维之线性判别分析阅读目录LDA描述从二分类分析LDA原理LDA求解方法回到顶部LDA描述线性判别分析(Linear Discriminant Analysis,LDA)是一种由监督学习算法,同时经常被用来对数据进行降维,它是Ronald Disher在1936年发明的,有些资料上也称位Fisher LDA.

机器学习降维之线性判别分析
阅读目录

  1. LDA描述
  2. 从二分类分析LDA原理
  3. LDA求解方法
    回到顶部
  4. LDA描述
    线性判别分析(Linear Discriminant Analysis,LDA)是一种由监督学习算法,同时经常被用来对数据进行降维,它是Ronald Disher在1936年发明的,有些资料上也称位Fisher LDA.LDA是目前机器学习、数据挖掘领域中经典且热门的一种算法

相比于PCA,LDA可以作为一种有监督的降维算法,在PCA中,算法没有考虑数据的类别,自己把原数据映射到方差较大的方向上而已

如下图,红色的点代表class1类别的数据,蓝色代表class2的数据,根据PCA算法,数据应该映射到方差最大的方向,即Y轴,但是class1和class2两个不同类别的数据就会完全的混合在一起,很难区分开。所以使用PCA算法进行降维后再进行分类的效果会非常差,这时候就需要我们使用LDA算法,将数据映射到X轴上。下面我们从二分类分析LDA原理

import numpy as np
import matplotlib.pyplot as plt

c1_x = np.random.uniform(-0.5,-2,100)
c1_y = np.random.uniform(-10,10,100)

c2_x = np.random.uniform(0.5,2,100)
c2_y = np.random.uniform(-10,10,100)

l1_x = [0 for _ in range(24)]
l1_y = [i for i in range(-12,12,1)]
l2_x = [i for i in range(-4,5,1)]
l2_y = [0 for _ in range(9)]

plt.scatter(c1_x,c1_y,c = 'r',marker = 'o',label='class1')
plt.scatter(c2_x,c2_y,c = 'b',marker = '*',label='class2')
plt.plot(l1_x,l1_y,'black',label='X')
plt.plot(l2_x,l2_y,'g',label='Y')
plt.legend()
plt.xlim(-5, 5)
plt.ylim(-12, 12)
plt.show()

回到顶部

  1. 从二分类分析LDA原理
    先抛出LDA原理中心思想:最大化类间距离和最小化类内距离,再进行说明

从一个简单的二分类问题出发,有C1、C2两个类别的样本,两类的均值分别μ1,μ2μ1,μ2,我们希望投影之后两类之间的距离尽可能大
D(C1,C2)=||WTμ1−WTμ2||22
D(C1,C2)=||WTμ1−WTμ2||22

注:WTμ1为μ1再W方向上的投影向量WTμ1为μ1再W方向上的投影向量,从而转化为以下优化问题
{max||WTμ1−WTμ2||22s.t.WTW=1
{max||WTμ1−WTμ2||22s.t.WTW=1

容易发现,当W与(μ1−μ2)(μ1−μ2)方向一致的时候,该距离最大

上面左边的图是按照最大化两类投影中心距离的准则绘制的,会发现原本可以被线性划分的两类样本,经过投影后又了一定程度的重叠

上面右边的图就是按照最大类间距,最小类内距思想绘制的,虽然两类的中心在投影之后的距离又所减小,但确使投影之后样本的可区分性提高了

如何表示类内距离?可以使用类内方差,类内方差定义为各个类分别的方差和,有类内距离表示再结合上图说明,继续对上面的优化函数进行优化得到:
{maxJ(W)=||WTμ1−WTμ2||22D1+D2s.t.WTW=1
{maxJ(W)=||WTμ1−WTμ2||22D1+D2s.t.WTW=1

注:D1为C1的类内方差和,D2为C2的类内方差和

回到顶部

  1. LDA求解方法
    {maxJ(W)=||WTμ1−WTμ2||22D1+D2s.t.WTW=1

{maxJ(W)=||WTμ1−WTμ2||22D1+D2s.t.WTW=1

D1=∑xϵC1(WT(xi−μ1))2=∑xϵC1WT(xi−μ1)(xi−μ1)TW
D1=∑xϵC1(WT(xi−μ1))2=∑xϵC1WT(xi−μ1)(xi−μ1)TW

D2=∑xϵC2(WT(xi−μ2))2=∑xϵC2WT(xi−μ2)(xi−μ2)TW
D2=∑xϵC2(WT(xi−μ2))2=∑xϵC2WT(xi−μ2)(xi−μ2)TW

因此J(W)可以写成:

J(W)=WT(μ1−μ2)(μ1−μ2)TW∑xϵCiWT(x−μi)(x−μi)TW
J(W)=WT(μ1−μ2)(μ1−μ2)TW∑xϵCiWT(x−μi)(x−μi)TW

定义类间距离SB=(μ1−μ2)(μ1−μ2)TSB=(μ1−μ2)(μ1−μ2)T,类内距离SW=∑xϵCi(x−μi)(x−μi)TSW=∑xϵCi(x−μi)(x−μi)T

则:
J(W)=WTSBWWTSWW
J(W)=WTSBWWTSWW

对W求导,并令导数为0
(WTSWW)SBW=(WTSBW)SWW
(WTSWW)SBW=(WTSBW)SWW

令λ=J(W)=WTSBWWTSWWλ=J(W)=WTSBWWTSWW则有:
SBW=λSwW
SBW=λSwW

整理得到:
Sw−1SBW=λW
Sw−1SBW=λW

看到这里就以及很清楚了,我们最大化目标对应一个矩阵的特征值,于是LDA降维变成了一个求矩阵特征向量的问题。J(W)J(W)就对应矩阵Sw−1SBSw−1SB的最大的特征值,而投影方向就是这个特征值对应的特征向量

将二分类推广到多分类也得到同样的结论,总结具有多个列别标签高维的LDA求解方法:

(1)计算数据集中每个类别样本的均值向量μjμj,以及总体均值向量μμ
(2)计算类内散度矩阵SWSW,全局散度矩阵STST,并得到类间散度矩阵SB=ST−SWSB=ST−SW
(3)对矩阵SW−1SB进行特征值分解,将特征值从大到小排列SW−1SB进行特征值分解,将特征值从大到小排列
(4)特征值前d大的对应的特征向量W1,W2,...,WdW1,W2,...,Wd,通过以下映射将n维映射到d维:
Xi´=(WT1xi,WT2xi,...,WTdxi)T
Xi´=(W1Txi,W2Txi,...,WdTxi)T
参考:《百面机器学习》
原文地址https://www.cnblogs.com/xiaobingqianrui/p/11206834.html

相关文章
|
2月前
|
机器学习/深度学习 算法 数据可视化
机器学习模型中特征贡献度分析:预测贡献与错误贡献
本文将探讨特征重要性与特征有效性之间的关系,并引入两个关键概念:预测贡献度和错误贡献度。
270 3
|
1月前
|
数据采集 移动开发 数据可视化
模型预测笔记(一):数据清洗分析及可视化、模型搭建、模型训练和预测代码一体化和对应结果展示(可作为baseline)
这篇文章介绍了数据清洗、分析、可视化、模型搭建、训练和预测的全过程,包括缺失值处理、异常值处理、特征选择、数据归一化等关键步骤,并展示了模型融合技术。
54 1
模型预测笔记(一):数据清洗分析及可视化、模型搭建、模型训练和预测代码一体化和对应结果展示(可作为baseline)
|
1月前
|
机器学习/深度学习 数据可视化 数据挖掘
机器学习中空间和时间自相关的分析:从理论基础到实践应用
空间和时间自相关是数据分析中的重要概念,揭示了现象在空间和时间维度上的相互依赖关系。本文探讨了这些概念的理论基础,并通过野火风险预测的实际案例,展示了如何利用随机森林模型捕捉时空依赖性,提高预测准确性。
50 0
机器学习中空间和时间自相关的分析:从理论基础到实践应用
|
1月前
|
机器学习/深度学习 数据可视化 算法
机器学习中的回归分析:理论与实践
机器学习中的回归分析:理论与实践
|
1月前
|
机器学习/深度学习 数据采集 算法
【Python篇】从零到精通:全面分析Scikit-Learn在机器学习中的绝妙应用
【Python篇】从零到精通:全面分析Scikit-Learn在机器学习中的绝妙应用
38 2
|
1月前
|
机器学习/深度学习 数据挖掘
二、机器学习之回归模型分析
二、机器学习之回归模型分析
102 0
|
2月前
|
机器学习/深度学习 存储 人工智能
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
使用Python作为开发语言,基于文本数据集(一个积极的xls文本格式和一个消极的xls文本格式文件),使用Word2vec对文本进行处理。通过支持向量机SVM算法训练情绪分类模型。实现对文本消极情感和文本积极情感的识别。并基于Django框架开发网页平台实现对用户的可视化操作和数据存储。
50 0
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
|
3月前
|
机器学习/深度学习 人工智能 数据处理
【人工智能】项目实践与案例分析:利用机器学习探测外太空中的系外行星
探测外太空中的系外行星是天文学和天体物理学的重要研究领域。随着望远镜观测技术的进步和大数据的积累,科学家们已经能够观测到大量恒星的光度变化,并尝试从中识别出由行星凌日(行星经过恒星前方时遮挡部分光线)引起的微小亮度变化。然而,由于数据量巨大且信号微弱,传统方法难以高效准确地识别所有行星信号。因此,本项目旨在利用机器学习技术,特别是深度学习,从海量的天文观测数据中自动识别和分类系外行星的信号。这要求设计一套高效的数据处理流程、构建适合的机器学习模型,并实现自动化的预测和验证系统。
70 1
【人工智能】项目实践与案例分析:利用机器学习探测外太空中的系外行星
|
2月前
|
机器学习/深度学习 存储 数据挖掘
Hologres 与机器学习的融合:为实时分析添加预测性分析功能
【9月更文第1天】随着数据科学的发展,企业越来越依赖于从数据中获取洞察力来指导决策。传统的数据仓库主要用于存储和查询历史数据,而现代的数据仓库如 Hologres 不仅提供了高性能的查询能力,还能够支持实时数据分析。将 Hologres 与机器学习技术相结合,可以在实时数据流中引入预测性分析,为企业提供更深入的数据洞见。本文将探讨如何将 Hologres 与机器学习集成,以便实现实时的预测性分析。
86 4

热门文章

最新文章