clc;
clear;
close all;
warning off;
addpath(genpath(pwd));
data = dlmread("wine.csv",",");
X = data(:,2:end); y = data(:,1);
[Dpca, Wpca] = pca(X);
Xm = bsxfun(@minus, X, mean(X));
Xproj = project(Xm, Wpca(:,1:2));
cumsum(Dpca) / sum(Dpca)
% the first component accounts for 99% of total Variance
wine1 = Xproj(find(y == 1), :);
wine2 = Xproj(find(y == 2), :);
wine3 = Xproj(find(y == 3), :);
figure;
hold on;
plot(wine1(:,1), wine1(:,2), "ro", "markersize", 10, "linewidth", 3);
plot(wine2(:,1), wine2(:,2), "go", "markersize", 10, "linewidth", 3);
plot(wine3(:,1), wine3(:,2), "bo", "markersize", 10, "linewidth", 3);
title("PCA (original data)")
%% Linear Discriminant Analysis without Normalization
[Dlda,Wlda] = lda(X,y);
Xproj = project(Xm, Wlda(:,1:2));
wine1 = Xproj(find(y == 1), :);
wine2 = Xproj(find(y == 2), :);
wine3 = Xproj(find(y == 3), :);
figure;
hold on;
plot(wine1(:,1), wine1(:,2), "ro", "markersize", 10, "linewidth", 3);
plot(wine2(:,1), wine2(:,2), "go", "markersize", 10, "linewidth", 3);
plot(wine3(:,1), wine3(:,2), "bo", "markersize", 10, "linewidth", 3);
title("LDA (original data)")
%% Fix PCA by using Normalization
Xnew = zscore(X);
[Dpca, Wpca] = pca(Xnew);
Xm = bsxfun(@minus, Xnew, mean(Xnew));
Xproj = project(Xm, Wpca(:,1:2));
cumsum(Dpca) / sum(Dpca)
wine1 = Xproj(find(y == 1), :);
wine2 = Xproj(find(y == 2), :);
wine3 = Xproj(find(y == 3), :);
figure;
hold on;
plot(wine1(:,1), wine1(:,2), "ro", "markersize", 10, "linewidth", 3);
plot(wine2(:,1), wine2(:,2), "go", "markersize", 10, "linewidth", 3);
plot(wine3(:,1), wine3(:,2), "bo", "markersize", 10, "linewidth", 3);
title("PCA (Normalized)")
%% compare against LDA with Normalization
[Dlda,Wlda] = lda(Xnew,y);
Xproj = project(Xm, Wlda(:,1:2));
wine1 = Xproj(find(y == 1), :);
wine2 = Xproj(find(y == 2), :);
wine3 = Xproj(find(y == 3), :);
figure;
hold on;
plot(wine1(:,1), wine1(:,2), "ro", "markersize", 10, "linewidth", 3);
plot(wine2(:,1), wine2(:,2), "go", "markersize", 10, "linewidth", 3);
plot(wine3(:,1), wine3(:,2), "bo", "markersize", 10, "linewidth", 3);
title("LDA (Normalized)")
没有合适的资源?快使用搜索试试~ 我知道了~
基于matlab的PCA特征提取,归一化PCA特征提取,LDA特征提取以及归一化LDA特征提取四种算法的数据分类对比+操作视频
共8个文件
m:6个
avi:1个
csv:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 5 下载量 163 浏览量
2022-07-12
05:48:43
上传
评论 9
收藏 700KB RAR 举报
温馨提示
1.领域:matlab,PCA特征提取,归一化PCA特征提取,LDA特征提取以及归一化LDA特征提取算法 2.内容:基于matlab的PCA特征提取,归一化PCA特征提取,LDA特征提取以及归一化LDA特征提取四种算法的数据分类对比+操作视频 3.用处:用于PCA和LDA降维特征提取算法编程学习 4.指向人群:本硕博等教研学习使用 5.运行注意事项: 使用matlab2021a或者更高版本测试,运行里面的Runme_.m文件,不要直接运行子函数文件。运行时注意matlab左侧的当前文件夹窗口必须是当前工程所在路径。 具体可观看提供的操作录像视频跟着操作。
资源推荐
资源详情
资源评论
收起资源包目录
基于matlab的PCA特征提取,归一化PCA特征提取,LDA特征提取以及归一化LDA特征提取四种算法的数据分类对比仿真.rar (8个子文件)
wine.csv 11KB
操作录像0030.avi 6.21MB
func
project.m 51B
pca.m 160B
lda.m 457B
reconstruct.m 58B
zscore.m 87B
Runme.m 2KB
共 8 条
- 1
资源评论
- qq_489260082023-11-16资源是宝藏资源,实用也是真的实用,感谢大佬分享~
- qq_412165622022-07-30感谢大佬,让我及时解决了当下的问题,解燃眉之急,必须支持!
- QqqQ7777Llll2024-02-28发现一个宝藏资源,资源有很高的参考价值,赶紧学起来~
- m0_690985552024-04-27资源太好了,解决了我当下遇到的难题,抱紧大佬的大腿~
- 2301_774809962023-08-22资源内容总结的很到位,内容详实,很受用,学到了~
fpga和matlab
- 粉丝: 15w+
- 资源: 2548
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功