【MATLAB第63期】基于MATLAB的改进敏感性分析方法IPCC,拥挤距离与皮尔逊系数法结合实现回归与分类预测
思路
考虑拥挤距离指标与PCC皮尔逊相关系数法相结合,对回归或分类数据进行降维,通过SVM支持向量机交叉验证得到平均指标,来判定优化前后模型好坏 。
通过手动设置拥挤权重,如拥挤权重0.3,关联权重0.7,来得到IPCC的各变量的特征值。
一、回归预测模型
clear all
warning('off','all');
%% 皮尔逊相关系数PCC
tic
load data
addpath('PCC')
ContributeRate=0.9;
xtrain =data(:,1:end-1);
ytrain =data(:,end);
opts.Nf =size(xtrain,2); % 选择因素数量
[m,n]=size(xtrain); % m代表行 n代表列
%% 数据归一化
p_train=xtrain;
t_train = ytrain;
FS = mypcc(p_train,t_train,opts); % 皮尔逊相关系数法 函数调用
sf_idx = FS.sf;
% 绘图 ,特征排序
extra()
xpcc=yt(1:mm);%取前MM个数据
%%-----------评估准确性
kfold=5; % 交叉验证K值
Fitness1 = Eval_regress(p_train(:, xpcc),t_train,kfold); %回归评估
toc;
disp('--------------PCC运行结果---------------')
disp(['平均rmse值=' num2str(Fitness1)]);
disp([ '总特征变量数量 = ' num2str(n) ]);
disp([ '筛选的特征变量数量= ' num2str(mm) ]);
disp(['筛选的特征变量编号为: ' num2str(xpcc)]) ;
%% IPCC
tic;
%%--------拥挤阶段
%计算特征的拥挤/相关距离
c1 = IPCC(p_train,t_train);
%%--------对特征值进行排名
[res,ind]=sort(c1,'descend');
%%--------选择最重要的特征
W1=c1;
plot2
indfeat=ind(1:mm1);
%%-----------评估准确性
kfold=5; % 交叉验证K值
Fitness2 = Eval_regress(p_train(:, indfeat),t_train,kfold); %回归评估
xipcc=yt1(1:mm1);
toc;
disp('--------------IPCC运行结果---------------')
disp(['平均rmse值=' num2str(Fitness2)]);
disp([ '总特征变量数量 = ' num2str(n) ]);
disp([ '筛选的特征变量数量= ' num2str(mm1) ]);
disp(['筛选的特征变量编号为: ' num2str(xipcc)]) ;
历时 4.308931 秒。
--------------PCC运行结果---------------
平均rmse值=1.5093
总特征变量数量 = 30
筛选的特征变量数量= 17
筛选的特征变量编号为: 4 17 15 18 24 27 22 23 16 28 30 29 20 21 5 25 19
历时 4.006288 秒。
--------------IPCC运行结果---------------
平均rmse值=1.4565
总特征变量数量 = 30
筛选的特征变量数量= 24
筛选的特征变量编号为: 4 17 15 18 24 27 23 16 22 29 21 5 28 19 30 6 14 9 10 20 8 7 26 12
可见IPCC方法得到的特征变量的权重更加均匀, 所对应达到累计90%贡献率的变量更多 ,平均rmse结果更优。
二、分类预测模型
classdata=xlsread('数据集.xlsx');
ContributeRate=0.9;
xtrain =classdata(:,1:end-1);
ytrain =classdata(:,end);
历时 13.706817 秒。
--------------PCC运行结果---------------
平均正确率acc=72.8169%
总特征变量数量 = 12
筛选的特征变量数量= 8
筛选的特征变量编号为: 5 8 9 3 6 7 12 11
历时 1.660615 秒。
--------------IPCC运行结果---------------
平均正确率acc=74.241%
总特征变量数量 = 12
筛选的特征变量数量= 8
筛选的特征变量编号为: 5 6 8 9 3 11 7 12
通过分类案例数据可得, IPCC特征选择方式更优,准确率较高。
三、代码获取
后台私信回复“63期”其可获取下载方式。