matlab偏最小二乘法

偏最小二乘是建立表到表的线性拟合关系,然后预测的方法(处理高维数据),比如在光谱分析中,X是某物质的光谱样本构成的训练集,Y是对应的成分数据,x是要预测成分的光谱数据

function [y5,S] = pls2(X,Y,x)
%[y5,S] = pls2(X,Y,x)【参考自司守奎教材 偏最小而成回归章节代码】
% X、Y 为模型生成样本,x为需要预测对象,y5是预测结果
% S.sol为模型的矩阵
S.name = char({'系数矩阵:S(第一行为常数项)';
'相对误差:relativeError';    '均方根误差:RootMSE';
'标准误差:StandardError'; '拟合优度:R2'
});
pz = [X,Y];%通过这里注意数据组织形式,一行为一个数据
mu = mean(pz);sig = std(pz);
mu=mean(pz);sig=std(pz); %求均值和标准差
rr=corrcoef(pz); %求相关系数矩阵
data=zscore(pz); %数据标准化
n=size(X,2);m=size(Y,2); %n 是自变量的个数,m 是因变量的个数
x0=pz(:,1:n);y0=pz(:,n+1:end);
e0=data(:,1:n);f0=data(:,n+1:end);
num=size(e0,1);%求样本点的个数
chg=eye(n); %w 到 w*变换矩阵的初始化
for i=1:n
    %以下计算 w,w*和 t 的得分向量,
    matrix=e0'*f0*f0'*e0;
    [vec,val]=eig(matrix); %求特征值和特征向量
    val=diag(va
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值