机器学习之决策树详解与实践

机器人开发项目经验回顾之行为树使用指南 本项目基于BehaviorTree.CPP V4框架实现AGV机器人决策引擎,采用XML配置定义行为树结构,包含14种自定义节点和双层决策架构(空闲管理与任务管理)。系统通过DataManager、TaskManager等组件获取实时状态,支持热更新的XML配置策略无需重新编译即可修改业务逻辑。相比传统状态机,行为树模块化强、复用性高,更适合工业AGV频繁变更的场景。 阅读详情

决策树是用于分类和预测的一种树结构,决策树方法常用于类别属性的数据集的分类和预测,对于数值属性的数据集,可以经过数据预处理后使用。

决策树的建立是基于样本的递归的学习过程,每个样本都是具有确定的属性的数据,决策树就是基于样本的各属性建立起来的。决策树分为根节点、内部节点和叶节点。从根节点出发,自顶向下,构建分支和内部节点,在内部节点进行属性值的比较,并根据属性的不同取值确定从该节点向下的分支,最终在叶节点给出类别。整棵树就是一个规则集,任意样本都可以从根节点出发,根据样本各属性的取值,找到对应的树中的分支(规则),从而得到样本的类别。

具体方法是:选择一个属性置于根节点,根据这个属性的不同取值将测试样本集划分成多个子集,一个子集对应一个属性取值,然后在每个分支上递归的重复这个过程,直到在一个节点上的所有样本具有相同的类别,即到达叶子结点。

在上述构建方法中,关键的问题在于如何选择在根节点、中间节点进行划分的属性。一个基本的原则是构建较小的决策树,使得上述递归的过程尽早停止,即尽早完成分类。要达到上述目的,需要度量每个节点对应的样本子集的纯度,即样本子集中类别分布的情况,类别数越少,各类别分布越不均匀,纯度越高。信息熵(entropy)是度量集合纯度的最常用的一种指标,定义如下:

在选择划分属性时,分别计算上一级节点对应的样本子集的信息熵和选择各属性划分后该样本子集的信息熵,二者差值(信息增益)最大划分的对应的属性即为划分属性。

温度(T)

起风(W)

下雨(R)

湿度)(H

出去玩(O)

1

0

0

1

1

1

0

1

1

0

0

1

0

0

0

1

1

0

0

1

1

0

0

0

1

1

1

0

0

1

Gain(o,t)=0.918-0.809=0.109

Gain(o,w)=0.918-0.459=0.459(root)

Gain(o,r)=0.918-0.602=0.316

Gain(o,h)=0.918-0.874=0.044

起风(W)=1,信息增益最大的是温度(T)

温度(T)

下雨(R)

湿度(H)

出去玩(O)

0

0

0

0

1

0

0

1

1

0

0

1

起风(W)=0,,信息增益最大的是下雨(R)

温度(T)

下雨(R)

湿度(H)

出去玩(O)

1

0

1

1

1

1

1

0

1

0

0

1

ID3算法的核心就是信息增益的计算,Gain(P1,P2)=E(P1)-E(P2),ID3算法属于贪心算法,用来构建树

 

 

import org.apache.spark.mllib.linalg.Vectors
import org.apache.spark.mllib.regression.LabeledPoint
import org.apache.spark.mllib.tree.DecisionTree
import org.apache.spark.mllib.tree.configuration.Algo
import org.apache.spark.mllib.tree.impurity.Entropy
import org.apache.spark.{SparkConf, SparkContext}

/**
  * Created by changyaobin.
  */

object DecisionTreeTest {
 
def main(args: Array[String]): Unit = {
   
val conf = new SparkConf().setAppName("DesionTrain").setMaster("local[2]")
   
val sc = new SparkContext(conf)
   
//    加载数据
   
val data = sc.textFile("f://physicalCheck.csv").map(lines => {
     
val fields = lines.split(",")
     
val lable = fields(fields.length - 1).toDouble
     
val features = fields.slice(1, fields.length - 1).map(x => x.toDouble)
      LabeledPoint(lable, Vectors.dense(features))
    })
   
val labe = data.map(_.label)
   
//    了解决策树的参数
   
val model = DecisionTree.train(data, Algo.Classification, Entropy, 5, 9)


   
val predictionAndLabel = data.map { point =>
     
val score = model.predict(point.features)
      (score)
    }
    println(predictionAndLabel.collect().toBuffer)
   
val acc = labe.zip(predictionAndLabel).filter(x => {
      x._1.equals(x._2)
    }).count() / labe.count().toDouble
    println(
"DT预测患者在医院花费的准确率是")
    println(acc)
  }

}

计算机毕业设计之基于决策树的饮品推荐系统的设计与实现 本文介绍了基于决策树的饮品推荐系统的设计与实现。该系统的意义在于能够根据用户的特征进行个性化饮品推荐,提高了饮品的销售量,且具有较高的实用性和扩展性,方便继续优化系统性能,提高推荐效果,为饮品销售提供更好的服务。用户进入本系统可查看系统主页信息,可视化主页面展示分为7块区域,顶部是系统的名称,下面划分为6个区域,,上部分3个区域主要是饮品类别统计区域,饮品信息列表展示区域,饮品销售排行区域,下部分3个区域分别饮品购买趋势展示区域、饮品推荐区域和饮品购买性别展示区域,具体如图。后台用来提供前台所用的。 阅读详情

相关推荐

机器学习第五章之决策树模型

机器学习专题系列

wangyutao12345的博客 5185

机器学习-决策树(基于Python实现)

机器学习-决策树(基于Python实现) 目录机器学习-决策树(基于Python实现)概述设计代码设计方案ID3C4.5CART其他参考资料 概述 决策树(decision tree)是机器学习中一种非常重要的模型,主要的策略是分而治之。 决策树一般被用于分类问题(分类问题即对应离散的分布律,可以直观地求对应的其信息熵),但有时也可用于回归任务(如CART回归树)。 单变量决策树(univariate decision tree)的分类边界总是垂直于坐标轴的(如:敲声=清脆?, 密度<3.0560?)

ywsdxxzj的博客 1482

机器学习——决策树模型:Python实现

机器学习——决策树模型:Python实现欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你

qq_34357269的博客 8772

GBDT算法简述

提升决策树GBDT 梯度提升决策树算法是近年来被提及较多的一个算法,这主要得益于其算法的性能,以及该算法在各类数据挖掘以及机器学习比赛中的卓越表现,有很多人对GBDT算法进行了开源代码的开发,比较火的是陈天奇的XGBoost和微软的LightGBM 一、监督学习 1、 监督学习的主要任务 监督学习是机器学习算法中重要的一种,对于监督学习,假设有m个训练样本: 其中, ,如...

weixin_34034670的博客 291

【机器学习】九大决策树模型总结

这篇博客深入探讨了九种不同的决策树模型,每种模型都拥有其独特的特点和应用场景。我将带您了解一些经典的模型,让你理解它们的工作原理,并在实践中灵活运用它们。

chunyang的博客 3612

24、机器学习理论与实践:SVM和决策树算法详解

本博客详细介绍了机器学习中的两种经典算法——支持向量机(SVM)和决策树的理论基础与实践应用。首先,讨论了线性SVM的硬间隔和软间隔优化问题,并以乳腺癌数据集为例,展示了二元分类的实际效果;随后,扩展到多类SVM,以房屋净值数据集为例进行分类分析。接着,全面解析了决策树的基本原理、类型(如回归树和分类树)、节点纯度度量方法(基尼指数、熵、信息增益),并结合ID3和C5.0算法在产品选择预测数据集上的实现进行比较。最后,探讨了SVM与决策树的适用场景及综合应用方式,并对模型融合策略进行了简要介绍。通过本博客的

kotlin6android的博客 121

GBDT算法梳理

Gradient Boosting Decision TreesGBDT简介前向分步算法负梯度拟合损失函数回归分类正则化优点与缺点sklearn 参数 GBDT简介 GBDT 是Boosting中的一大类算法,GBDT=Gradient+Boosting Desion Trees。 BDT 回归树,基本思想是:根据每个基学习器剩余的残差,即损失函数的值。在残差减少的方向上建立一个新的基学习器,...

qq_35175728的博客 615

17、信息论与机器学习中的决策树技术

本文深入介绍了信息论与机器学习中的决策树技术,涵盖了数据集的基本概念、决策树的生成算法(如ID3)、信息增益的计算、分类属性的编码方法以及使用Scikit-learn库生成决策树的过程。同时,文章分析了决策树的优势与局限性,并提出了多种优化策略,如剪枝、集成学习和特征选择。此外,还探讨了决策树在自然语言处理中的应用,如文本分类、词性标注和命名实体识别。通过整体流程图展示了决策树从数据准备到模型应用的全过程,强调了反馈优化的重要性。

corn8的博客 52

机器学习-决策树详解

决策树是什么?决策树是一种树形结构,树中每个内部节点表示一个特征上的判断,每个分支代表一个判断结果的输出,每个叶子节点代表一种分类结果决策树的建立过程1.特征选择:选取有较强分类能力的特征。2.决策树生成:根据选择的特征生成决策树。3.决策树也易过拟合,采用剪枝的方法缓解过拟合。Cart模型是一种决策树模型,它即可以用于分类,也可以用于回归。分类和回归树模型采用不同的最优化策略。Cart回归树使用平方误差最小化策略,Cart分类生成树采用的基尼指数最小化策略。criterion特征选择标准。

2201_75415080的博客 1549

【Python机器学习】——决策树

value = [6, 7] 表示在这 13 位喜剧演员中,有 6 位将获得 “NO”,而 7 位将获得 “GO”。value = [1, 7] 表示在这 8 位喜剧演员中,1 位将获得 “NO”,而 7 位将获得 “GO”。value = [1, 3] 表示在这 4 位喜剧演员中,1 位将获得 “NO”,而 3 位将获得 “GO”。value = [0, 2] 表示在这 2 位喜剧演员中,0 将获得 “NO”,而 2 将获得 “GO”。在本章中,我们将向您展示如何制作“决策树”。

玄链教育 435

机器学习之决策树:从基础到实践

机器学习之决策树:从基础到实践

编程技术探索者,分享C/C++、C#、Java、数据库等开发经验,聚焦实战技巧与AI兴趣,助力编程爱好者成长。 946

python决策树算法毕业设计_Python机器学习之决策树算法实例详解

本文实例讲述了Python机器学习之决策树算法。分享给大家供大家参考,具体如下:决策树学习是应用最广泛的归纳推理算法之一,是一种逼近离散值目标函数的方法,在这种方法中学习到的函数被表示为一棵决策树。决策树可以使用不熟悉的数据集合,并从中提取出一系列规则,机器学习算法最终将使用这些从数据集中创造的规则。决策树的优点为:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据。缺...

weixin_31755771的博客 411

“Python机器学习中的决策树算法:理论与实践“

决策树是一种监督学习算法,通过对数据集的学习,生成一棵树结构,用于模拟分类和回归问题。决策树算法的主要思想是,在决策树上选择一个属性作为分裂点,将数据集分成不同的子集,直到子集中的所有实例都属于同一类别。在生成决策树的过程中,我们需要解决三个基本问题:选择哪个属性作为分裂点、如何计算信息增益和如何处理缺失值。本文介绍了决策树算法的基本原理和实现方法,并演示了如何使用Python中的Scikit-Learn库构建、训练和测试决策树模型。决策树算法是一种简单而有效的机器学习方法,适合于处理分类和回归问题。

. 271

【机器学习15】决策树模型详解

决策树算法前言一、决策树算法的概述1.树模型2.树模型基本流程二、熵的作用三、决策树构造实例四、信息增益率和gini系数五、剪枝方法六、分类、回归任务七、树模型的可视化展示八、决策边界展示分析九、决策树预剪枝常用参数十、回归树模型总结 前言 随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的决策树的详细内容。 一、决策树算法的概述 1.树模型 决策树是一种树形结构,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一种类别。

lys_828的博客 4万+

18丨机器学习:决策树

实验1:通过sklearn来做breast_cancer数据集的决策树分类器训练 实验2:构造下面的数据,并调用前面手写代码实现决策树分类器

AIGC 2304

Python实现机器学习算法:决策树详解及实践

决策树是一种基本的分类与回归方法,它利用树结构对数据进行决策分析。其工作原理类似于人类在面对决策问题时的思维过程,它以树状图形的方式来表示决策的过程。在机器学习领域,决策树算法以其易于理解和解释的特性而广受欢迎。Scikit-Learn是Python中一个广泛使用的开源机器学习库,它提供了简单而高效的工具进行数据挖掘和数据分析。它被设计为易于使用,并且能够与更广泛科学计算生态系统(如NumPy、SciPy、Pandas等)无缝集成。在使用Scikit-Learn之前,我们需要安装它。

weixin_42511832的博客 423

决策树模型构建+调参Python代码——用决策树模型实现机器学习

决策树模型构建+调参Python代码——用决策树模型实现机器学习。

qq_41698317的博客 3528

HCMUS机器学习项目实战:ML基础与应用

本文还有配套的精品资源,点击获取 简介:该项目可能是由越南胡志明市大学的学生或教师创建,涉及机器学习的基础概念、算法和应用。它包括Jupyter Notebook的使用,涵盖了数据预处理、特征选择、模型训练与评估等关键机器学习知识点。参与者将通过实际数据集进行实践,以全面掌握机器学习技术。 1. 机器学习基础概念介绍 机器学习是一门多领域交叉学科,涉及到概率论、...

weixin_33628677的博客 953
上一篇: 医疗大数据知识库的主要功能和作用
下一篇: 机器学习之支持向量机详解与实践
常耀斌
常耀斌 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄8年 1812粉丝 611原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值