【MATLAB第32期】基于MATLAB的降维/全局敏感性分析/特征排序/数据处理分类问题MATLAB代码实现(持续更新)
本文敏感性分析主要分析分类问题(fisher、rf、arf、nca等)。
一、降维方法(分类)
常见的降维方法:
常见的敏感性分析法:
*(一).全局敏感性分析(sobol、蒙特卡洛方法)
(二).非全局敏感性分析
1.变量筛选(Fisher算法、临近成分分析NCA、RF随机森林、ARF自适应随机森林)
二、案例数据
案例数据classdata 3998×22 ,前21列为变量,第22列为标签,案例采用2分类,即[1,2],多分类也满足。
三、实际应用
(1)Fisher算法
%% 1.Fisher
addpath('D:特征排序\Fisher')
load classdata
ContributeRate=0.9;
id=randperm(size(classdata,1));%数据打乱
classdata=classdata(id,:);% 数据打乱重组
xtrain=classdata(:,1:end-1);% 输入变量
ytrain=classdata(:,end);%输出标签
[W] = Fisher_Score(xtrain,ytrain) ;
plot2
(2)近邻成分分析NCA(用于分类)
%% (2)近邻成分分析NCA(用于分类)
addpath('D:\特征排序\NCA')
load classdata
ContributeRate=0.9;
[xx,mdl]=myfscnca(xtrain,ytrain,0.9);
xnca=classdata(:,xx);
(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);
(3)随机森林RF
%% (3)随机森林RF
addpath('D:\特征排序\RF')
load classdata
ContributeRate=0.9;
[XT,RFModel,w]= mycrf(classdata,ContributeRate);
xrf=classdata(:,XT);
(4)自适应随机森林ARF
%% (4)自适应随机森林ARF
addpath('D:\小论文文件包最终版\基坑与算法文献\副业\特征排序\ARF')
load classdata
ContributeRate=0.9;
params.RFLeaf=[5,10,20,50,100,200,500]; %RFLeaf定义初始的叶子节点个数,这里设置了从5到500。
params.Maxepoch=500; % 选择叶子节点个数对应的最大训练步数
[XT,RFModel,w,params]= mycarf(classdata,ContributeRate,params);
xarf=classdata(:,XT);
nTree = 20;nLeaf = 5;
四、代码获取
私信回复‘32’即可获取下载链接。