用matlab写一个基于决策树算法的程序
时间: 2023-09-05 13:09:02 浏览: 92
好的,以下是一个基于决策树算法的 MATLAB 程序,它使用鸢尾花数据集进行分类,并对训练集和测试集的分类准确率进行了评估:
```
% 导入数据
load fisheriris; % 导入鸢尾花数据集
X = meas; % 提取特征
Y = species; % 提取标签
% 划分训练集和测试集
cv = cvpartition(Y,'holdout',0.3); % 使用 holdout 方法将数据集划分为训练集和测试集
X_train = X(training(cv),:); % 训练集特征
Y_train = Y(training(cv)); % 训练集标签
X_test = X(test(cv),:); % 测试集特征
Y_test = Y(test(cv)); % 测试集标签
% 创建决策树模型
model = fitctree(X_train, Y_train); % 使用 fitctree 函数创建决策树模型
% 预测并评估模型
Y_train_pred = predict(model, X_train); % 对训练集进行预测
Y_test_pred = predict(model, X_test); % 对测试集进行预测
train_accuracy = sum(Y_train_pred==Y_train)/numel(Y_train); % 计算训练集分类准确率
test_accuracy = sum(Y_test_pred==Y_test)/numel(Y_test); % 计算测试集分类准确率
% 输出结果
disp(['训练集分类准确率:', num2str(train_accuracy)]);
disp(['测试集分类准确率:', num2str(test_accuracy)]);
```
这个程序的功能和前一个程序类似,不同之处在于它还对训练集的分类准确率进行了评估。其中,首先导入数据集,并将其划分为训练集和测试集;然后使用 `fitctree` 函数创建决策树模型;接着使用 `predict` 函数对训练集和测试集进行预测,并计算分类准确率;最后输出训练集和测试集的分类准确率。
阅读全文