白话说大数据算法C4.5

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 现在,如果天气晴朗(Sunny)或多雨(Rainy),我们要么去打网球(Play tennis),要么待在家里(Stay in)。但是,如果外面多风(Windy),我会检查我拥有多少钱。如果我很有钱(Rich),我会去购物(Shopping),或者去看电影(Cinema)。

  C4.5算法在数据挖掘中用作决策树分类器,可用于基于特定数据样本(单变量或多变量预示变量)生成决策。

  因此,在我们直接深入研究C4.5之前,让我们先讨论一下决策树以及它们如何用作分类器。

  决策树

30de2729aa22d6b82e55d19f4717aa81

  决策树如上图所示。假设您想计划今天的活动,但您面临一些可能影响最终决定的不同条件。

  在上图中,我们注意到影响决策的主要因素之一是父母到访(Parent Visiting)。如果确实如此,那么我们会做出快速决定--选择去电影院。如果他们不来怎么办?

  这开辟了一系列其他可能。现在,如果天气晴朗(Sunny)或多雨(Rainy),我们要么去打网球(Play tennis),要么待在家里(Stay in)。但是,如果外面多风(Windy),我会检查我拥有多少钱。如果我很有钱(Rich),我会去购物(Shopping),或者去看电影(Cinema)。

  树根始终是具有成本函数最小值的变量。在这个例子中,父母访问的概率是50%,无须多虑,一半一半是很容易的决策。但是如果选择天气作为“根”呢?那么将有33.33%的可能性发生某种结果,这可能会增加我们做出错误决定的机会,因为需要考虑更多的测试用例。

  如果我们通过信息增益和熵的概念,那将更容易理解。

  信息增益

  如果您已经获得了加班信息,这有助于您准确预测某些事情是否会发生,那么您预测的事情信息就不是新信息。但是,如果情况有变并且出现了意想不到的结果,那么它就算是有用和必要的信息。

  类似的是信息增益的概念。

  您对某个主题了解得越多,您就越不了解它的新信息。更简洁:如果你知道一个事件是非常可能的,那么当事件发生时就不足为奇了,也就是说,它提供的实际情况信息很少。

  从上面的陈述中我们可以表明,获得的信息量与事件发生的概率成反比。我们还可以说随着熵增加,信息增益减少。这是因为熵指的是事件的概率。

  假设我们正在看抛硬币。猜中双面平整的硬币任何一面的概率为50%。如果硬币是不平整的,那么获得某面(头或尾部)的概率是1.00,然后我们说熵是最小的,因为目前没有任何类型的试验可以预测我们硬币投掷的结果。

29be4513ab9768984c3f548a4bb5eb4d

  在下面的绘制图中,我们注意到由于特定事件的最大不确定性而获得的最大信息量是当每个事件的概率相等时。这里,p=q=0.5

  E=系统事件的熵

  p=头部作为结果的概率

  q=尾部作为结果的概率

de5ef6792800bcbe011a29ab84a8519b

  在决策树的情况下,必须使节点对齐,所以熵随着向下分裂而减小。这基本上意味着更多的分裂是适当的,做出明确的决定变得更容易。

  因此,我们针对每种分裂可能性检查每个节点。信息增益比是观测值与观测总数之比(m/N=p)和(n/N=q),其中m+n=N且p+q=1。在分裂之后,如果下一个节点的熵小于分裂之前的熵,并且如果该值与用于分裂的所有可能测试用例相比最小,则该节点被分裂成其最纯的成分。

  在我们的例子中,我们发现与其他选项相比,父母访问以更大的比例减少熵。因此,我们选择这个选项。

  修剪

  我们原始示例中的决策树非常简单,但是当数据集很大并且需要考虑更多变量时,情况并非如此。这是需要修剪的地方。修剪是指,在我们的决策树中删除那些我们认为对我们的决策过程没有显着贡献的分支。

  让我们假设我们的示例数据有一个名为“车辆”的变量,当它具有值“富裕”(Rich)时,它与条件“钱”(Money)相关或是其衍生。现在,如果车辆可用,我们将通过汽车购物(shopping),但如果没有,我们可以通过任何其他交通方式购物。但最终我们去购物。

  这意味着“车辆”变量没有多大意义,可以在构造决策树时排除。

  修剪的概念使我们能够避免过度拟合回归或分类模型,以便对于少量数据样本,在生成模型时摒除测量误差。

  虚拟代码

  C4.5优于其他决策树系统的优势:

  1.该算法固有地采用单通道修剪过程来减轻过度拟合。

  2.它可以与离散数据和连续数据一起使用

  3.C4.5可以很好地处理不完整数据的问题

  4.也许C4.5并不是最好的算法,但在某些情况下确实有用。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
29天前
|
机器学习/深度学习 算法 搜索推荐
从理论到实践,Python算法复杂度分析一站式教程,助你轻松驾驭大数据挑战!
【10月更文挑战第4天】在大数据时代,算法效率至关重要。本文从理论入手,介绍时间复杂度和空间复杂度两个核心概念,并通过冒泡排序和快速排序的Python实现详细分析其复杂度。冒泡排序的时间复杂度为O(n^2),空间复杂度为O(1);快速排序平均时间复杂度为O(n log n),空间复杂度为O(log n)。文章还介绍了算法选择、分而治之及空间换时间等优化策略,帮助你在大数据挑战中游刃有余。
53 4
|
29天前
|
存储 分布式计算 算法
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
54 0
|
3月前
|
机器学习/深度学习 自然语言处理 算法
【数据挖掘】金山办公2020校招大数据和机器学习算法笔试题
金山办公2020校招大数据和机器学习算法笔试题的解析,涵盖了编程、数据结构、正则表达式、机器学习等多个领域的题目和答案。
90 10
|
1天前
|
缓存 算法 大数据
大数据查询优化算法
【10月更文挑战第26天】
5 1
|
8天前
|
机器学习/深度学习 数据采集 算法
大数据中缺失值处理使用算法处理
【10月更文挑战第21天】
10 3
|
7天前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
1月前
|
机器学习/深度学习 算法 数据可视化
【机器学习】ID3、C4.5、CART 算法
【机器学习】ID3、C4.5、CART 算法
|
4月前
|
机器学习/深度学习 算法 搜索推荐
从理论到实践,Python算法复杂度分析一站式教程,助你轻松驾驭大数据挑战!
【7月更文挑战第22天】在大数据领域,Python算法效率至关重要。本文深入解析时间与空间复杂度,用大O表示法衡量执行时间和存储需求。通过冒泡排序(O(n^2)时间,O(1)空间)与快速排序(平均O(n log n)时间,O(log n)空间)实例,展示Python代码实现与复杂度分析。策略包括算法适配、分治法应用及空间换取时间优化。掌握这些,可提升大数据处理能力,持续学习实践是关键。
120 1
|
4月前
|
存储 监控 算法
「AIGC算法」大数据架构Lambda和Kappa
**Lambda与Kappa架构对比:** Lambda提供批处理和实时处理,保证数据最终一致性,但维护复杂。Kappa简化为单一流处理,易于维护,适合实时场景,但可能增加实时处理压力,影响稳定性。选择时考虑数据一致性、系统维护、成本和实时性需求。
96 0
「AIGC算法」大数据架构Lambda和Kappa
|
5月前
|
分布式计算 算法 Java
阿里云ODPS PySpark任务使用mmlspark/synapseml运行LightGBM进行Boosting算法的高效训练与推理
阿里云ODPS PySpark任务使用mmlspark/synapseml运行LightGBM进行Boosting算法的高效训练与推理