Matlab实现决策树算法进行数字识别

本文介绍了如何使用Matlab中的treefit函数构建决策树模型进行手写数字识别。通过导入28x28像素的数字图像数据集,选择部分数据作为训练集和测试集,构建并训练决策树。实验结果显示,识别效果最佳的数字类别,而数字2的识别准确率相对较低。
摘要由CSDN通过智能技术生成

决策树是一个与流程图相似的树状结构;其中,每一个内部结点都是对一个属性的测试,每一个分枝代表一个结果输出,而每个树叶结点代表一个特定的类或者类的分布。决策树最顶层结点称作根结点。一棵典型的决策树如图1所示。它表示概念“购买计算机”,即他预测顾客是否可能购买计算机。

决策树模型
图1 决策树模型

决策树的每个节点的子节点的个数与决策树所使用的算法有关。例如,CART(分类与回归树)算法得到的决策树每个节点有两个分支,这种树称为二叉树。允许节点含有多于两个子节点的树称为多叉树。
Matlab中可以利用treefit函数实现决策树分类算法,treefit函数的语法如下:
t = treefit(X,y),其中X样本的特征向量,y为样本的类别。

现在要实现通过matlab自带的treefit 函数进行手写阿拉伯数字识别;
所要识别的图像是这样的:
阿拉伯数字0
阿拉伯数字1

这里所使用的数据集来自“数据堂”,已经将图片导入进了matlab,图片像素是28*28=784;这里将每张图片的所有像素点存储在一行当中,对0来说一共有5923行,就是5923张图片。其他的图片以此类推导入到matlab中。

这里写图片描述

我们需要准备:

  1. 训练数据
  2. 测试数据

    训练数据准备:

dtrain0=train0(1:2000,:);
dtrain1=train1(1:2000,:);
dtrain2=train2(1:2000,:);
dtrain3=train3(1:2000,:);
dtrain4=train4(1:2000,:);
dtrain5=train5(1:2000,:);
dtrain6=train6(1:2000,:);
dtrain7=train7(1:2000,:);
dtrain8=train8(1:2000,:);
dtrain9=train9(1:2000,:);

trainset10=[dtrain0;dtrain1;dtrain2;dtrain3;dtrain4;dtrain5;dtrain6;dtrain7;dtrain8;dtrain9]
tt=double(trainset10);

在每个阿拉伯数字训练集中取出2000行作为训练数据,(1:2000,:)代表 1-2000行,所有的列;
trainset10=[dtrain0;dtrain1;dtrain2;dtrain3;dtrain4;dtrain5;dtrain6;dtrain7;dtrain8;dtrain9]
表示将所有的dtrain合并在一个变量中,行追加,列不变,生成的trainset10 有20000行;

这里写图片描述

测试数据准备:
过程相同,随便从测试数据集里面挑出一些数据,合并在一起,这里我每个数字取10个;

testset0=test0(1:10,:);
testset1=test1(1:10,:);
testset2=test2(1:10,:);
testset3=test3(1:10,:);
testset4=test4(1:10,:);
testset5=test5(
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值