决策树算法的 MATLAB 实践
决策树算法原理:
决策树算法的基本原理
决策树算法是一种特别简单的机器学习分类算法。在机器学习中,决策树是一个预测模型,其代表的是对象属性与对象之间的一种映射关系。
决策树算法的特点:
决策树算法的优点如下:
1、 决策树易于理解和实现,用户在学习过程中不需要了解过多的背景知识,其能够直接体现数据的特点,只要通过适当的解释,用户能够理解决策树所表达的意义。
2、 速度快,计算量相对较小,且容易转化成分类规则。只要沿着根节点向下一直走到叶子节点,沿途分裂条件是唯一且确定的。
决策树算法的缺点则主要是在处理大样本集时,易出现过拟合现象,降低分类的准确性。
随机森林:
随机森林指的是利用多棵决策树(类似一片森林)对样本进行训练并预测的一种分类器。该分类器最早由 Leo Breiman 和 Adele Culter 提出,并被注册成了商标。在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别数输出的类别的众数而定。这个方法则是结合 Breiman 的"Bootstrap aggregating" 想法和 Ho 的“random subspace method”以建造决策树的集合。
MATLAB 实践:
在MATLAB 中,为方便用户对决策树算法的使用,MATLAB 中针对分类决策树和回归决策树分别封装了两个函数:fitctree 和 fitrtree。由于分类决策树和回归决策树两者具有极大的相似性,因此 fitctree 和 fitrtree 两者的使用方法也基本一致。
分类决策树 fitctree 函数在决策树进行分支时,采用的是 CART 方法。其使用方法为 TREE = fitrtree(TBL,Y),其中,TBL 为样本属性值矩阵,Y 为样本标签。利用 MATLAB 中自带的统计3种鸢尾属样本数据 fisheriris,其属性分别为花萼长度、花萼宽度、花瓣长度、花瓣宽度,标签分别为‘setosa’、‘versicolor’ 和 ‘virginica’。
具体代码如下:
%%CART决策树算法Matlab实现
clear all;
close all;
clc;
load fisheriris %载入样本数据
t = fitctree(meas,species,'PredictorNames',{'SL' 'SW' 'PL' 'PW'})%定义四种属性显示名称
view(t) %在命令行窗口中用文本显示决策树结构
view(t,'Mode','graph') %图形显示决策树结构
运行后显示结果如图:
MATLAB 命令行窗口显示结果:
分别单击上述 MATLAB 命令行窗口中的 Properties 和 Methods 超链接,在窗口中分别显示如下所示。单击 Properties 超链接显示的类 Classification Tree 的所有(可理解为生成决策树)属性,是指通过 fitctree 训练得到的树的所有属性,部分属性值可在 fitctree 函数调用时进行定义,如上述程序中的 PredictorNames(描述各属性的名称)等,另外一部分则是对形成的树的具体属性描述,如 NumNodes(描述各属性的名称)等。由于各属性是属于训练成的决策树,因此当需要观测和调用属性值时,可采用 t.XXX 调用,其中 t 表示训练生成的树的名称,XXX 表示属性名称。
单击 Methods 超链接显示的是类 Classification Tree(可理解为生成的决策树)的操作方法。
对于属性和方法的具体含义及使用方法,可通过 help XXX 查询,XXX 为属性或方法名。下面介绍决策树的剪枝方法(Prune)和观测方法(View)的基本使用方法。
语法如下:
t2 = prune(t1, 'level', levelvalue)
t2 = purne(t1, 'nodes', nodes)
view(t2, 'Mode', 'graph')
其中,t1 表示原决策树,t2 表示剪枝后的新决策树,‘level’ 表示按照层进行剪枝,levelvalue 表示剪掉的层数。‘nodes’ 表示按照借点剪枝,nodes 表示剪掉该结点后的所有枝。view(t2,‘Model’,‘graph’)表示以图形化方式显示 t2 决策树。
针对上述的决策树,进行剪枝。在 MATLAB 命令行窗口中输入:
经过裁剪后的决策树如下图所示:
经过上诉对决策树的剪枝等操作后,就形成了一个具有使用价值的决策树,在 MATLAB 命令行窗口中输入:
运行后输出结果如下:
上图表示通过决策树分类后,属性值为[1 0.2 0.4 2] 的鸢尾属植物 setosa。
决策树算法的 MATLAB 实践相关推荐
- 浅谈决策树算法以及matlab实现ID3算法
决策树方法在分类.预测.规则提取等领域有着广泛的应用.在20世纪70年代后期和80年代初期,机器学习研究者J.Ross Quinilan提出了ID3算法以后,决策树在机器学习.数据挖掘领域得到极大的发 ...
- 决策树算法实现(train+test,matlab) 转
原文:http://www.zgxue.com/198/1985544.html 华电北风吹 天津大学认知计算与应用重点实验室 修改日期:2015/8/15 决策树是一种特别简单的机器学习分类算法 ...
- 机器学习-ID3决策树算法(附matlab/octave代码)
ID3决策树算法是基于信息增益来构建的,信息增益可以由训练集的信息熵算得,这里举一个简单的例子 data=[心情好 天气好 出门 心情好 天气不好 出门 心情不好 天气好 出门 心情不好 天气不好 ...
- 决策树分类算法matlab,matlab实现的C45分类决策树算法
<matlab实现的C45分类决策树算法>由会员分享,可在线阅读,更多相关<matlab实现的C45分类决策树算法(6页珍藏版)>请在人人文库网上搜索. 1.functionD ...
- 决策树算法的理论和实践
DataWhale基于决策树的分类预测 学习目标 理论知识 1.决策树(Decision Tree)的介绍 2.决策树的应用 3.决策树的原理 那么问题来了 熵 熵的公式 信息增益 剪枝 预剪枝 后剪 ...
- lgg7深度详细参数_机器学习超详细实践攻略(9):决策树算法使用及小白都能看懂的调参指南...
决策树算法在工业中本身应用并不多,但是,目前主流的比赛中的王者,包括GBDT.XGBOOST.LGBM都是以决策树为积木搭建出来的,所以理解决策树,是学习这些算法的基石,今天,我们就从模型调用到调参详 ...
- matlab粗集系统评估wine,C4.5 决策树算法对UCI wine数据集分类的实现(MATLAB)
一.功能实现与样本分析 在数据挖掘领域,能够利用相应的算法对数据集进行训练,即对样本的特征进行分析,从而概括出相同类别的样本之间存在的内在特征联系,进一步对未知类别的样本进行预测,判断出该样本所属的类 ...
- matlab id3决策树,matlab实现的ID3分类决策树算法
<matlab实现的ID3分类决策树算法>由会员分享,可在线阅读,更多相关<matlab实现的ID3分类决策树算法(4页珍藏版)>请在人人文库网上搜索. 1.function ...
- C4.5 决策树算法对UCI wine数据集分类的实现(MATLAB)
1.功能实现与样本分析 在数据挖掘领域,可以利用相应的算法对数据集进行训练,即对样本的特征进行分析,从而归纳出相同类别的样本之间存在的内在特征联系,进一步对未知类别的样本进行预测,判断出该样本所属的类 ...
最新文章
- 一点历史--Python
- thinkphp5.1+ 使用 Redis 缓存
- 华为鸿蒙os生态,华为鸿蒙系统终于来了! 首款方舟编译器应用正式上架: 鸿蒙OS可用...
- 第一百四十五节,JavaScript,同步动画
- Error: could not open `C:\Java\jre7\lib\i386\jvm.cfg
- Linux---主机字节序与网络字节序
- 视频剪辑软件到底哪个功能强?容易上手并且不要钱的?
- C/C++ 安全编码 —— 指针与内存
- markdown模板
- 深入学习jquery源码之show()和hide()
- PAT甲级真题1097 链表重复数据删除(简单解法)
- CH0805 防线 二分
- 单片机开发产品流程,照这个来没错!
- Eclipse下jsp模板设置
- 领导喜欢员工的15种素质
- 基于opencv的图片人像移除
- html页面实现打印
- MySQL闪退解决办法看这里!
- oracle 一维数转二维数组,js将一维数组转化为二维数组
- armbian启用wifi