随机森林matlab代码
时间: 2023-06-30 14:11:03 浏览: 100
随机森林MATLAB代码
3星 · 编辑精心推荐
以下是一个简单的随机森林的Matlab代码:
```matlab
% 加载数据
data = load('data.txt');
% 将数据集分为训练集和测试集
train_ratio = 0.7; % 训练集所占比例
[train_data, test_data] = splitData(data, train_ratio);
% 构建随机森林
num_trees = 50; % 森林中树的数量
num_features = 3; % 每个节点考虑的特征数量
trees = cell(num_trees, 1);
for i = 1:num_trees
% 随机选择训练集的样本和特征
sample_indices = randperm(size(train_data, 1), size(train_data, 1));
feature_indices = randperm(size(train_data, 2) - 1, num_features);
% 构建一棵决策树
trees{i} = buildTree(train_data(sample_indices, :), feature_indices);
end
% 预测测试集结果
predictions = zeros(size(test_data, 1), 1);
for i = 1:size(test_data, 1)
% 对于每个测试样本,计算它在每棵树上的预测值并取平均
for j = 1:num_trees
predictions(i) = predictions(i) + predict(trees{j}, test_data(i, :));
end
predictions(i) = predictions(i) / num_trees;
end
% 计算预测结果的准确率
accuracy = sum(predictions == test_data(:, end)) / size(test_data, 1);
disp(['Accuracy: ', num2str(accuracy)]);
```
其中,`splitData` 函数用于将数据集分为训练集和测试集,`buildTree` 函数用于构建一棵决策树,`predict` 函数用于对一个样本进行预测。你需要根据你的数据集和具体需求进行相应的修改。
阅读全文