% MATLAB随机森林分类
clc;clear;
data = readtable('C:\Users\Administrator\Desktop\RFtest.csv');
x = data(:,1:end-1);
y = data(:,end);
% 将数据集按30
%分成训练集和测试集
cv = cvpartition(size(x,1),'HoldOut',0.3);
idx = cv.test;
Xtrain = x(~idx,:);
Ytrain = y(~idx,:);
Xtest = x(idx,:);
Ytest = y(idx,:);
% 使用TreeBagger函数训练随机森林分类器
ntrees = 100;
% 树的数量
B = TreeBagger(ntrees,Xtrain,Ytrain,'OOBPrediction','On','OOBPredictorImportance','on');
% 在测试集上进行预测并计算准确率
Yfit = str2double(predict(B,Xtest));
Ytest = table2array(Ytest);
accuracy = sum((Yfit==Ytest))/numel(Ytest);
% 准确度计算
disp(['Accuracy: ' num2str(accuracy)]);
importance = B.OOBPermutedPredictorDeltaError;
% 特征重要性
disp(importance);
confMat = confusionmat(Ytest, Yfit);
% 混淆矩阵
disp(confMat)
02-20
5896