决策树分类算法matlab实现程序
时间: 2023-11-02 09:13:33 浏览: 117
以下是一个简单的决策树分类算法的 MATLAB 实现程序,使用了 CART(Classification and Regression Trees)算法:
```matlab
% 读入数据集
data = readtable('data.csv'); % 假设数据集文件名为 data.csv
% 取出特征和标签
feat = table2array(data(:, 1:end-1));
label = table2array(data(:, end));
% 构建决策树
tree = fitctree(feat, label);
% 可视化决策树
view(tree);
% 预测新数据的标签
new_feat = [1, 2, 3]; % 假设新数据的特征值为 1, 2, 3
pred_label = predict(tree, new_feat);
disp(pred_label);
```
需要注意的是,实际应用中需要将数据集划分为训练集和测试集,并使用交叉验证等方法进行模型评估和调参,以得到更加准确的决策树分类模型。
相关问题
用matlab写一个基于决策树算法的程序
好的,以下是一个基于决策树算法的 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` 函数对训练集和测试集进行预测,并计算分类准确率;最后输出训练集和测试集的分类准确率。
阅读全文