【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)]) ;

历时 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期”其可获取下载方式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/66442.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RobotFramework的安装过程及应用举例

一、安装python3.8.0 二、安装wxPython C:\>pip install -U wxPython Collecting wxPythonObtaining dependency information for wxPython from https://files.pythonhosted.org/packages/00/78/b11f255451f7a46fce2c96a0abe6aa8b31493c739ade197730511d9ba81a/wxPython-…

【Docker】Docker私有仓库的使用

目录 一、搭建私有仓库 二、上传镜像到私有仓库 三、从私有仓库拉取镜像 一、搭建私有仓库 首先我们需要拉取仓库的镜像 docker pull registry 然后创建私有仓库容器 docker run -it --namereg -p 5000:5000 registry 这个时候我们可以打开浏览器访问5000端口看是否成功&…

RPC原理与Go RPC详解

文章目录 RPC原理与Go RPC什么是RPC本地调用RPC调用HTTP调用RESTful API net/rpc基础RPC示例基于TCP协议的RPC使用JSON协议的RPCPython调用RPC RPC原理 RPC原理与Go RPC 什么是RPC RPC(Remote Procedure Call),即远程过程调用。它允许像调用…

侯捷C++高级编程(下)

对于1个类要么像指针要么像函数 主题1:转换函数 转换函数 /** 1. 转换函数没有返回类型* 2. 转换函数一般需要加上const*/ class Fraction { public:Fraction(int num,int den1):m(num),n(den){cout<<"Fraction(int num,int den1): m/n "<< m/n<&…

软件测试的49种方法

1. α测试_Alpha测试 α测试&#xff0c;英文是Alpha testing。又称Alpha测试。 Alpha测试是由一个用户在开发环境下进行的测试&#xff0c;也可以是公司内部的用户在模拟实际操作环境下进行的受控测试&#xff0c;Alpha测试不能由该系统的程序员或测试员完成。 在系统开发接近…

一文看懂Apipost接口自动化使用方法

随着项目研发进程的不断推进&#xff0c;软件功能不断增多&#xff0c;对于软件测试的要求也越来越高。为了提高测试效率和减少测试成本&#xff0c;许多软件测试团队借助于自动化测试工具来优化测试流程。Apipost也提供了自动化测试工具&#xff0c;在本文中&#xff0c;我们将…

JVM深入 —— JVM的体系架构

前言 能否真正理解JVM的底层实现原理是进阶Java技术的必由之路&#xff0c;Java通过JVM虚拟机的设计使得Java的延拓性更好&#xff0c;平台无关性是其同时兼顾移动端和服务器端开发的重要特性。在本篇文章中&#xff0c;荔枝将会仔细梳理JVM的体系架构和理论知识&#xff0c;希…

中科驭数亮相DPU峰会,分享HADOS软件生态实践和大数据计算方案,再获评“匠芯技术奖”

又是一年相逢时&#xff0c;8月4日&#xff0c;第三届DPU峰会在北京开幕&#xff0c;本届峰会由中国通信学会指导&#xff0c;江苏省未来网络创新研究院主办&#xff0c;SDNLAB社区承办&#xff0c;以“智驱创新芯动未来”为主题&#xff0c;沿袭技术创新、生态协同的共创效应&…

开源数据库Mysql_DBA运维实战 (名词解释)

SQL&#xff08;Structured Query Language 即结构化查询语言&#xff09; SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统&#xff0c;SQL语言由IBM开发。 SQL语言分类&#xff1a; DDL语句 数据库定义语言&#xff1a;数据库、表、视图、索引、存储过程…

单片机、嵌入式的大神都平时浏览什么网站?

我平时也喜欢收藏些有关嵌入式的学习网站&#xff0c;压箱底的记录翻出来总结下 1、综合网站 哔哩哔哩 (゜-゜)つロ 干杯~-bilibili//B站是一个有很多好资料的网站 https://github.com/nhivp/Awesome-Embedded //github开源项目网站&#xff0c;这个是我找到嵌入式综合相关的…

24届华东理工大学近5年自动化考研院校分析

今天给大家带来的是华东理工大学控制考研分析 满满干货&#xff5e;还不快快点赞收藏 一、华东理工大学 学校简介 华东理工大学原名华东化工学院&#xff0c;1956年被定为全国首批招收研究生的学校之一&#xff0c;1960年起被中共中央确定为教育部直属的全国重点大学&#…

yolo txt 转 labelme json 格式

talk is cheap show me the code! def convert_txt_to_labelme_json(txt_path, image_path, output_dir, image_fmt.jpg):# txt 转labelme json# 将yolo的txt转labelme jsontxts glob.glob(os.path.join(txt_path, "*.txt"))for txt in txts:labelme_json {versio…

Centos7离线安装MySQL8

1、下载MySQL https://downloads.mysql.com/archives/community/ 2、下载完毕后&#xff0c;上传到Centos&#xff0c;解压 tar -xf mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar 3、逐条执行安装命令 rpm -ivh mysql-community-common-8.0.33-1.el7.x86_64.rpm rpm -ivh …

容器——2.Collection 子接口之 List

文章目录 2.1. Arraylist 和 Vector 的区别?2.2. Arraylist 与 LinkedList 区别?2.2.1. 补充内容:双向链表和双向循环链表2.2.2. 补充内容:RandomAccess 接口 2.3 ArrayList 的扩容机制 2.1. Arraylist 和 Vector 的区别? ArrayList 是 List 的主要实现类&#xff0c;底层使…

利用Ettercap进行DNS欺骗攻击

一、域名系统&#xff08;DNS&#xff09; 域名系统DNS是Internet上使用的命名系统&#xff0c;用于将系统名称转换为人们易于使用的IP地址。域名系统是基于互联网的前身ARPANET开发的&#xff0c;在ARPANET时代&#xff0c;主机名和对应的IP地址是通过HOST.TXT文件集中管理的…

ffplay简介

本文为相关课程的学习记录&#xff0c;相关分析均来源于课程的讲解&#xff0c;主要学习音视频相关的操作&#xff0c;对字幕的处理不做分析 ffplay播放器的意义 ffplay.c是FFmpeg源码⾃带的播放器&#xff0c;调⽤FFmpeg和SDL API实现⼀个⾮常有⽤的播放器。 ffplay实现了播…

沁恒ch32V208处理器开发(一)开发环境

目录 简介&#xff1a;开发环境开发界面自定义风格 烧录工具支持范围烧录界面 简介&#xff1a; CH32V2x 系列是南京沁恒基于 32 位 RISC-V 指令集及架构设计的工业级通用微控制器。采用青稞 V4 内核&#xff0c;支持硬件中断堆栈&#xff0c;提升中断响应效率&#xff1b;CH3…

计算机网络(5) --- http协议

计算机网络&#xff08;4&#xff09; --- 协议定制_哈里沃克的博客-CSDN博客协议定制https://blog.csdn.net/m0_63488627/article/details/132070683?spm1001.2014.3001.5501 目录 1.http协议介绍 1.协议的延申 2.http协议介绍 3.URL 4.urlencode和urldecode 2.HTTP协…

04-2_Qt 5.9 C++开发指南_SpinBox使用

文章目录 1. SpinBox简介2. SpinBox使用2.1 可视化UI设计2.2 widget.h2.3 widget.cpp 1. SpinBox简介 QSpinBox 用于整数的显示和输入&#xff0c;一般显示十进制数&#xff0c;也可以显示二进制、十六进制的数&#xff0c;而且可以在显示框中增加前缀或后缀。 QDoubleSpinBox…

如何测试Linux磁盘的读写速度

在Linux系统中也有很多命令可以测试硬盘的读写速度指标。以下是几个常用命令&#xff08;注意&#xff1a;在执行测试命令之前&#xff0c;请务必备份数据以避免数据丢失&#xff01; 1、dd 命令 首先挂载磁盘 mount /dev/sdb /testdd 命令可用于进行硬盘读写速度测试。 例…