用matlab编写一个全面的随机森林模型代码
时间: 2023-06-14 13:06:14 浏览: 114
以下是一个基于MATLAB的随机森林模型代码:
```matlab
%% 加载数据
load fisheriris
X = meas;
Y = species;
%% 划分数据集
cvp = cvpartition(Y,'HoldOut',0.3);
idxTrain = training(cvp); % 训练集索引
idxTest = test(cvp); % 测试集索引
Xtrain = X(idxTrain,:);
Ytrain = Y(idxTrain);
Xtest = X(idxTest,:);
Ytest = Y(idxTest);
%% 随机森林模型训练
ntree = 100; % 设置决策树个数
Mdl = TreeBagger(ntree,Xtrain,Ytrain,...
'OOBPrediction','on','Method','classification');
%% 特征重要性分析
impOOB = Mdl.OOBPermutedVarDeltaError; % OOB样本误差中特征重要性
bar(impOOB);
xlabel('变量');
ylabel('相对变量重要性');
title('变量重要性');
%% 预测测试集
Ypred = predict(Mdl,Xtest);
%% 模型评估
confMat = confusionmat(Ytest,Ypred); % 混淆矩阵
accuracy = sum(diag(confMat))/sum(confMat(:)); % 准确率
fprintf('准确率:%.2f%%\n',accuracy*100);
```
在此代码中,我们使用了MATLAB自带的鱼类数据集进行模型训练和测试。首先,我们将数据集划分为训练集和测试集。然后,我们使用`TreeBagger`函数来构建随机森林模型,并设置决策树个数。模型训练完成后,我们可以通过`OOBPermutedVarDeltaError`属性来获取特征重要性,并使用条形图展示出来。接下来,我们使用训练好的模型来预测测试集,并计算出准确率。
阅读全文