当前位置:首页 > 文章列表 > 科技周边 > 人工智能 > 机器学习决策树实战演练

机器学习决策树实战演练

来源:51CTO.COM 2023-04-16 16:55:52 0浏览 收藏

学习知识要善于思考,思考,再思考!今天golang学习网小编就给大家带来《机器学习决策树实战演练》,以下内容主要包含等知识点,如果你正在学习或准备学习科技周边,就都不要错过本文啦~让我们一起来看看吧,能帮助到你就更好了!

译者 | 朱先忠

审校 | 孙淑娟

机器学习中的决策树

现代机器学习算法正在改变我们的日常生活。例如,像BERT这样的大型语言模型正在为谷歌搜索提供支持,GPT-3正在为许多高级语言应用程序提供支持。

另一方面,今天构建复杂的机器学习算法比以往任何时候都容易得多。然而,无论机器学习算法有多么复杂,都属于把它们归纳为以下学习类别之一:

  • 监督学习
  • 无监督学习
  • 半监督学习
  • 强化学习

其实,决策树算是最古老的有监督的机器学习算法之一,可以解决广泛的现实问题。研究表明,决策树算法的最早发明可以追溯到1963年。

接下来,让我们深入研究一下这个算法的细节,看看为什么这类算法今天仍然广为流行。

什么是决策树?

决策树算法是一种流行的有监督机器学习算法,因为它处理复杂数据集的方法相对简单得多。决策树的名字来源于它们与“树”这种结构的相似性;树结构包括以节点和边缘形式存在的根、枝和叶等几个组成部分。它们用于决策分析,很像一个基于if-else的决策流程图,这些决策会产生所需的预测。决策树能够学习这些if-else决策规则,从而拆分数据集,最后生成树状数据模型。

决策树在分类问题的离散结果预测和回归问题的连续数值结果预测中得到了应用。多年来科学家们开发出了许多不同的算法,如CART、C4.5和ensemble算法,如随机森林和梯度增强树等。

机器学习决策树实战演练

剖析决策树的各个组成部分

决策树算法的目标是预测输入数据集的结果。树的数据集共划分为三种形式:属性、属性的值和要预测的种类。与任何监督学习算法一样,数据集被划分为训练集和测试集两种类型。其中,训练集定义了算法学习并应用于测试集的决策规则。

在聚集介绍决策树算法的步骤之前,让我们先来了解一下决策树的组成部分:

  • 根节点:它是决策树顶部的起始节点,包含所有属性值。根节点根据算法学习到的决策规则分成决策节点。
  • 分支:分支是对应于属性值的节点之间的连接器。在二进制拆分中,分支表示真路径和假路径。
  • 决策节点/内部节点:内部节点是根节点和叶节点之间的决策节点,对应于决策规则及其答案路径。节点表示问题,分支显示基于这些问题的相关答案的路径。
  • 叶节点:叶节点是表示目标预测的终端节点。这些节点不会进一步分裂。

以下是决策树及其上述组件的可视化表示,决策树算法经过以下步骤以达到所需的预测:

  • 算法从具有所有属性值的根节点开始。
  • 根节点根据算法从训练集中学习到的决策规则分成决策节点。
  • 基于问题及其答案路径,通过分支/边缘传递内部决策节点。
  • 继续前面的步骤,直到到达叶节点或使用了所有属性。

为了在每个节点上选择最佳属性,将根据以下两个属性选择度量之一进行拆分:

  • 基尼系数Gini index测量基尼不纯度(Gini Impurity),以指示算法对随机类别标签进行错误分类的可能性。
  • 信息增益测量分割后熵的改善,以避免预测类的50/50分割。熵是给定数据样本中不纯度的数学度量。决策树中的混沌状态接近50/50的划分表示。

使用决策树算法的花卉分类案例

在了解了上述基础知识后,接下来让我们着手实现一个应用案例。在本文中,我们将使用Scikit学习库在Python中实现决策树分类模型。

关于数据集的简单说明

本教程的数据集是一个鸢尾花数据集。Scikit开源库中已经内置了这个数据集,所以不需要开发人员再从外部加载它。该数据集共包括四个鸢尾属性及相应的属性值,这些属性将被输入到模型中,以便预测三种类型的鸢尾花之一。

  • 数据集中的属性/特征:萼片长度、萼片宽度、花瓣长度、花瓣宽度。
  • 数据集中的预测标签/花卉类型:Setosis、Versicolor、Virginica。

接下来,将给出决策树分类器基于python语言实现的分步代码说明。

导入库

首先,通过下面的一段代码导入执行决策树实现所需的库。

import pandas as pd
import numpy as np
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier

加载鸢尾花(Iris)数据集

以下代码展示了使用load_iris函数加载存储到data_set变量中的sklearn.dataset库中的鸢尾花数据集。接下来的两行代码将实现打印鸢尾花类型和特征信息。

data_set = load_iris()
print('Iris plant classes to predict: ', data_set.target_names)
print('Four features of iris plant: ', data_set.feature_names)

机器学习决策树实战演练

分离属性和标签

下面的代码行实现了将花的特性和类型信息分离开来,并将它们存储在相应的变量中。其中,shape[0]函数负责确定存储在X_att变量中的属性数;数据集中的属性值总数为150。

#提取花的特性和类型信息
X_att = data_set.data
y_label = data_set.target
print('数据集中总的样本数:', X_att.shape[0])

其实,我们还可以创建一个可视化表格来展示数据集中的一部分属性值,方法是将X_att变量中的值添加到panda库中的DataFrame函数中即可。

data_view=pd.DataFrame({
'sepal length':X_att[:,0],
'sepal width':X_att[:,1],
'petal length':X_att[:,2],
'petal width':X_att[:,3],
'species':y_label
})
data_view.head()

拆分数据集

以下代码展示了使用train_test_split函数将数据集拆分为训练集和测试集两部分。其中,此函数中的random_state参数用于为函数提供随机种子,以便在每次执行时为给定数据集提供相同的结果;test_size表示测试集的大小;0.25表示拆分后测试数据占25%而训练数据占75%。

#数据集拆分为训练集和测试集两部分
X_att_train, X_att_test, y_label_train, y_label_test = train_test_split(X_att, y_label, random_state = 42, test_size = 0.25)

应用决策树分类函数

下面的代码通过使用DecisionTreeClassifier函数创建一个分类模型​来实现棵决策树,分类标准设置为“entropy”方式。该标准能够将属性选择度量设置为信息增益Information gain)。然后,代码将模型与我们的属性和标签训练集相匹配。

#应用决策树分类器
clf_dt = DecisionTreeClassifier(criterion = 'entropy')
clf_dt.fit(X_att_train, y_label_train)

计算模型精度

下面的代码负责计算并打印决策树分类模型在训练集和测试集上的准确性。为了计算准确度分数,我们使用了predict函数。测试结果是:训练集和测试集的准确率分别为100%和94.7%。

print('Training data accuracy: ', accuracy_score(y_true=y_label_train, y_pred=clf_dt.predict(X_att_train)))
print('Test data accuracy: ', accuracy_score(y_true=y_label_test, y_pred=clf_dt.predict(X_att_test)))

真实世界中的决策树应用程序

当今社会,机器学习决策树在许多行业的决策过程中都得到广泛应用。其中,决策树的最常见应用首先是在金融和营销部门,例如可用于如下一些子领域:

  • 贷款批准
  • 支出管理
  • 客户流失预测
  • 新产品的可行性分析,等等。

如何改进决策树?

作为本文决策树主题讨论的总结,我们有充分的理由安全地假设:决策树的可解释性仍然很受欢迎。决策树之所以容易理解,是因为它们可以被人类以可视化方式展现并便于解释。因此,它们是解决机器学习问题的直观方法,同时也能够确保结果是可解释的。机器学习中的可解释性是我们过去讨论过的一个小话题,它也与即将到来的人工智能伦理主题存在密切联系。

与任何其他机器学习算法一样,决策树自然也可以加以改进,以避免过度拟合和出现过于偏向于优势预测类别。剪枝和ensembling技术是克服决策树算法缺点方案最常采用的方法。决策树尽管存在这些缺点,但仍然是决策分析算法的基础,并将在机器学习领域始终保持重要位置。

译者介绍

朱先忠,51CTO社区编辑,51CTO专家博客、讲师,潍坊一所高校计算机教师,自由编程界老兵一枚。

原文标题:An Introduction to Decision Trees for Machine Learning,作者:Stylianos Kampakis

今天带大家了解了的相关知识,希望对你有所帮助;关于科技周边的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

版本声明
本文转载于:51CTO.COM 如有侵犯,请联系study_golang@163.com删除
微软将贴纸带到 Windows 11 的桌面微软将贴纸带到 Windows 11 的桌面
上一篇
微软将贴纸带到 Windows 11 的桌面
4 款iPhone 15 模型曝光与iPhone 14 相比大有不同
下一篇
4 款iPhone 15 模型曝光与iPhone 14 相比大有不同
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    542次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    508次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    497次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    484次学习
查看更多
AI推荐
  • SEO标题魔匠AI:高质量学术写作平台,毕业论文生成与优化专家
    魔匠AI
    SEO摘要魔匠AI专注于高质量AI学术写作,已稳定运行6年。提供无限改稿、选题优化、大纲生成、多语言支持、真实参考文献、数据图表生成、查重降重等全流程服务,确保论文质量与隐私安全。适用于专科、本科、硕士学生及研究者,满足多语言学术需求。
    19次使用
  • PPTFake答辩PPT生成器:一键生成高效专业的答辩PPT
    PPTFake答辩PPT生成器
    PPTFake答辩PPT生成器,专为答辩准备设计,极致高效生成PPT与自述稿。智能解析内容,提供多样模板,数据可视化,贴心配套服务,灵活自主编辑,降低制作门槛,适用于各类答辩场景。
    35次使用
  • SEO标题Lovart AI:全球首个设计领域AI智能体,实现全链路设计自动化
    Lovart
    SEO摘要探索Lovart AI,这款专注于设计领域的AI智能体,通过多模态模型集成和智能任务拆解,实现全链路设计自动化。无论是品牌全案设计、广告与视频制作,还是文创内容创作,Lovart AI都能满足您的需求,提升设计效率,降低成本。
    35次使用
  • 美图AI抠图:行业领先的智能图像处理技术,3秒出图,精准无误
    美图AI抠图
    美图AI抠图,依托CVPR 2024竞赛亚军技术,提供顶尖的图像处理解决方案。适用于证件照、商品、毛发等多场景,支持批量处理,3秒出图,零PS基础也能轻松操作,满足个人与商业需求。
    42次使用
  • SEO标题PetGPT:智能桌面宠物程序,结合AI对话的个性化陪伴工具
    PetGPT
    SEO摘要PetGPT 是一款基于 Python 和 PyQt 开发的智能桌面宠物程序,集成了 OpenAI 的 GPT 模型,提供上下文感知对话和主动聊天功能。用户可高度自定义宠物的外观和行为,支持插件热更新和二次开发。适用于需要陪伴和效率辅助的办公族、学生及 AI 技术爱好者。
    44次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码