用matlab写一个随机森林预测模型并画图
时间: 2024-03-13 07:11:07 浏览: 140
当使用 MATLAB 构建随机森林预测模型后,你可以使用以下示例代码来绘制模型的决策边界图:
```matlab
% 准备数据
load fisheriris
X = meas(:, 1:2);
Y = species;
% 划分数据集为训练集和测试集
cv = cvpartition(Y, 'HoldOut', 0.2);
idx = cv.test;
Xtrain = X(~idx, :);
Ytrain = Y(~idx, :);
Xtest = X(idx, :);
Ytest = Y(idx, :);
% 构建随机森林模型
numTrees = 100;
Mdl = TreeBagger(numTrees, Xtrain, Ytrain);
% 预测测试集数据
Ypred = predict(Mdl, Xtest);
% 绘制决策边界图
x1range = min(X(:, 1)):0.01:max(X(:, 1));
x2range = min(X(:, 2)):0.01:max(X(:, 2));
[X1, X2] = meshgrid(x1range, x2range);
XGrid = [X1(:), X2(:)];
YGrid = predict(Mdl, XGrid);
figure;
gscatter(XGrid(:, 1), XGrid(:, 2), YGrid, 'rgb', '.', 20);
hold on;
gscatter(Xtest(:, 1), Xtest(:, 2), Ytest, 'k', 'o', 8);
title('随机森林决策边界图');
xlabel('特征1');
ylabel('特征2');
legend('决策边界', '测试样本');
```
这段代码首先加载了 Fisher's Iris 数据集,并选择其中的前两个特征作为输入特征 X。然后,将数据集划分为训练集和测试集。接下来,使用 `TreeBagger` 函数构建了一个由 100 棵决策树组成的随机森林模型,并预测测试集数据。
为了绘制决策边界图,我们首先定义了一个网格,覆盖了特征空间的范围。然后,使用训练好的模型对网格中的数据点进行预测,并根据预测结果绘制出决策边界。最后,将测试集数据点绘制在图上,以便观察模型的性能。
希望这个示例对你有帮助!如果有任何问题,请随时提问。
阅读全文