【MATLAB第63期】基于MATLAB的改进敏感性分析方法IPCC,拥挤距离与皮尔逊系数法结合实现回归与分类预测

简介: 【MATLAB第63期】基于MATLAB的改进敏感性分析方法IPCC,拥挤距离与皮尔逊系数法结合实现回归与分类预测

【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)]) ;
AI 代码解读

历时 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

image.png
image.png

历时 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

image.png
image.png

可见IPCC方法得到的特征变量的权重更加均匀, 所对应达到累计90%贡献率的变量更多 ,平均rmse结果更优。

二、分类预测模型

image.png

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
AI 代码解读

image.png
image.png

历时 1.660615 秒。
--------------IPCC运行结果---------------
平均正确率acc=74.241%
总特征变量数量 = 12
筛选的特征变量数量= 8
筛选的特征变量编号为: 5   6   8   9   3  11   7  12
AI 代码解读

image.png
image.png

通过分类案例数据可得, IPCC特征选择方式更优,准确率较高。

三、代码获取

后台私信回复“63期”其可获取下载方式。

目录
打赏
0
0
1
0
267
分享
相关文章
开关磁阻电机(SRM)系统的matlab性能仿真与分析
本课题基于MATLAB 2022a对开关磁阻电机(SRM)系统进行性能仿真与分析,涵盖平均转矩、转矩脉动、自感与互感、功率及效率等关键参数的对比研究。通过程序仿真,生成了相电流、转子角度、机械转速等多维度数据关系图。SRM以其无刷、无永磁体的特点,具备高可靠性和低成本优势,其工作原理基于磁阻最小原则,通过控制定子绕组电流实现连续旋转运动。核心程序实现了不同电流下平均转矩的计算与可视化,为SRM优化设计提供了理论依据。
基于魏格纳函数和焦散线方法的自加速光束matlab模拟与仿真
本项目基于魏格纳函数和焦散线方法,使用MATLAB 2022A模拟自加速光束。通过魏格纳函数法生成多种自加速光束,并设计相应方法,展示仿真结果。核心程序包括相位和幅度的计算、光场分布及拟合分析,实现对光束传播特性的精确控制。应用领域涵盖光学成像、光操控和光束聚焦等。 关键步骤: 1. 利用魏格纳函数计算光场分布。 2. 模拟并展示自加速光束的相位和幅度图像。 3. 通过拟合分析,验证光束加速特性。 该算法原理基于魏格纳函数描述光场分布,结合数值模拟技术,实现对光束形状和传播特性的精确控制。通过调整光束相位分布,可改变其传播特性,如聚焦或加速。
110 20
基于神经网络逆同步控制方法的两变频调速电机控制系统matlab仿真
本课题针对两电机变频调速系统,提出基于神经网络a阶逆系统的控制方法。通过构造原系统的逆模型,结合线性闭环调节器实现张力与速度的精确解耦控制,并在MATLAB2022a中完成仿真。该方法利用神经网络克服非线性系统的不确定性,适用于参数变化和负载扰动场景,提升同步控制精度与系统稳定性。核心内容涵盖系统原理、数学建模及神经网络逆同步控制策略,为工业自动化提供了一种高效解决方案。
基于入侵野草算法的KNN分类优化matlab仿真
本程序基于入侵野草算法(IWO)优化KNN分类器,通过模拟自然界中野草的扩散与竞争过程,寻找最优特征组合和超参数。核心步骤包括初始化、繁殖、变异和选择,以提升KNN分类效果。程序在MATLAB2022A上运行,展示了优化后的分类性能。该方法适用于高维数据和复杂分类任务,显著提高了分类准确性。
MATLAB学习之旅:数据统计与分析
在MATLAB中,我们掌握了数据导入、处理及插值拟合等基础技能。接下来,我们将深入数据统计与分析领域,学习描述性统计量(如均值、标准差)、数据分布分析(如直方图、正态概率图)、数据排序与排名、数据匹配查找以及数据可视化(如箱线图、散点图)。这些工具帮助我们挖掘数据中的有价值信息,揭示数据的奥秘,为后续数据分析打下坚实基础。
基于图像形态学处理和凸包分析法的指尖检测matlab仿真
本项目基于Matlab2022a实现手势识别中的指尖检测算法。测试样本展示无水印运行效果,完整代码含中文注释及操作视频。算法通过图像形态学处理和凸包检测(如Graham扫描法)来确定指尖位置,但对背景复杂度敏感,需调整参数PARA1和PARA2以优化不同手型的检测精度。
基于Adaboost模型的数据预测和分类matlab仿真
AdaBoost(Adaptive Boosting)是一种由Yoav Freund和Robert Schapire于1995年提出的集成学习方法,旨在通过迭代训练多个弱分类器并赋予分类效果好的弱分类器更高权重,最终构建一个强分类器。该方法通过逐步调整样本权重,使算法更关注前一轮中被误分类的样本,从而逐步优化模型。示例代码在MATLAB 2022A版本中运行,展示了随着弱分类器数量增加,分类错误率的变化及测试数据的分类结果。
293 13
基于BP译码的LDPC误码率matlab仿真,分析不同码长,码率,迭代次数以及信道类型对译码性能的影响
本内容介绍基于MATLAB 2022a的低密度奇偶校验码(LDPC)仿真,展示了完整的无水印仿真结果。LDPC是一种逼近香农限的信道编码技术,广泛应用于现代通信系统。BP译码算法通过Tanner图上的消息传递实现高效译码。仿真程序涵盖了不同Eb/N0下的误码率计算,并分析了码长、码率、迭代次数和信道类型对译码性能的影响。核心代码实现了LDPC编码、BPSK调制、高斯信道传输及BP译码过程,最终绘制误码率曲线并保存数据。 字符数:239
130 5
|
8月前
|
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
306 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
183 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现

热门文章

最新文章