matlab决策树算法实例
时间: 2023-11-01 12:08:37 浏览: 91
下面是一个使用matlab实现决策树算法的示例:
假设我们有以下数据集:
| 年龄 | 收入 | 学历 | 是否购买 |
|---|---|---|---|
| 青年 | 高 | 本科 | 否 |
| 青年 | 中 | 大专 | 否 |
| 青年 | 中 | 本科 | 是 |
| 青年 | 低 | 本科 | 是 |
| 中年 | 中 | 本科 | 是 |
| 中年 | 高 | 大专 | 是 |
| 中年 | 低 | 大专 | 是 |
| 老年 | 低 | 大专 | 是 |
| 老年 | 中 | 本科 | 是 |
| 老年 | 高 | 大专 | 否 |
我们要使用决策树算法来预测一个人是否会购买商品,根据以上数据集,我们可以得到以下决策树:
![decision tree](https://i.imgur.com/l5l5U5C.png)
现在,我们将使用matlab来实现这个决策树算法。首先,我们需要将数据集转换为数值。以下是代码:
```matlab
data = {'青年','高','本科','否';
'青年','中','大专','否';
'青年','中','本科','是';
'青年','低','本科','是';
'中年','中','本科','是';
'中年','高','大专','是';
'中年','低','大专','是';
'老年','低','大专','是';
'老年','中','本科','是';
'老年','高','大专','否'};
data_num = zeros(size(data));
data_num(:,1) = grp2idx(data(:,1));
data_num(:,2) = grp2idx(data(:,2));
data_num(:,3) = grp2idx(data(:,3));
data_num(:,4) = grp2idx(data(:,4));
X = data_num(:,1:3);
y = data_num(:,4);
```
接下来,我们使用matlab自带的classificationtree函数来构建决策树。以下是代码:
```matlab
tree = fitctree(X,y,'PredictorNames',{'年龄','收入','学历'});
```
我们可以使用view函数来可视化决策树。以下是代码:
```matlab
view(tree,'Mode','graph');
```
最后,我们可以使用predict函数来预测一个新的样本。以下是代码:
```matlab
new_data = {'青年','高','大专'};
new_data_num = zeros(1,3);
new_data_num(1) = grp2idx(new_data(:,1));
new_data_num(2) = grp2idx(new_data(:,2));
new_data_num(3) = grp2idx(new_data(:,3));
prediction = predict(tree,new_data_num);
```
以上就是一个使用matlab实现决策树算法的示例。
阅读全文