【MATLAB第31期】基于MATLAB的降维/全局敏感性分析/特征排序/数据处理回归问题MATLAB代码实现(持续更新)

简介: 【MATLAB第31期】基于MATLAB的降维/全局敏感性分析/特征排序/数据处理回归问题MATLAB代码实现(持续更新)

【MATLAB第31期】基于MATLAB的降维/全局敏感性分析/特征排序/数据处理回归问题MATLAB代码实现(持续更新)

本文敏感性分析主要分析回归问题,下期分析分类问题(fisher、rf、arf、nca等)。


一、降维方法(回归)


常见的降维方法:

常见的敏感性分析法:

*(一).全局敏感性分析(sobol、蒙特卡洛方法)


二).非全局敏感性分析

1.变量归类(主成分分析PCA、核主成分分析KPCA)

2.变量筛选(临近成分分析NCA、RF随机森林、ARF自适应随机森林、皮尔逊系数PCC、Relief-F、Term Variance、garson、极差分析法)

特征选择和降维

1、相同点和不同点

特征选择和降维有着些许的相似点,这两者达到的效果是一样的,就是试图去减少特征数据集中的属性(或者称为特征)的数目;但是两者所采用的方式方法却不同:降维的方法主要是通过属性间的关系,如组合不同的属性得新的属性,这样就改变了原来的特征空间;而特征选择的方法是从原始特征数据集中选择出子集,是一种包含的关系,没有更改原始的特征空间。

2、降维的主要方法

Principal Component Analysis(主成分分析),详细见“简单易学的机器学习算法——主成分分析(PCA)”

Singular Value Decomposition(奇异值分解),详细见“简单易学的机器学习算法——SVD奇异值分解”

Sammon’s Mapping(Sammon映射)

特征提取和特征选择都是从原始特征中找出最有效(同类样本的不变性、不同样本的鉴别性、对噪声的鲁棒性)的特征。

特征提取:将原始特征转换为一组具有明显物理意义(Gabor、几何特征[角点、不变量]、纹理[LBP HOG])或者统计意义或核的特征

特征选择:从特征集合中挑选一组最具统计意义的特征,达到降维

两者作用:

1 减少数据存储和输入数据带宽

2 减少冗余

3 低纬上分类性往往会提高

4 能发现更有意义的潜在的变量,帮助对数据产生更深入的了解


二、案例数据


案例数据data 1000×31 ,前30列为变量,第31列为因变量


三、实际应用


(1)主成分分析PCA


%% 1.降维方法
%
clc
clear all
load data
x=data(:,1:end-1);
%% (1)主成分分析PCA
addpath('D:\特征排序\PCA')
ContributeRate=0.9;  %贡献率90%
[xpca,result_report]=mypca(x,ContributeRate) ;

三十个变量通过降维成16个变量组合。

(2)核主成分分析KPCA核函数可选择四种,分别为:

1-高斯核函数

2-二阶多项式核

3-线性核

4-sigmoid核(tanh)

%% (2)核主成分分析KPCA  
addpath('D:\特征排序\KPCA')
sigma=0.3;
ContributeRate=0.9;
KindKernel=2;% 1-高斯核函数,2-二阶多项式核,3-线性核,4-sigmoid核(tanh)
[xkpca] =kpca(x,sigma, KindKernel,ContributeRate); 


当采用高斯核函数时,出现复数,结果报错。

故选择二阶多项式核进行运算得:

3-线性核运行结果

4-sigmoid核(tanh),出现复数,结果报错。

(3)临近成分分析NCA

%% (3)近邻成分分析NCA
addpath('D:\特征排序\NCA')
ContributeRate=0.9;
xtrain =data(:,1:end-1);
ytrain =data(:,end);
[xx,mdl]=myfsrnca(xtrain,ytrain,0.9);
xnca=data(:,xx);

(4)随机森林RF

%% (4)随机森林RF
addpath('D:\特征排序\RF')
ContributeRate=0.9;
[XT,RFModel,w]= myrf(data,ContributeRate);
xrf=data(:,XT);

(5)自适应随机森林ARF

%% (5)自适应随机森林ARF
addpath('D:\特征排序\ARF')
ContributeRate=0.9;
params.RFLeaf=[5,10,20,50,100,200,500]; %RFLeaf定义初始的叶子节点个数,这里设置了从5到500。
params.Maxepoch=500; % 选择叶子节点个数对应的最大训练步数
[XT,RFModel,w,params]= myarf(data,ContributeRate,params);
xarf=data(:,XT);

nTree = 470;nLeaf = 5;

(6)皮尔逊相关系数PCC

%% (6)皮尔逊相关系数PCC
addpath('D:\特征排序\PCC')
ContributeRate=0.9;
xtrain =data(:,1:end-1);
ytrain =data(:,end);
opts.Nf =size(xtrain,2);    % 选择因素数量
FS     = mypcc(xtrain,ytrain,opts); % 皮尔逊相关系数法 函数调用
sf_idx = FS.sf;
 % 绘图  ,特征排序
extra()
 xpcc=yt(1:mm);%取前MM个数据

(7)Relief-F算法

%% (7)Relief-F算法
addpath('D:\特征排序\Relief-F')
ContributeRate=0.9;
xtrain =data(:,1:end-1);
ytrain =data(:,end);
opts.Nf =size(xtrain,2);    % 选择因素数量
FS     = myReliefF(xtrain,ytrain,opts); %  函数调用
sf_idx = FS.sf;
extra()
 xReliefF=yt(1:mm);%取前MM个数据

(8)Term Variance算法

%% (8)Term Variance算法
addpath('D:\特征排序\TV')
ContributeRate=0.9;
xtrain =data(:,1:end-1);
ytrain =data(:,end);
opts.Nf =size(xtrain,2);    % 选择因素数量
FS     = mytv(xtrain,ytrain,opts); %  函数调用
sf_idx = FS.sf;
extra()
 xTV=yt(1:mm);%取前MM个数据

(9)Garson算法

(9)Garson算法 
addpath('D:特征排序\GARSON')
ContributeRate=0.9;
xtrain =data(:,1:end-1);
ytrain =data(:,end);
[xgarson,Q]=mygarson(data,ContributeRate);

四、代码获取

私信回复‘31’即可获取下载链接

相关文章
|
4天前
|
算法 人机交互 数据安全/隐私保护
基于图像形态学处理和凸包分析法的指尖检测matlab仿真
本项目基于Matlab2022a实现手势识别中的指尖检测算法。测试样本展示无水印运行效果,完整代码含中文注释及操作视频。算法通过图像形态学处理和凸包检测(如Graham扫描法)来确定指尖位置,但对背景复杂度敏感,需调整参数PARA1和PARA2以优化不同手型的检测精度。
空心电抗器的matlab建模与性能仿真分析
空心电抗器是一种无铁芯的电感元件,通过多层并联导线绕制而成。其主要作用是限制电流、滤波、吸收谐波和提高功率因数。电抗器的损耗包括涡流损耗、电阻损耗和环流损耗。涡流损耗由交变磁场引起,电阻损耗与电抗器半径有关,环流损耗与各层电流相关。系统仿真使用MATLAB2022a进行。
|
12天前
|
编解码 算法 数据安全/隐私保护
基于BP译码的LDPC误码率matlab仿真,分析不同码长,码率,迭代次数以及信道类型对译码性能的影响
本内容介绍基于MATLAB 2022a的低密度奇偶校验码(LDPC)仿真,展示了完整的无水印仿真结果。LDPC是一种逼近香农限的信道编码技术,广泛应用于现代通信系统。BP译码算法通过Tanner图上的消息传递实现高效译码。仿真程序涵盖了不同Eb/N0下的误码率计算,并分析了码长、码率、迭代次数和信道类型对译码性能的影响。核心代码实现了LDPC编码、BPSK调制、高斯信道传输及BP译码过程,最终绘制误码率曲线并保存数据。 字符数:239
56 5
|
2月前
|
运维 算法
基于Lipschitz李式指数的随机信号特征识别和故障检测matlab仿真
本程序基于Lipschitz李式指数进行随机信号特征识别和故障检测。使用MATLAB2013B版本运行,核心功能包括计算Lipschitz指数、绘制指数曲线、检测故障信号并标记异常区域。Lipschitz指数能够反映信号的局部动态行为,适用于机械振动分析等领域的故障诊断。
|
1月前
|
算法 数据安全/隐私保护
数字通信中不同信道类型对通信系统性能影响matlab仿真分析,对比AWGN,BEC,BSC以及多径信道
本项目展示了数字通信系统中几种典型信道模型(AWGN、BEC、BSC及多径信道)的算法实现与分析。使用Matlab2022a开发,提供无水印运行效果预览图、部分核心代码及完整版带中文注释的源码和操作视频。通过数学公式深入解析各信道特性及其对系统性能的影响。
|
3月前
|
编解码 算法 数据安全/隐私保护
基于BP译码的LDPC误码率matlab仿真,分析码长,码率,信道对译码性能的影响,对比卷积码,turbo码以及BCH码
本程序系统基于BP译码的LDPC误码率MATLAB仿真,分析不同码长、码率、信道对译码性能的影响,并与卷积码、Turbo码及BCH编译码进行对比。升级版增加了更多码长、码率和信道的测试,展示了LDPC码的优越性能。LDPC码由Gallager在1963年提出,具有低复杂度、可并行译码等优点,近年来成为信道编码研究的热点。程序在MATLAB 2022a上运行,仿真结果无水印。
64 0
|
4月前
|
算法 数据挖掘 vr&ar
基于ESTAR指数平滑转换自回归模型的CPI数据统计分析matlab仿真
该程序基于ESTAR指数平滑转换自回归模型,对CPI数据进行统计分析与MATLAB仿真,主要利用M-ESTAR模型计算WNL值、P值、Q值及12阶ARCH值。ESTAR模型结合指数平滑与状态转换自回归,适用于处理经济数据中的非线性趋势变化。在MATLAB 2022a版本中运行并通过ADF检验验证模型的平稳性,适用于复杂的高阶自回归模型。
|
4月前
|
机器学习/深度学习 算法
基于心电信号时空特征的QRS波检测算法matlab仿真
本课题旨在通过提取ECG信号的时空特征并应用QRS波检测算法识别心电信号中的峰值。使用MATLAB 2022a版本实现系统仿真,涵盖信号预处理、特征提取、特征选择、阈值设定及QRS波检测等关键步骤,以提高心脏疾病诊断准确性。预处理阶段采用滤波技术去除噪声,检测算法则结合了一阶导数和二阶导数计算确定QRS波峰值。
|
5月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
247 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
5月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
147 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现