决策树算法原理:

决策树算法的基本原理

决策树算法是一种特别简单的机器学习分类算法。在机器学习中,决策树是一个预测模型,其代表的是对象属性与对象之间的一种映射关系。

决策树算法的特点:

决策树算法的优点如下:

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 实践相关推荐

  1. 浅谈决策树算法以及matlab实现ID3算法

    决策树方法在分类.预测.规则提取等领域有着广泛的应用.在20世纪70年代后期和80年代初期,机器学习研究者J.Ross Quinilan提出了ID3算法以后,决策树在机器学习.数据挖掘领域得到极大的发 ...

  2. 决策树算法实现(train+test,matlab) 转

    原文:http://www.zgxue.com/198/1985544.html 华电北风吹  天津大学认知计算与应用重点实验室  修改日期:2015/8/15 决策树是一种特别简单的机器学习分类算法 ...

  3. 机器学习-ID3决策树算法(附matlab/octave代码)

    ID3决策树算法是基于信息增益来构建的,信息增益可以由训练集的信息熵算得,这里举一个简单的例子 data=[心情好 天气好  出门 心情好 天气不好 出门 心情不好 天气好 出门 心情不好 天气不好 ...

  4. 决策树分类算法matlab,matlab实现的C45分类决策树算法

    <matlab实现的C45分类决策树算法>由会员分享,可在线阅读,更多相关<matlab实现的C45分类决策树算法(6页珍藏版)>请在人人文库网上搜索. 1.functionD ...

  5. 决策树算法的理论和实践

    DataWhale基于决策树的分类预测 学习目标 理论知识 1.决策树(Decision Tree)的介绍 2.决策树的应用 3.决策树的原理 那么问题来了 熵 熵的公式 信息增益 剪枝 预剪枝 后剪 ...

  6. lgg7深度详细参数_机器学习超详细实践攻略(9):决策树算法使用及小白都能看懂的调参指南...

    决策树算法在工业中本身应用并不多,但是,目前主流的比赛中的王者,包括GBDT.XGBOOST.LGBM都是以决策树为积木搭建出来的,所以理解决策树,是学习这些算法的基石,今天,我们就从模型调用到调参详 ...

  7. matlab粗集系统评估wine,C4.5 决策树算法对UCI wine数据集分类的实现(MATLAB)

    一.功能实现与样本分析 在数据挖掘领域,能够利用相应的算法对数据集进行训练,即对样本的特征进行分析,从而概括出相同类别的样本之间存在的内在特征联系,进一步对未知类别的样本进行预测,判断出该样本所属的类 ...

  8. matlab id3决策树,matlab实现的ID3分类决策树算法

    <matlab实现的ID3分类决策树算法>由会员分享,可在线阅读,更多相关<matlab实现的ID3分类决策树算法(4页珍藏版)>请在人人文库网上搜索. 1.function ...

  9. C4.5 决策树算法对UCI wine数据集分类的实现(MATLAB)

    1.功能实现与样本分析 在数据挖掘领域,可以利用相应的算法对数据集进行训练,即对样本的特征进行分析,从而归纳出相同类别的样本之间存在的内在特征联系,进一步对未知类别的样本进行预测,判断出该样本所属的类 ...

最新文章

  1. 一点历史--Python
  2. thinkphp5.1+ 使用 Redis 缓存
  3. 华为鸿蒙os生态,华为鸿蒙系统终于来了! 首款方舟编译器应用正式上架: 鸿蒙OS可用...
  4. 第一百四十五节,JavaScript,同步动画
  5. Error: could not open `C:\Java\jre7\lib\i386\jvm.cfg
  6. Linux---主机字节序与网络字节序
  7. 视频剪辑软件到底哪个功能强?容易上手并且不要钱的?
  8. C/C++ 安全编码 —— 指针与内存
  9. markdown模板
  10. 深入学习jquery源码之show()和hide()
  11. PAT甲级真题1097 链表重复数据删除(简单解法)
  12. CH0805 防线 二分
  13. 单片机开发产品流程,照这个来没错!
  14. Eclipse下jsp模板设置
  15. 领导喜欢员工的15种素质
  16. 基于opencv的图片人像移除
  17. html页面实现打印
  18. MySQL闪退解决办法看这里!
  19. oracle 一维数转二维数组,js将一维数组转化为二维数组
  20. armbian启用wifi

热门文章

  1. 测试下mysql的几种连接,加深理解
  2. linux系统深入学习
  3. 数据结构(Java实现)-详谈树与二叉树结构
  4. 灰度图像的中值滤波取证
  5. python 学以致用 量化投资_验证KDJ金叉的行情
  6. 一群小青蛙呱蹦呱蹦呱
  7. 插值和拟合MATLAB
  8. wordpress优化插件_专为移动设备优化的社交共享WordPress插件
  9. 全球与中国半导体AMC过滤器市场发展方向分析及未来前景展望报告2022-2028年
  10. 我的世界java版怎么输入不了汉字_我的世界中国版文字消失的6种解决办法