因子分析matlab程序,因子分析MATLAB程序源代码[1]

本文介绍了使用PCA(主成分分析)对数据进行预处理和降维,然后应用在文本数据上进行特征贡献分析及异常检测的过程。通过tztq函数对正常和异常数据集进行区分,展示了如何在数据分析中运用PCA来提取关键信息并检测潜在异常情况。

clear all;

DATA=load('D:0.m');

DATA=double(DATA);

DATA=DATA';

TESTDATA=load('D:14f.m');

TESTDATA=double(TESTDATA);

% DATA=load('D:正常.txt');

% DATA=double(DATA);

% DATA=DATA(:,3:12);

% TESTDATA=load('D:异常.txt');

% TESTDATA=double(TESTDATA);

% TESTDATA=TESTDATA(:,3:12);

[Kp,T2]=tztq(DATA,TESTDATA);

function [contribution,T2,SPE,t2cl,s_cl] = PCA_model(Xtrain,Xtest) X_mean = mean(Xtrain);

X_std = std(Xtrain);

[X_row ,X_col]= size(Xtrain);

for i = 1:X_col

Xtrain(:,i) = (Xtrain(:,i)-X_mean(i))./X_std(i);

Xtest(:,i) = (Xtest(:,i)-X_mean(i))./X_std(i);

end

[U,S,V]=svd(Xtrain./sqrt(size(Xtrain,1)-1),0);

D= S^2;

lamda=diag(D);

num_pc=1;

while sum(lamda(1:num_pc))/sum(lamda)<0.9

num_pc=num_pc+1;

end

D=diag(lamda);

P=V(:,1:num_pc);

[a,b]=size(Xtest);

[r,y]=size(P*P');

I=eye(r,y);

e=Xtest*(I-P*P');

for i=1:a

T2(i)=Xtest(i,:)*P*inv(D(1:num_pc,1:num_pc))*P'*Xtest(i,:)';

end

for l=1:a

SPE(l)=e(l,:)*e(l,:)';

end

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值