PCA和LDA的异同点

PCA(主成分分析)和LDA(线性判别分析)都是常用的数据降维方法。它们都基于矩阵分解,并假设数据遵循高斯分布。尽管两者都能降低数据复杂性,但LDA作为监督学习方法,不仅降维,还适用于分类任务,旨在最大化类别间的方差并最小化类内的方差,而PCA则通过保留最大方差的方向来去除数据的冗余特征。此外,LDA的投影可能非正交,而PCA确保投影坐标系正交。

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

PCA:主成分分析
LDA:线性判别分析

PCA与LDA的异同点:
相同点:
两者都可对数据完成降维操作
两者在降维时都使用了矩阵分解的思想
两者都假设数据服从高斯分布(正态分布)
不同点:
LDA是监督学习;PCA是无监督学习
LDA除了降维外,还可以用于分类
LDA使得类内距离小,类间距离大;PCA去除原始数据中冗余的特征,使得投影在各个维度的方差尽可能大
LDA关注分类能力,不保证投影到的坐标系是正交的;PCA投影的坐标系都是正交的

PCA降维

# pca
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from sklearn.datasets.samples_generator import make_blobs
from sklearn.decomposition import PCA
import warnings
warnings.filterwarnings('ignore')

# x为样本特征,每个样本3个特征,y为样本簇类别,共4个簇, 共1000个样本
x, y = make_blobs(n_samples=1000, n_features=3, centers=[[0, 0, 0], [1, 1, 1], [2, 2, 2], [3, 3, 3]], cluster_std=[0.2, 0.2, 0.2, 0.2], 
                  random_state =8)

fig = plt.figure()
ax = Axes3D(fig)
plt.scatter(x[:, 0], x[:, 1], x[:, 2], marker='o')
plt.show()

x_pca = PCA(n_components=2).fit_transform(x)

plt.scatter(x_pca[:, 0], x_pca[:, 1])
plt.show()

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值