随机森林和分类评价的matlab代码
时间: 2023-08-14 15:06:27 浏览: 101
下面是一个使用随机森林分类器进行分类,并对分类结果进行评价的 Matlab 代码示例:
```matlab
% 加载数据集
load fisheriris
X = meas;
Y = species;
% 划分训练集和测试集
cv = cvpartition(Y,'HoldOut',0.3);
X_train = X(training(cv),:);
Y_train = Y(training(cv),:);
X_test = X(test(cv),:);
Y_test = Y(test(cv),:);
% 训练随机森林分类器
num_trees = 100;
model = TreeBagger(num_trees, X_train, Y_train);
% 使用随机森林分类器进行预测
Y_pred = predict(model, X_test);
% 将预测结果转换为分类标签
Y_pred = cellfun(@(x) str2double(x), Y_pred);
% 计算分类准确率
accuracy = sum(Y_pred == Y_test) / length(Y_test);
% 计算其他评价指标,如精确率、召回率和 F1 值
confusion_matrix = confusionmat(Y_test, Y_pred);
precision = diag(confusion_matrix) ./ sum(confusion_matrix, 2);
recall = diag(confusion_matrix) ./ sum(confusion_matrix, 1)';
f1_score = 2 * precision .* recall ./ (precision + recall);
% 打印结果
fprintf('Classification accuracy: %.4f\n', accuracy);
fprintf('Precision for each class: %s\n', num2str(precision));
fprintf('Recall for each class: %s\n', num2str(recall));
fprintf('F1 score for each class: %s\n', num2str(f1_score));
```
这段代码首先加载了鸢尾花数据集,并将其划分为训练集和测试集。然后,使用 Matlab 自带的 `TreeBagger` 函数训练了一个随机森林分类器,并使用该分类器对测试集进行了预测。接着,将预测结果转换为分类标签,并计算了分类准确率、精确率、召回率和 F1 值。最后,将结果打印出来。请注意,这只是一个简单的示例代码,实际情况可能需要根据具体需求进行修改。
阅读全文