机器学习中的决策树算法
一.简介
决策树学习是一种逼近离散值目标函数的方法,在这种方法中学习到的函数被表示为一棵决策树。
二.决策树的表示法
决策树通过把实例从艮节点排列到某个叶子结点来分类实例,叶子结点即为实例所属的分类。树上的每一个结点指定了对实例的某个属性的测试,并且该结点的每一个后继分支对应于该属性的一个可能值。分类实例的方法是从这棵树的根节点开始,测试这个结点的属性,然后按照给定实例的属性值对应的树枝向下移动。然后这个过程在以新结点的根的子树上重复。
决策树对应表达式:
四.基本的决策树学习算法
1. ID3算法
通过自顶向下构造决策树来进行学习。构造过程是从“哪一个属性将在树的根结点被测试?”这个问题开始的。为了回答这个问题,使用统计测试来确定每一个实例属性单独分类训练样例的能力。分类能力最好的属性被选作树的根结点的测试。然后为根节点属性的每个可能值产生一个分支,并把训练样例排列到适当的分支之下。然后重复整个过程,用每个分支结点关联的训练样例来选取在该点被测试的最佳属性。这形成了对合格决策树的贪婪搜索(greedy search),也就是算法从不回溯重新考虑原来的选。
专门用于学习布尔函数的ID3算法概要
ID3(Examples,Target_attribute,Attributes)
Examples即训练样例集。Target_attribute是这棵树要测试的目标属性。Attributes是除目标属性外供学习到的决策树测试的属性列表。返回一棵能正确分类给定Examples的决策树。
•如果Examples都为正,那么返回label=+的单结点树Root
•如果Examples都为反,那么返回label=+的单结点树Root
•如果Attributes为空,那么返回单结点树Root,label=Examples中最普遍的Target_attribute的值
•否则开始
•A←Attributes中分类Examples能力最好的属性
•Root的决策属性←A
•对于A的每个可能值vi
•在Root下加一个新的分支对应测试A=vi
•令Examples vi为Examples中满足A属性值为vi的子集
•如果Examples vi为空
•在这个新分支下加一个叶子结点,结点的label=Examples中最普遍的Target_attribute值
•否则在这个新分支下加一个子树ID3(Examples vi,Target_attribute,Attributes-{A})
•结束
•返回Root
2. 哪个属性是最佳的分类属性
熵(entropy):刻画了任意样例集的纯度(purity)。
熵确定了要编码集合S中任意成员(即以均匀的概率随机抽出的一个成员)的分类所需要的最小二进制位数。
如果目标属性具有c个不同的值,那么S相对c个状态(c-wise)的分类的熵定义为:
Pi是S中属于类别i的比例。
信息增益(information gain):一个属性的信息增益就是由于使用这个属性分割样例而导致的期望熵降低。
Values(A)是属性A所有可能值的集合,Sv 是S中属性A的值为v的子集。
例如,假定S包含14个样例-[9+,5-]。在这14个样例中,假定正例中的6个和反例中的2个有Wind=Weak,其他的有Wind=Strong。由于按照属性Wind分类14个样例得到的信息增益可以计算如下。
Values(Wind)=Weak,Strong
S=[9+,5-]
SWeak←[6+,2-]
Sstrong←[3+,3-]
=Entropy(S)-(8/14)Entropy(SWeak)-(6/14)Entropy(Sstrong)
=0.940-(8/14)0.811-(6/14)1.00
=0.048
3.举例
- 首先计算四个属性的信息增益:
Gain(S,Outlook)=0.246
Gain(S,Humidity)=0.151
Gain(S,Wind)=0.048
Gain(S,Temperature)=0.029
根据信息增益标准,属性Outlook在训练样例上提供了对目标属性PlayTennis的最佳预测。
Ssunny ={D1,D2,D8,D9,D11}
Gain(Ssunny,Humidity)=0.970-(3/5)0.0-(2/5)0.0=.970
Gain(Ssunny, Temperature)=0.970-(2/5)1.0-(2/5)1.0-(1/5)0.0=.570
Gain(Ssunny ,Wind)=0.970-(2/5)1.0-(3/5).918=.019
五.决策树学习中的假设空间搜索
ID3算法中的假设空间包含所有的决策树,它是关于现有属性的有限离散值函数的一个完整空间。
当变了决策树空间时,ID3仅维护单一的当前假设。
基本的ID3算法在搜索中不进行回溯。
ID3算法在搜索的每一步都使用当前的所有训练样例,以统计为基础觉得怎样简化以前的假设。
关于C4.5决策树 可以参考 http://www.cnblogs.com/zhangchaoyang/articles/2842490.html
转载于:https://www.cnblogs.com/jiangu66/p/3221712.html
机器学习中的决策树算法相关推荐
- How To Implement The Decision Tree Algorithm From Scratch In Python (从零开始在Python中实现决策树算法)
How To Implement The Decision Tree Algorithm From Scratch In Python 原文作者:Jason Brownlee 原文地址:https:/ ...
- 机器学习算法之决策树算法
决策树 综述 决策树(Decision Tree)算法是一种基本的分类与回归方法,根据数据的属性采用树状结构建立决策模型.决策树模型常常用来解决分类和回归问题.常见的算法包括CART(Classifi ...
- 从零开始学习机器学习五:决策树算法特征工程
决策树&特征工程 目标 1 简介 1.1 认识决策树 2 分类原理 2.1 熵 2.2 决策树的划分依据一-信息增益 2.3 决策树的划分依据二-信息增益率 2.4 决策树的划分依据三-基尼值 ...
- Python中应用决策树算法预测客户等级
机器学习越来越多地在企业应用,本文跟大家分享一个采用python,应用决策树算法对跨国食品超市顾客等级进行预测的具体案例.如果想先行了解决策树算法原理,可以阅读文章决策树-ID3算法和C4.5算法. ...
- 机器学习故事汇-决策树算法
机器学习故事汇-决策树 [咱们的目标]系列算法讲解旨在用最简单易懂的故事情节帮助大家掌握晦涩无趣的机器学习,适合对数学很头疼的同学们,小板凳走起! 决策树模型是机器学习中最经典的算法之一啦,用途之广泛 ...
- Python机器学习--分类\回归--决策树算法
决策树算法类型 决策树是一系列算法,而不是一个算法. 决策树包含了 ID3分类算法,C4.5分类算法,Cart分类树算法,Cart回归树算法. 决策树既可以做分类算法,也可以做回归算法.因此决策树既可 ...
- 【机器学习入门】决策树算法(四):CART算法(Classification and Regression Tree)
CART算法的简介: CART(Classification and Regression Tree)算法,即分类回归树算法,也是决策树构建的一种常用算法,CART的构建过程采用的是二分循环分割的方法 ...
- 徒手写代码之《机器学习实战》-----决策树算法(2)(使用决策树预测隐形眼镜类型)
使用决策树预测隐形眼镜类型 说明: 将数据集文件 'lenses.txt' 放在当前文件夹 from math import log import operator 熵的定义 "" ...
- python中id3决策树算法_ID3决策树算法实现(Python版)
1 #-*- coding:utf-8 -*- 2 3 from numpy import * 4 importnumpy as np5 importpandas as pd6 from math i ...
- 机器学习Sklearn实战——决策树算法
sklearn-str类型数据量化操作 OrdinalEncoder import numpy as np import pandas as pd from sklearn.neighbors imp ...
最新文章
- select计数语句_从零开始学 MySQL SELECT 语句详解
- Linux查看系统各类信息
- php seaslog安装,浅谈win10下安装php seaslog扩展的方法
- 一图看懂华为云DevCloud如何应对敏捷开发的测试挑战
- 企业主要培养三大方向的思考习惯
- Altlas M1 and Tips of Debugger Visualizers
- Git Tag 使用
- 计算机博士复试英语自我介绍,博士生复试自我介绍的英文
- SSIM和PSNR计算
- CString提取数字
- 西安大唐提车游记——感受古都容颜
- 史丰收速算-第五届蓝桥杯省赛
- css module模组化
- 刚体“下落速度“与“质量“无关
- 【练习】苏宁易购注册界面的实现
- 8253(8254)计时/计数器简介
- sql脱敏(身份证、姓名、手机号)
- python爬虫网易云_Python爬虫网易云音乐Top50热门歌单
- 2022年互联网直播行业研究报告
- Hibernate注解详解(超全面)
热门文章
- java 游戏得分排行_以编程方式更改文本以统一显示游戏屏幕上的得分
- 如何在Git上创建工程,演示在Git中创建项目
- 8.4完成服务(Completion Services)
- 电子相册系统(六)相片列表显示
- 【渝粤教育】国家开放大学2019年春季 0757-22T经济法基础实务 参考试题
- 【渝粤教育】电大中专品牌管理与推广 (3)作业 题库
- 线性模型第2讲:岭回归与分类
- 求解偏微分方程开源有限元软件deal.II学习--Step 8
- python的重试库tenacity用法以及类似库retry、requests实现
- 聚焦改变字体,背景颜色