实验内容

1 使用决策数实现西瓜数据集2.0的分类(随机十次的结果取平均);
2 使用决策数实现鸢尾花的分类(随机十次的结果取平均) ;
3 画出十次实验的精度变化曲线图。

实验代码

%%******************************问题一****************************
%*****************************************************************
clear;clc;
%% 导入西瓜数据
watermelon=[1,1,1,1,1,1,1;2,1,2,1,1,1,1;2,1,1,1,1,1,1;1,1,2,1,1,1,1;3,1,1,1,1,1,1;1,2,1,1,2,2,1;2,2,1,2,2,2,1;2,2,1,1,2,1,1;2,2,2,2,2,1,2;1,3,3,1,3,2,2;3,3,3,3,3,1,2;3,1,1,3,3,2,2;1,2,1,2,1,1,2;3,1,2,2,1,1,2;2,2,1,1,2,2,2;3,1,1,3,3,1,2;1,1,2,2,2,1,2;];
pattern=watermelon(:,1:6);
target=watermelon(:,7);
%% 留出法划分训练集和测试集
for i=1:10num=randperm(size(watermelon,1));train_patterns=pattern(num(1:round(length(num)*2/3)),:);test_patterns=pattern(num(round(length(num)*2/3)+1:end),:);train_targets=target(num(1:round(length(num)*2/3)),:);test_targets_true=target(num(round(length(num)*2/3)+1:end),:);%决策树分类计算精度[test_targets_predict]= C4_5(train_patterns', train_targets', test_patterns', 5, 10);test_targets_predict=test_targets_predict';equal=(test_targets_predict==test_targets_true);acc(1,i)=sum(equal)/size(equal,1);
end
%% 绘制精度曲线
plot([1:10],acc);
hold on;
axis([1,10,0,1]);
xlabel("次数");
ylabel("精度");
legend("西瓜数据的十次实验的精度变化曲线图");%%********************************问题二************************************
%***************************************************************************
clear;clc;
%% 导入鸢尾花数据
iris = readtable('iris.data','Filetype','text','ReadVariableNames',false);
pattern=iris{:,1:4};
target=iris{:,5};
for i=1:size(pattern,1)if strcmp(target(i,1),'Iris-setosa')label(i,1)=1;elseif strcmp(target(i,1),'Iris-versicolor')label(i,1)=2;elselabel(i,1)=3;end;
end
%% 留出法划分训练集和测试集
for i=1:10num=randperm(size(pattern,1));train_patterns=pattern(num(1:round(length(num)*2/3)),:);train_targets=label(num(1:round(length(num)*2/3)),:);test_patterns=pattern(num(round(length(num)*2/3)+1:end),:);test_targets_true=label(num(round(length(num)*2/3)+1:end),:);%决策树分类计算精度[test_targets_predict]= C4_5(train_patterns', train_targets', test_patterns', 5, 10);test_targets_predict=test_targets_predict';equal=(test_targets_predict==test_targets_true);acc(1,i)=sum(equal)/size(equal,1);
end%%**********************************问题三*********************************
%**************************************************************************
%% 绘制精度曲线
plot([1:10],acc);
hold on;
axis([1,10,0,1]);
xlabel("次数");
ylabel("精度");
legend("鸢尾花数据的十次实验的精度变化曲线图");

C4_5函数调用文件见如下链接:
决策树源码文件

实验结果

实验心得

通过本次“决策树算法”实验,首先,我对决策树的方法理解更加深刻。其次,能够理解决策树算法实验中c4_5函数的代码。最后,能通过调用决策树算法的c4_5函数实现对西瓜数据和鸢尾花数据的分类,结果发现:决策树算法对鸢尾花的预测精度在90%上下波动,而西瓜的预测精度则在50%左右波动。

【MATLAB】机器学习:决策树算法实验相关推荐

  1. [飞桨机器学习]决策树算法

    [飞桨机器学习]决策树算法 一.简介 1.概述 决策树算法是一种逼近离散函数值的方法.它是一种典型的分类方法,首先对数据进行处理,利用归纳算法生成可读的规则和决策树,然后使用决策对新数据进行分析.本质 ...

  2. 机器学习-决策树算法ID3实现,含例子(红酒分类)

    决策树原理实现代码如下所示:(参考自机器学习实践 Peter Harrington). import mathx=[[0,1,"no"],[0,1,"no"], ...

  3. 机器学习-决策树算法原理及实现-附python代码

    1.决策树-分类树 sklearn.tree.DecisionTreeClassifier官方地址: https://scikit-learn.org/stable/modules/generated ...

  4. 机器学习 决策树算法

    4.1 决策树算法简介 学习目标 知道什么是决策树 能够通过sklearn实现决策树分类,进一步认识决策树 1 概念 决策树思想的来源非常朴素,程序设计中的条件分支结构就是if-else结构,最早的决 ...

  5. 机器学习——决策树算法

    文章目录 一.决策树介绍 二.利用信息增益选择最优划分属性 三.ID3代码实现 1.jupyter下python实现 2. 使用sklearn实现ID3 四.C4.5算法实现 五.CART算法实现 六 ...

  6. python决策树原理_Python机器学习决策树算法 | kTWO-个人博客

    ps:这篇文章主要来介绍决策树算法的基本原理和概念.具体的Python应用将在下一篇文章中介绍. 1.什么是决策树? 决策树(decision tree)也叫做判定树,类似于流程图的结构,每个内部的结 ...

  7. 机器学习决策树算法泰坦尼克号乘客生存预测

    目录 1 决策树算法api 2 泰坦尼克号乘客案例背景 2.1 步骤分析 2.2 代码实现 2.3 决策树可视化 2.3.1 保存树的结构到dot文件 2.3.2 网站显示结构 3 决策树总结 4 小 ...

  8. 机器学习——决策树算法原理及案例

    机器学习在各个领域都有广泛的应用,特别在数据分析领域有着深远的影响.决策树是机器学习中最基础且应用最广泛的算法模型.本文介绍了机器学习的相关概念.常见的算法分类和决策树模型及应用.通过一个决策树案例, ...

  9. Python数据分析实战【十二】:机器学习决策树算法案例实战【文末源码地址】

    文章目录 构造数据 决策树解决 报错解决 源码地址 构造数据 我们用pandas生成20条数据,其中标签为bad的数据有6条,标签为good的数据有14条,代码如下: import pandas as ...

最新文章

  1. [bug]不包含“AsNoTracking”的定义
  2. 阿里云低代码行业智能开放平台开拓行业AI应用新方法
  3. 用代码判断当前系统是否支持某个版本的feature
  4. Django:ORM基本操作-CRUD,管理器对象objects,----->聚合查询、原生数据库操作
  5. 这款能够生成文档的接口测试软件,为什么越来越受欢迎?
  6. Python Flask web后端开发
  7. 为什么 scrum 开发人员是一个 T-形的人 ?
  8. 【转】ZooKeeper学习第二期--Zookeeper命令操作
  9. 【清纯可爱女孩win7主题】
  10. C++编程练习:2-华氏度转摄氏度
  11. gRPC Name Resolution
  12. 魔兽争霸III 全图的制作-魔兽全图-DOTA-信长-真三-IMBA-丛林肉搏全图
  13. 谈一谈post和get的区别
  14. three.js 实现波纹效果
  15. 【python环境下Z3约束求解器学习笔记】And和Or的用法
  16. 托福高频真词List19 // 附托福TPO阅读真题
  17. 网上下单的手机流量卡,京东快递配送开卡!有猫腻!要注意!
  18. Flink的双流join介绍
  19. 服务器虚拟化技术主要有什么优势
  20. uni-app中,文字超出隐藏并显示省略号(实现展开、收起全文)

热门文章

  1. 【iOS】设计尺寸规范(更新至iPhone 11、iPhone 11 Pro、iPhone 11 Pro Max)
  2. oracle去除字段里的汉字
  3. TensorFlow实现CGAN
  4. 码元速率、数据速率、信道带宽、信道容量、载波的概念
  5. python七巧板绘图_记录一次canvas绘图(七巧板)
  6. #医疗算法招聘:【医学影像AI公司-图像算法工程师】(招2人)
  7. vivado2019.2的安装
  8. AWS IOT C++ SDK 使用
  9. [体感游戏]关于体感游戏的一些思考(七) --- “我是泰山,你是简?”
  10. 数据库(笔记)——关系代数以及相关运算