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’即可获取下载链接。