先附代码pca回归
close all
clear
clc; %素质3连
format short
pzz = xlsread('7000sgfb','A1:DZ5549'); %读取文件
data = pzz';
n=randperm(130);%随机130个样本
%%%——————%%%
y_test = data(n(98:130),1); %随机选取33个测试样本
x_test = data(n(98:130),2:end);
y_train = data(n(1:97),1);
x_train = data(n(1:97),2:end);
%%%——————%%%
%主成分分析Pca,降成m维变量,提取95%以上的有效信息
swum =0;
m=0;
[coeff,score,latent,tsquared,explained]= princomp(data(1:97,2:end));
for ii = 1 : length(latent)
swum = latent(ii) + swum;
if swum/sum(latent) >= 0.95
m = ii;
break;
end
end
%————%降成m维后的回归分析
x = [ones(97,1) score(:,1:m)];
[b,brint,r] =regress(y_train,x);
x_test=(x_test - mean(x_train))*coeff(:,1:m);
y_fit = [ones(33,1),x_test]*b;
A(:,1) = y_test;
A(:,2) =y_fit;
A(:,3) = abs(y_fit - y_test);
pp = corr(A); %计算出相关系数
sss=pp(2,1)
小白在学习,今天对PCA(主

这篇博客介绍了PCA(主成分分析)回归算法,并提供了MATLAB实现的详细步骤。PCA主要用于降维,通过手动计算和MATLAB内置函数`pca`展示了如何进行主成分分析。文中还提到了PCA计算的优化技巧,以及相关参考资料。
最低0.47元/天 解锁文章
881

被折叠的 条评论
为什么被折叠?



