matlab lda数据降维,LDA有标签数据降维

本文探讨了LDA(线性判别分析)在有标签数据降维中的作用,指出与PCA(主成分分析)的区别。通过实例展示了如何使用LDA保持数据的分类特性,并对比了LDA和PCA在多组数据降维的效果,强调LDA在保持类别信息上的优势。
摘要由CSDN通过智能技术生成

之前无标签数据降维PCA,那么像下图带有标签数据,如果用PCA降维将会投影到v轴上,这个投影方差最大,数据将变成不可分状态,LDA将把数据投影加上已有分类这个变量,将数据投影到u轴上

28da5c160230

假设原数据分成n类,用矩阵Di表示i类数据,均值向量mi,将设将数据投影到向量w上后,均值分别为Mi,向量w模长为1,则有

28da5c160230

矩阵Di投影后类方差为

28da5c160230

我们希望

28da5c160230尽可能大,这样数据才能保留之前的分类特性,问题转化为求

28da5c160230

的最大值

28da5c160230

对J求导

28da5c160230

J最大值应该是矩阵

28da5c160230的最大特征值

例子

from numpy.random import random_sample

import numpy as np

# fig = plt.figure()

N = 600

# 设椭圆中心center

cx = 5

cy = 6

a = 1/8.0

b = 4

X,scale = 2*a*random_sample((N,))+cx-a,60

Y = [2*b*np.sqrt(1.

LDA(线性判别分析)是一种常用的数据降维技术,可以将高维数据降低到低维空间,同时保留数据的分类信息。下面是用 MATLAB 编写 LDA 数据降维的示例代码: 假设有一个数据集 X,其中每行代表一个样本,每列代表一个特征。同时,有一个包含每个样本类别的向量 y。 ```matlab % 假设数据集 X 和类别向量 y 已经加载 num_features = size(X, 2); % 特征数量 num_classes = length(unique(y)); % 类别数量 mean_overall = mean(X); % 计算整个数据集的均值向量 % 计算每个类别的均值向量和类内散度矩阵 mean_class = zeros(num_classes, num_features); S_within = zeros(num_features, num_features); for i = 1:num_classes % 提取属于当前类别 i 的所有样本 X_class = X(y == i, :); % 计算当前类别 i 的均值向量 mean_class(i, :) = mean(X_class); % 计算当前类别 i 的类内散度矩阵 S_within = S_within + (X_class - mean_class(i, :))' * (X_class - mean_class(i, :)); end % 计算类间散度矩阵 S_between = zeros(num_features, num_features); for i = 1:num_classes S_between = S_between + length(find(y == i)) * (mean_class(i, :) - mean_overall)' * (mean_class(i, :) - mean_overall); end % 计算广义特征值和广义特征向量 [V, D] = eig(S_between, S_within); % 选择前 k 个广义特征向量 k = 2; % 选择前 2 个特征向量 [~, index] = sort(diag(D), 'descend'); V_lda = V(:, index(1:k)); % 将数据投影到新的低维空间 X_lda = X * V_lda; % 绘制降维后的数据 figure; gscatter(X_lda(:,1), X_lda(:,2), y); ``` 在上述代码中,我们首先计算了每个类别的均值向量和类内散度矩阵,然后计算了类间散度矩阵。接着,我们使用广义特征值和广义特征向量来选择前 k 个最重要的特征向量,并将数据投影到新的低维空间。最后,我们使用 MATLAB 的 `gscatter` 函数来绘制降维后的数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值