ML之监督学习算法之分类算法一 ——— 决策树算法
一、概述
决策树(decision tree)的一个重要任务是为了数据中所蕴含的知识信息,因此决策树可以使用不熟悉的数据集合,并从中提取出一系列规则,在这些机器根据数据创建规则时,就是机器学习的过程。
二、决策树的构造
决策树:
优点:计算复杂度不高, 输出结果易于理解, 对中间值的缺失不敏感, 可以处理不相关特征数据。
缺点: 可能会产生过度匹配问题。
适用数据类型:数值型和标称型
在构造决策树时, 我们需要解决的第一个问题就是, 当前数据集上哪个特征在划分数据分类时起决定性作用。 为了找到决定性的特征, 划分出最好的结果, 我们必须评估每个特征。 完成测试之后, 原始数据集就被划分为几个数据子集。 这些数据子集会分布在第一个决策点的所有分支上;
决策树的一般流程
1. 收集数据: 可以使用任何方法。
2. 准备数据: 树构造算法只适用于标称型数据, 因此数值型数据必须离散化。
3. 分析数据: 可以使用任何方法, 构造树完成之后, 我们应该检查图形是否符合预期。
4. 训练算法: 构造树的数据结构。
5. 测试算法: 使用经验树计算错误率。
6. 使用算法: 此步骤可以适用于任何监督学习算法, 而使用决策树可以更好地理解数据的内在含义。
涉及的算法:
二分法:一些决策树算法采用二分法划分数据,
ID3: 而我们将适用ID3算法划分数据集 , ID3算法更多信息了解
C4.5: ID3的一个改进, 比ID3准确率高且快, 可以处理连续值和有缺失值的feature
CRAT: 使用基尼指数的划分准则,通过在每个步骤最大限度降低不纯洁度, CART能够处理孤立点以及对空缺值的处理;
信息增益:
划分数据集的大原则是: 将无序的数据变得更加有序。 我们可以使用多 种方法划分数据集, 但是每种方法都有各自的优缺点。 组织杂乱无章数据的一种方法就是使用信息论度量信息, 信息论是量化处理信息的分支 科学。 我们可以在划分数据前后使用信息论量化度量信息的内容。
在划分数据集之前之后信息发生的变化称为信息增益, 知道如何计算信 息增益, 我们就可以计算每个特征值划分数据集获得的信息增益, 获得 信息增益最高的特征就是最好的选择。
熵:
为了计算熵(entropy), 我们需要计算所有类别所有可能值包含的信息期望值, 通过下面的公式得到:
符号xi 的信息定义为:
其中p(xi)是选择该分类的概率
熵的单位是bit, 用来衡量信息的多少;从计算熵的公式来看:
变量的不确定性越大, 熵就越大;
计算完信息熵后,我们便可以得到数据集的无序程度。我们将对每个特征划分数据集的结果计算一次信息熵,然后判断哪个特征划分数据集是最好的划分方式(根据信息熵判断,信息熵越小,说明划分效果越好)
三、ID3算法
选择属性判断节点;
信息获取量(Information Gain): Gain(A)= Info(D) - Infor_A(D) , 通过A来作为节点分类获取了多少信息;
ML之监督学习算法之分类算法一 ——— 决策树算法相关推荐
- NLP专栏简介:数据增强、智能标注、意图识别算法|多分类算法、文本信息抽取、多模态信息抽取、可解释性分析、性能调优、模型压缩算法等
NLP专栏简介:数据增强.智能标注.意图识别算法|多分类算法.文本信息抽取.多模态信息抽取.可解释性分析.性能调优.模型压缩算法等 专栏链接:NLP领域知识+项目+码源+方案设计 订阅本专栏你能获得什 ...
- 算法杂货铺——分类算法之决策树(Decision tree)
算法杂货铺--分类算法之决策树(Decision tree) 2010-09-19 16:30 by T2噬菌体, 88978 阅读, 29 评论, 收藏, 编辑 3.1.摘要 在前面两篇文章中,分别 ...
- 算法杂货铺——分类算法之贝叶斯网络(Bayesian networks)
算法杂货铺--分类算法之贝叶斯网络(Bayesian networks) 2010-09-18 22:50 by T2噬菌体, 66011 阅读, 25 评论, 收藏, 编辑 2.1.摘要 在上一篇文 ...
- k近邻算法(KNN)-分类算法
k近邻算法(KNN)-分类算法 1 概念 定义:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别. k-近邻算法采用测量不同特征值之间的 ...
- 数据挖掘算法——常用分类算法总结
常用分类算法总结 分类算法 NBC算法 LR算法 SVM算法 ID3算法 C4.5 算法 C5.0算法 KNN 算法 ANN 算法 分类算法 分类是在一群已经知道类别标号的样本中,训练一种分类器,让其 ...
- 分类算法列一下有多少种?应用场景?分类算法介绍、常见分类算法优缺点、如何选择分类算法、分类算法评估
分类算法 分类算法介绍 概念 分类算法 常见分类算法 NBS LR SVM算法 ID3算法 C4.5 算法 C5.0算法 KNN 算法 ANN 算法 选择分类算法 分类算法性能评估 分类算法介绍 概念 ...
- ML之监督学习算法之分类算法一 ———— k-近邻算法(最邻近算法)
一.概述 最近邻规则分类(K-Nearest Neighbor)KNN算法 由Cover 和Hart在1968年提出了最初的邻近算法, 这是一个分类(classification)算法 输入基于实例的 ...
- ML算法基础——分类算法-决策树、随机森林
文章目录 1.决策树 1.1 认识决策树 1.2 信息论基础-银行贷款分析 1.2.1 信息论基础-信息熵 1.2.2 决策树的划分依据之一-信息增益 1.3 泰坦尼克号乘客生存分类 1.3.1 sk ...
- 常见的分类算法及分类算法的评估方法
文章目录 贝叶斯分类法(Bayes) 决策树(Decision Tree) 支持向量机(SVM) K近邻(K-NN) 逻辑回归(Logistics Regression) 线性回归和逻辑回归的区别 神 ...
最新文章
- python3 内置函数map 返回的迭代器转为列表
- 下围棋so easy ,AlphaZero开始玩量子计算!
- Intent和PendingIntent的区别
- 【Android UI设计与开发】第07期:底部菜单栏(二)Fragment的详细介绍和使用方法
- Git入门之上传本地项目至Github(一)
- 判断是否是完全二叉树_【数据结构】二叉树高频考试题目【代码模板】!
- CentOS7安装Hadoop2.7完整流程
- cad图纸问号怎么转换文字_CAD打开图纸后字体显示为问号,这样解决治标治本(送)...
- 找CTO杜仲:再谈中年危机和应对策略
- PHP学习总结(5)——PHP入门篇之PHP字符串
- k8s核心技术-Service概述_Service如何实现负载均衡_提供虚拟IP_以及Po的IP注册和发现---K8S_Google工作笔记0031
- 右侧交易稳健获利的指标
- Python中用format函数格式化字符串的用法(2.7版本讲解哦!)
- 2018.12月问题整理杂记
- 如何实现甘特图独立安装
- Matlab遗传算法工具箱的使用(解决连续性优化问题)
- vmware之centos7 删除分区
- 汽车充电桩检测设备TK4860C交流充电桩检定装置
- 四种形态图解_波浪理论:调整浪的四种形态(图解)
- 升级宽带到500M光纤
热门文章
- GDCM:gdcm::Element的测试程序
- boost::core模块default_allocator
- boost::contract模块实现public的测试程序
- Boost:BOOST_ASSERT_MSG扩展的用法测试程序
- DCMTK:类DcmSigned64bitVeryLong的测试程序
- VTK:可视化算法之LOxSeeds
- VTK:结构化网格之StructuredGridOutline
- OpenCV findContours和drawContours用法的实例(附完整代码)
- OpenGL toon shading卡通着色的实例
- C语言中基本的不平衡二进制搜索树实现(附完整源码)