机器学习实战(视频教学版) (迟殿委王培进王兴平) (z-library.sk, 1lib.sk, z-lib.sk)
Author: 迟殿委, 王培进, 王兴平
AI
全书共分12章,内容包括机器学习概述、Python数据处理基础、Python常用机器学习库、线性回归及应用、分类算法及应用、数据降维及应用、聚类算法及应用、关联规则挖掘算法及应用、协同过滤算法及应用,最后通过3个综合实战项目(包括新闻内容分类实战、泰坦尼克号获救预测实战、中药数据分析项目实战),帮助读者对所学技能进行巩固和提升。 本书主要章节都给出了对应的示例及其详细的分析步骤,方便读者从编程中掌握机器学习基础算法及应用。
📄 File Format:
PDF
💾 File Size:
9.7 MB
8
Views
0
Downloads
0.00
Total Donations
📄 Text Preview (First 20 pages)
ℹ️
Registered users can read the full content for free
Register as a Gaohf Library member to read the complete e-book online for free and enjoy a better reading experience.
📄 Page
1
(This page has no text content)
📄 Page
2
(This page has no text content)
📄 Page
3
(This page has no text content)
📄 Page
4
版权信息 COPYRIGHT 书名:机器学习实战(视频教学版) 作者:迟殿委;王培进;王兴平 出版社:清华大学出版社 出版时间:2024年3月 ISBN:9787302653974 字数:154千字 本书由清华大学出版社有限公司授权得到APP电子版制作与发行 版权所有·侵权必究
📄 Page
5
主要作者简介 迟殿委 技算机软件与理论专业硕士,系统架构设计师。有十多年JavaEE、大 数据全栈应用开发经验和培训经验,擅长JavaEE架构设计、大数据分 析与挖掘。著有图书: 《Spark入门与大数据分析实战》 《Hive入门与大数据分析实战》 《Hadoop大数据分析技术》 《Hadoop+Spark大数据分析实战》 《Spring Boot企业级开发实战(视频教学版)》 《深入浅出Java编程》 《Spring Boot+Spring Cloud微服务开发》
📄 Page
6
内容简介 本书基于Python语言详细讲解机器学习算法及其应用,用于读者快速 入门机器学习。本书配套示例源代码、PPT课件、教学视频、教学大 纲、习题与答案、作者微信答疑。 本书共分12章,内容包括机器学习概述、Python数据处理基础、 Python常用机器学习库、线性回归及应用、分类算法及应用、数据降 维及应用、聚类算法及应用、关联规则挖掘算法及应用、协同过滤算 法及应用,最后通过3个综合实战项目(包括新闻内容分类实战、泰坦 尼克号获救预测实战、中药数据分析项目实战),帮助读者对所学技 能进行巩固和提升。本书主要章节都给出了对应的示例及其详细的分 析步骤,方便读者从编程中掌握机器学习基础算法及应用。 本书适合机器学习初学者、大数据分析人员和机器学习算法开发工程 师阅读;也适合作为高等院校或高职高专人工智能、计算机、软件工 程、数据科学与大数据技术、智能科学与技术等专业机器学习课程的 教材。
📄 Page
7
前言 随着技术的不断发展,人工智能和机器学习已经成为计算机领域中的 重要分支,并且被广泛应用于工业、农业、商业、医学、艺术等各个 领域。为了满足社会对相关人才的需求,急需提高IT技术人员对机器 学习原理和算法的理解及应用能力。机器学习是一门多领域交叉学 科,可以通过计算机模拟或实现人类的学习行为,以获取新的知识或 技能,重新组织已有的知识结构来改善自身性能。机器学习的应用是 以大数据采集与处理为前提条件的。 本书内容 本书内容逻辑上分为编程基础、算法应用、项目实战三大部分。编程 基础部分主要讲解Python编程基础、数据处理基础、机器学习常用库 等内容,并讲解了机器学习分类、典型过程及常见应用。算法应用部 分讲解如何建立大数据环境下的机器学习工程化思维,在不必深究算 法细节的前提下,实现大数据分类、聚类、回归、协同过滤、关联规 则、降维等算法及其应用。最后通过3个综合实战项目(新闻内容分类 实战、泰坦尼克号获救预测实战、中药数据分析项目实战),帮助读 者对所学技能进行巩固和提升。 本书特点 (1)本书针对每个经典算法基于机器学习典型开发流程展开,每个算 法的讲解都采用先理论后应用实战的方法,方便读者从编程中学会机 器学习算法及其应用。 (2)本书基于Python语言实现机器学习经典算法,步骤清晰简明,易 于上手,重点放在机器学习算法理解和应用上。同时,本书配套了较 为丰富的实战案例,并为案例提供了详细的步骤说明。 (3)本书尤其重视实践操作,包括框架搭建和开发环境安装、各种算 法经典案例引入、算法原理讲解、综合项目实战提升等,并将实战与 理论知识相结合,从而加深对机器学习算法的理解。
📄 Page
8
(4)本书作者是具有多年大数据分析和处理实战经验的高级工程师, 算法讲解通俗易懂,方便读者提高学习效率,快速掌握机器学习技 术。 配套资源下载 本书配套示例源代码、PPT课件、教学视频、教学大纲、习题与答案、 作者微信答疑,读者需要用微信扫描下面的二维码获取。如果阅读中 发现问题或有疑问,请联系booksaga@163.com,邮件主题写“机器学 习实战(视频教学版)”。 本书读者 本书适合机器学习初学者,可以作为大数据分析和机器学习算法工程 师的参考用书,也可以作为高等院校或高职高专人工智能、大数据等 专业的教材或教学参考书。 编者 2024年1月
📄 Page
9
第1章 机器学习概述 本章内容分为3节。第1节主要介绍机器学习(Machine Learning, ML)的基本概念、机器学习三要素和核心、机器学习开发流程、机器 学习模型评价指标。在详细学习机器学习之前,需要了解什么是机器 学习、机器学习的开发流程以及机器学习模型评价指标。第2节主要介 绍机器学习的发展及分类。从传统机器学习到现代机器学习,机器学 习已经在人工智能、自然语言处理、图像识别、医学、金融等领域得 到广泛的应用,成为当今信息技术发展中的热点和趋势之一。那么, 机器学习这一路的发展历程是什么样的呢?在第2节我们会详细探讨这 个问题。第3节主要介绍机器学习中常用的术语。机器学习是一个复杂 性、专业性很强的技术领域,它大量应用了概率论、统计学、逼近 论、算法复杂度等多门学科的知识,因此会出现很多专业性很强的词 汇。在探索机器学习的初级阶段,理解这些专业术语是学习过程中的 第一件重要任务,因此第3节将详细介绍机器学习中常用的术语,为后 续的知识学习打下坚实的基础。 本章主要知识点: 机器学习简介 机器学习的发展史和分类 机器学习常用术语
📄 Page
10
1.1 机器学习简介 在正式学习机器学习之前,先了解什么是机器学习、机器学习三要素 和核心、机器学习的开发流程、机器学习模型评价指标,以及机器学 习项目开发步骤。 1.1.1 什么是机器学习 机器学习是人工智能的一个分支。人工智能的研究历史有着一条从以 “推理”为重点,到以“知识”为重点,再到以“学习”为重点的自 然、清晰的脉络。显然,机器学习是实现人工智能的一个途径,即以 机器学习为手段解决人工智能中的问题。机器学习经过30多年发展, 已经成为一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分 析(Convex Analysis)、计算复杂性理论等多门学科。机器学习理 论主要是设计和分析一些让计算机可以自动“学习”的算法。机器学 习算法是一类从数据中自动分析获得规律,并利用规律对未知数据进 行预测的算法。因为学习算法中涉及大量的统计学理论,所以机器学 习与推断统计学联系尤为密切,因此也被称为统计学习理论。算法设 计方面,机器学习理论关注可以实现的、行之有效的学习算法。很多 推论问题无程序可循,难度较大,所以部分机器学习的研究是开发容 易处理的近似算法。 机器学习已广泛应用于数据挖掘、计算机视觉、自然语言处理、生物 特征识别、搜索引擎、医学诊断、检测信用卡欺诈、证券市场分析、 DNA序列测序、语音和手写识别、战略游戏和机器人等领域。 简单地说,机器学习是一门从数据中研究算法的科学学科,它根据已 有的数据进行算法的选择,并基于算法和数据结构构建模型,最终对 未来进行预测。它的实质是通过数据构建一个模型并用于预测未知属 性。 1.1.2
📄 Page
11
机器学习三要素和核心 1. 机器学习三要素 按照统计机器学习的观点,任何一个机器学习方法都是由模型 (Model)、策略(Strategy)和算法(Algorithm)三个要素构成 的。具体可理解为机器学习模型在一定的优化策略下,使用相应求解 算法来达到最优目标的过程。 机器学习的第一个要素是模型。机器学习中的模型就是要学习的决策 函数或者条件概率分布,一般用假设空间(Hypothesis Space)F来 描述所有可能的决策函数或条件概率分布。 当模型是一个决策函数时,如线性模型的线性决策函数,F可以表示为 若干决策函数的集合,F={f|Y=f(X)},其中X和Y为定义在输入空间和 输出空间中的变量。 当模型是一个条件概率分布时,如决策树是定义在特征空间和类空间 中的条件概率分布,F可以表示为条件概率分布的集合,F= {P|P=Y|X },其中X和Y为定义在输入空间和输出空间中的随机变量。 机器学习的第二个要素是策略。简单来说,就是在假设空间的众多模 型中,机器学习需要按照什么标准选择最优模型。对于给定模型,模 型输出f(X)和真实输出Y之间的误差可以用一个损失函数 (Loss Function),也就是L(Y,F(X))来度量。 不同的机器学习任务都有对应的损失函数,回归任务一般使用均方误 差,分类任务一般使用对数损失函数或者交叉熵损失函数等。 机器学习的最后一个要素是算法。这里的算法有别于所谓的“机器学 习算法”,在没有特别说明的情况下,“机器学习算法”实际上指的 是模型。作为机器学习三要素之一的算法,指的是学习模型的具体优 化方法。当机器学习的模型和损失函数确定时,机器学习就可以具体 地形式化为一个最优化问题,可以通过常用的优化算法,例如随机梯 度下降法(Stochastic Gradient Descent,SGD)、牛顿法、拟牛 顿法等,进行模型参数的优化求解。 当一个机器学习问题的模型、策略和算法都确定了,相应的机器学习 方法也就确定了,因而这三者也叫作“机器学习三要素”。
📄 Page
12
2. 机器学习的核心 机器学习的目的在于训练模型,使其不仅能够对已知数据有很好的预 测效果。而且能对未知数据有较好的预测能力。当模型对已知数据预 测效果很好,但对未知数据预测效果很差的时候,就引出了机器学习 的核心问题之一——过拟合(Over-Fitting)。 先来看一下监督机器学习的核心哲学。总的来说,所有监督机器学习 都可以用如下公式来概括: 上面的公式就是监督机器学习中的损失函数计算公式,其中,第一项 为针对训练集的经验误差项,即我们常说的训练误差;第二项为正则 化项,也称为惩罚项,用于对模型复杂度进行约束和惩罚。 因此,所有监督机器学习的核心任务就是在正则化参数的同时最小化 经验误差。多么简约的哲学啊!各类机器学习模型的差别无非就是变 着方式改变经验误差项,即我们常说的损失函数。不信你看:当第一 项是平方损失(Square Loss)时,机器学习模型便是线性回归;当 第一项变成指数损失(Exponential Loss)时,模型则是著名的 AdaBoost(一种集成学习树模型算法);而当损失函数为合页损失 (Hinge Loss)时,便是大名鼎鼎的SVM了! 综上所述,第一项“经验误差项”很重要,它能变着法儿改变模型形 式,我们在训练模型时要最大限度地把它变小。但在很多时候,决定 机器学习模型质量的关键不是第一项,而是第二项“正则化项”。正 则化项通过对模型参数施加约束和惩罚,让模型时时刻刻保持对过拟 合的警惕。 我们再回到前面提到的监督机器学习的核心任务:正则化参数的同时 最小化经验误差。通俗来讲,就是训练集误差小,测试集误差也小, 模型有着较好的泛化能力;或者模型偏差小,方差也小。 但是很多时候模型的训练并不尽如人意。当你在机器学习领域摸爬滚 打已久时,想必更能体会到模型训练的艰辛,要想训练集和测试集的 性能表现高度一致实在太难了。很多时候,我们已把经验损失(即训
📄 Page
13
练误差)降到极低,但模型一到测试集上,瞬间“天崩地裂”,表现 得一塌糊涂。这种情况便是下面要谈的主题——过拟合。 所谓过拟合,指在机器学习模型训练的过程中,模型对训练数据学习 过度,将数据中包含的噪声和误差也学习了,使得模型在训练集上表 现很好,而在测试集上表现很差的一种现象。机器学习简单而言就是 归纳学习数据中的普遍规律,这里一定得是普遍规律,像这种将数据 中的噪声也一起学习了的,归纳出来的便不是普遍规律,而是过拟 合。 欠拟合、正常拟合与过拟合的表现形式如图1-1所示。 鉴于过拟合十分普遍并且关乎模型的质量,因此在机器学习实践中, 与过拟合长期坚持不懈地斗争是机器学习的核心。而机器学习的一些 其他问题,诸如特征工程、扩大训练集数量、算法设计和超参数调优 等,都是为防止过拟合这个核心问题而服务的。 图1-1 欠拟合、正常拟合、过拟合的表现形式 1.1.3 机器学习开发流程 机器学习开发流程在实际操作层面一共分为8步:需求分析、数据收 集、数据预处理、数据分析与可视化、建模调优、特征工程、模型结 果展示与分析报告、模型部署与上线反馈优化。如图1-2所示。
📄 Page
14
图1-2 机器学习开发流程 1. 需求分析 很多算法工程师可能觉得需求分析没有技术含量,因而不太重视项目 启动前的需求分析工作,这对于一个项目而言其实是非常危险的。 需求分析的主要目的是为项目确定方向和目标,为整个项目的顺利开 展制订计划和设立里程碑。我们需要明确机器学习的目标输入是什 么,目标输出是什么,是回归任务还是分类任务,关键性能指标都有 哪些,是结构化的机器学习任务还是基于深度学习的图像和文本识别 任务,市面上项目相关的产品都有哪些,对应的SOTA (State Of The Art)模型有哪些,相关领域的前沿研究和进展都 到什么程度了,项目有哪些有利条件和风险。这些都需要在需求分析 阶段认真考虑。 2. 数据采集 一个机器学习项目要开展下去,最关键的资源就是数据。 在数据资源相对丰富的领域,例如电商、O2O、直播以及短视频等行 业,企业一般会有自己的数据源,业务部门提出相关需求后,数据工
📄 Page
15
程师可直接根据需求从数据库中提取数据。但对于本身数据资源就贫 乏或者数据隐私性较强的行业,例如医疗行业,一般很难获得大量数 据,并且医疗数据的标注也比较专业,因此高质量的标注数据尤为难 得。对于这种情况,我们可以先获取一些公开数据集或者竞赛数据集 进行算法开发。 还有一种情况是目标数据在网页端,例如我们想了解杭州二手房的价 格信息,找出影响杭州二手房价格的关键因素,这时候可能需要使用 爬虫一类的数据采集技术来获取相关数据。 (1)数据来源: ● 用户访问行为数据。 ● 用户业务数据。 ● 外部第三方数据(网络爬虫等)。 (2)数据存储: ● 需要存储的数据:原始数据、预处理后的数据、模型结果。 ● 存储设施:MySQL、HDFS、HBase、Solr、Elasticsearch、 Kafka、Redis等。 (3)数据收集方式: ● Flume。 ● Kafka。 (4)机器学习可用的公开数据集: 在实际工作中,我们可以使用业务数据进行机器学习开发,但是在学 习过程中没有业务数据,此时可以使用公开数据集进行开发。常用的 公开数据集网址如下: ● http://archive.ics.uci.edu/ml/datasets.html
📄 Page
16
● https://aws.amazon.com/cn/public-datasets/ ● https://www.kaggle.com/competitions ● http://www.kdnuggets.com/datasets/index.html ● http://www.sogou.com/labs/resource/list_pingce.php ● https://tianchi.aliyun.com/datalab/index.htm ● http://www.pkbigdata.com/common/cmptIndex.html 3. 数据预处理 由于公开数据集和一些竞赛数据集非常“干净”,有的甚至可以直接 用于模型训练,因此一些机器学习初学者认为只需专注于模型与算法 设计就可以了,其实不然。在生产环境下,我们拿到的数据都会比较 “脏”,以至于需要花大量时间去清洗数据,有些人甚至认为数据清 洗和特征工程要占用项目70%以上的时间。 ● 数据预处理是实际生产环境中机器学习比较耗时的一部分。 ● 大部分的机器学习模型所处理的都是特征,特征通常是输入变量 所对应的可用于模型的数值表示。 ● 大部分情况下,收集得到的数据需要经过预处理后才能够为算法 所用。 数据预处理的操作主要包括以下几个部分: ● 数据过滤。 ● 处理数据缺失。 ● 处理可能的异常、错误或者异常值。 ● 合并多个数据源数据。 ● 数据汇总。
📄 Page
17
4. 数据分析与可视化 数据清洗完后,一般不建议直接对数据进行训练。这时候我们对于要 训练的数据还是非常陌生的。数据都有哪些特征?是否有很多类别特 征?目标变量分布如何?各自变量与目标变量的关系是否需要可视化 展示?数据中各变量缺失值的情况如何?怎样处理缺失值?这些问题 都需要在探索性数据分析(Exploratory Data Analysis,EDA)和 数据可视化过程中找到答案。 5. 建模调优与特征工程 数据初步分析完后,对数据会有一个整体的认识,一般就可以着手训 练机器学习模型了。但建模通常不是一锤子买卖,训练完一个基线 (Baseline)模型之后,需要花大量时间进行模型调参和优化。 有关模型评价指标的相关内容参见下一小节。 6. 模型结果展示与分析报告 经过一定的特征工程和模型调优之后,一般会有一个阶段性的最优模 型结果,模型对应的关键性能指标都会达到最优状态。这时候需要通 过一定的方式呈现模型,并对模型的业务含义进行解释。如果需要给 上级领导和业务部门作决策参考,一般还需要生成一份有价值的分析 报告。 7. 模型部署与上线反馈优化 给出一份分析报告不是一个机器学习项目的最终目的,将模型部署到 生产环境并能切实产生收益,才是机器学习的最终价值所在。 如果新上线的推荐算法能让用户的广告点击率上升0.5%,为企业带来 的收益也是巨大的。该阶段更多的是需要进行工程方面的一些考虑, 是以Web接口的形式提供给开发部门,还是以脚本的形式嵌入软件中, 后续如何收集反馈并提供产品迭代参考,这些都是需要在模型部署和 上线之后考虑的。 1.1.4 机器学习模型评价指标
📄 Page
18
关于模型调优,结合业务的精细化特征工程工作比模型调参更能改善 模型表现。建模调优与特征工程之间本身是个交互性的过程,在实际 工作中我们可以一边进行调参,一边进行特征设计,交替进行,相互 促进,共同改善模型表现。在调优过程中同时包括对模型的评估,即 调优的模型是否更优秀。评估的指标主要有准确率、召回率、精确 率、F1值、混淆矩阵、ROC曲线、ROC曲线下的面积等,如表1-1所示。 表1-1 评估指标 1. 准确率 准确率是指分类正确的样本占总样本个数的比例,计算公式为: 准确率=提取出的正确样本数/总样本数 准确率具有局限性。准确率是分类问题中最简单也是最直观的评价指 标,但存在明显的缺陷,当不同种类的样本比例非常不均衡时,占比 大的类别往往成为影响准确率的最主要因素。例如:当负样本占99% 时,即使分类器把所有样本都预测为负样本,也可以得到99%的准确 率,换句话说,总体准确率高,并不代表类别比例小的准确率也高。 2. 召回率与精确率 召回率是指正确分类的正样本个数占真正的正样本数的比例。精确率 是指正确分类的正样本个数占分类器判定为正样本的样本个数的比 例。 召回率=正确的正例样本数/样本中的正例样本数 精确率=正确的正例样本数/预测为正例的样本数
📄 Page
19
召回率和精确率是既矛盾又统一的两个指标,为了提高精确率的值, 分类器需要尽量在“更有把握”时才把样本预测为正样本,但此时往 往会因为过于保守而漏掉很多“没有把握”的正样本,导致召回率值 降低。 3. F值 F值是精确率和召回率的谐波平均值,正常的平均值会平等对待所有的 值,而谐波平均值会给予较低的值更高的权重。因此,只有当召回率 和精确率都很高时,分类器才能得到较高的F值。 F值=精确率×召回率×2/(精确率+召回率) 这个公式即表示F值为精确率和召回率的调和平均值。F值对那些具有 相近的精确率和召回率的分类器更为有利。但这并不一定能符合我们 的期望,在某些情况下,我们更关心的是精确率,而另一些情况下, 我们可能真正关心的是召回率。精确率与召回率的权衡将是很值得思 考的问题。 真实值与预测值的关系如表1-2所示。 表1-2 真实值与预测值 表中A和D预测正确,B和C预测错误,测试计算结果为(其中#表示样本 个数,如#(A)表示真正例个数):
📄 Page
20
4. ROC曲线 二值分类器是机器学习领域中最常见也是应用最广泛的分类器。评价 二值分类器的指标很多,例如精确率、召回率、F1值、P-R曲线等,但 这些指标或多或少只能反映模型在某一方面的性能。相比而言,ROC曲 线则有很多优点,经常作为评估二值分类器最重要的指标之一。ROC曲 线是Receiver Operating Characteristic Curve的简称,中文名 为受试者工作特征曲线。 ROC曲线的横坐标为假阳率FPR,纵坐标为真阳率TPR,FPR和TPR的计算 方法分别为: P是真实的正样本数量,N是真实的负样本数量,TP是P个正样本中被分 类器预测为正样本的个数,FP为N个负样本中被预测为正样本的个数。 下面来演示ROC曲线的绘制。首先,创建数据集: 【程序1.1】roc_data.py 然后,绘制ROC曲线: 【程序1.2】roc_plt.py
The above is a preview of the first 20 pages. Register to read the complete e-book.
Recommended for You
Loading recommended books...
Failed to load, please try again later