机器学系基础知识——降维

本文介绍了降维技术在高维数据处理中的重要性,特别是PCA(主成分分析)和LDA(线性判别分析)的应用。PCA作为无监督学习方法,通过找到最大方差方向进行降维,而LDA则针对有监督场景,旨在最大化类别间的区分度。两种方法各有优缺点,适用于不同的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

降维背景

维数灾难背景

现实应用中属性维度成千上万,在高维度情况下会带来很多麻烦,而且当维度大的时候,数据样本一般分布的非常稀疏,这是所有学习算法要面对的问题,降维技术应运而生。

数据降维

降维是对事物的特征进行压缩和筛选,该项任务相对比较抽象。如果没有特定领域知识,无法预先决定采用哪些数据,比如在人脸识别任务中,如果直接使用图像的原始像素信息,数据的维度会非常高,通常会利用降维技术对图像进行处理,保留下最具有区分度的像素组合。

常见降维方法:

SVD - 奇异值分解

奇异值分解是一个能适用于任意矩阵的一种分解方法。 奇异值分解发现矩阵中的冗余并提供用于消除它的格式。 奇异值分解就是利用隐藏的特征建立起矩阵行和列之间的联系。

PCA - 主成分分析

思想:寻找表示数据分布的最优子空间(降维,可以去掉线性相关性)。 数学原理:取协方差矩阵前s个最大特征值对应的特征向量构成映射矩阵,对数据进行降维。

LDA - 线性判别分析

思想:寻找可分性判据最大的子空间。 用到了Fisher的思想,即寻找一个向量,使得降维后类内散度最小,类间散度最大;其实就是取对应的特征向量构成映射矩阵,对数据进行处理。

LLE - 局部线性嵌入

局部线性嵌入(Locally Linear Embedding,简称LLE)也是非常重要的降维方法。和传统的PCA,LDA等关注样本方差的降维方法相比,LLE关注于降维时保持样本局部的线性特征,由于LLE在降维时保持了样本的局部特征,它广泛的用于图像识别,高维数据可视化等领域。

由于PCA和LDA最为常用,所以这里我们只介绍PCA和LDA

PCA(Principal Component Analysis,主成分分析)属于无监督

在高维向量空间中,随着维度的增加,数据呈现出越来越稀疏的分布特点,增加后续算法的复杂度,而很多时候虽然数据维度较高,但是很多维度之间存在相关性,他们表达的信息有重叠。

PCA的思想是将n维特征映射到k维上(k<n),这k维是全新的正交特征。

这k维特征称为主成分,是重新构造出来的k维特征,而不是简单地从n维特征中去除其余n-k维特征(这也是与特征选择特征子集的方法的区别)。

PCA的目的是在高维数据中找到最大方差的方向,接着映射它到比最初维数小或相等的新的子空间。

更多内容了解PCA可查看 https://www.cnblogs.com/hadoop2015/p/7419087.html

PCA的优缺点:

优点:

以方差衡量信息的无监督学习,不受样本标签限制。

各主成分之间正交,可消除原始数据成分间的相互影响。

计算方法简单,主要运算是奇异值分解,易于在计算机上实现。 可减少指标选择的工作量。

缺点:

主成分解释其含义往往具有一定的模糊性,不如原始样本特征的解释性强。

方差小的非主成分也可能含有对样本差异的重要信息,因降维丢弃可能对后续数据处理有影响。

from sklearn.datasets import load_wine

wine = load_wine()

from sklearn.decomposition import PCA

pca = PCA(n_components=5)   # 降成五维

arr = pca.fit_transform(wine.data)
print(arr) # 数据会有丢失,降维相当于对数据进行压缩

LDA (Linear Discriminant Analysis,线性判别式分析) :属于有监督

LDA是一种监督学习的降维技术,将数据在低维度上进行投影,投影后希望每一种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大。

from sklearn.datasets import load_wine

wine = load_wine()

import matplotlib.pyplot as plt

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis

LDA = LinearDiscriminantAnalysis(n_components=2)

arr = LDA.fit_transform(wine.data,wine.target)
plt.scatter(arr[:,0],arr[:,1])
plt.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值