《Python数据挖掘与机器学习实战》

举报
华章计算机 发表于 2019/06/16 17:20:25 2019/06/16
【摘要】 本节书摘来自华章计算机《Python数据挖掘与机器学习实战》一作者是方巍 。

Python数据挖掘

与机器学习实战


Python数据挖掘与机器学习实战-立.jpg

 方巍  编著

    前言 


  Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。作为一门编程语言,其魅力远超C#、Java、C和C++等编程语言,被昵称为“胶水语言”,更被热爱它的程序员誉为“最美丽的”编程语言。从云端和客户端,再到物联网终端,Python应用无处不在,同时它还是人工智能(AI)首选的编程语言。

  近年来,人工智能在全世界掀起了新的科技浪潮,各行各业都在努力涉足人工智能技术。而机器学习是人工智能的一种实现方式,也是最重要的实现方式之一。深度学习是目前机器学习比较热门的一个方向,其本身是神经网络算法的衍生,在图像、语音等富媒体的分类和识别上取得了非常好的效果。数据挖掘主要利用机器学习界提供的技术来分析海量数据,利用数据库界提供的技术来管理海量数据。例如,在对超市货品进行摆放时,牛奶到底是和面包摆放在一起销量更高,还是和其他商品摆在一起销量更高,就可以用相关算法得出结论。由于机器学习技术和数据挖掘技术都是对数据之间的规律进行探索,所以人们通常将两者放在一起提及。而这两种技术在现实生活中也有着非常广阔的应用场景。例如,分类学习算法可以对客户等级进行划分,可以验证码识别,可以对水果品质自动筛选等;回归学习算法可以对连续型数据进行预测,以及对趋势进行预测等;聚类学习算法可以对客户价值和商圈做预测;关联分析可以对超市的货品摆放和个性化推荐做分析;而深度学习算法还可以实现自然语言处理方面的应用,如文本相似度、聊天机器人及自动写诗作画等应用。

  纵观国内图书市场,关于Python的书籍不少,它们主要偏向于工具本身的用法,如关于Python的语法、参数、异常处理、调用及开发类实例等,但是基于Python数据挖掘与机器学习类的书籍并不是特别多,特别是介绍最新的基于深度学习算法原理和实战的图书更少。本书将通过具体的实例来讲解数据处理和挖掘技术,同时结合最新的深度学习、强化学习及在线学习等理论知识和实用的项目案例,详细讲解16种常用的数据挖掘和机器学习算法。

本书有何特色

  1.全程使用Python 3编程语言

  本书通过Anaconda和Spyder提供的Python编程功能实现各种算法:

  •  介绍了Scrapy框架和XPath工具;

  •  重点介绍了TensorFlow工具的开发和使用;

  •  以票务网为例,实现了网站票务信息的爬虫案例。

  2.剖析回归分析的基本原理

  回归分析是一种应用极为广泛的数量分析方法。本书中的回归分析相关章节实现了如下几个重要例子:

  •  对于线性回归,介绍了如何使用一元线性回归求解房价预测的问题;

  •  实例演示了使用多元线性回归进行商品价格的预测,以及使用线性回归对股票进行预测;

  •  通过环境检测数据异常分析与预测这个实验,用实例具体实现了逻辑回归的过程。

  3.详解分类和聚类机器学习算法

  在数据挖掘领域中,对分类和聚类算法的研究及运用非常重要。书中着重研究了决策树、随机森林、SVM、HMM、BP神经网络、K-Means和贝叶斯等算法,并实现了以下例子:

  •  使用决策树算法对鸢尾花数据集进行分类;

  •  使用随机森林对葡萄酒数据集进行分类;

  •  SVM中采用三种核函数进行时间序列曲线预测;

  •  HMM模型用于中文分词;

  •  用TensorFlow实现BP神经网络;

  •  朴素贝叶斯分类器在破产预测中的应用。

  4.详细地描述了常用的深度学习算法

  本书相关章节中详细地描述了卷积神经网络、循环神经网络、生成对抗网络等。主要有如下实例演示:

  •  采用卷积神经网络实现了雷达剖面图识别实例;

  •  使用LSTM模型实现了一个聊天机器人的程序;

  •  通过DCGAN网络来训练数据,从而产生人脸图像。

  5.讨论了其他常用机器学习算法

  本书中还讨论了在线学习和强化学习等常见的机器学习算法,例如:

  •  演示在线学习Bandit算法与推荐系统;

  •  使用Adaboost算法实现马疝病的检测。

  6.提供了丰富而实用的数据挖掘源代码,并提供了操作视频和教学PPT

  本书详尽地描述了各种重要算法,并提供了很多来源于真实项目案例的源代码。另外,还特别为本书制作了相关操作的教学视频和专业的教学PPT和操作视频,以方便读者学习。

  •  卷积神经网络雷达图像识别项目;

  •  LSTM聊天机器人项目;

  •  HMM中文分词系统;

  •  DCGAN的人脸生成模型。

本书内容及知识体系

  第1章主要对机器学习的基本概念进行了概述,介绍了5种Python开发工具,分别是IDLE、IPython、PyCharm、Jupyter Notebook、Anaconda和Spyder,对它们的特点进行了阐述,并选择Anaconda和Spyder作为本书的开发工具。

  第2章主要介绍了Python开发环境、计算规则与变量,并详细介绍了Python常用的数据类型,分别是字符串、列表、元组和字典;还介绍了爬虫的基本原理,其中重点介绍了Scrapy框架和XPath工具,并且以票务网为例实现了网站票务信息的爬取。

  第3章首先介绍了数据挖掘中的回归分析和线性回归的基本概念,然后介绍了如何使用一元线性回归求解房价预测的问题,最后介绍了使用多元线性回归进行商品价格的预测。本章通过环境检测数据异常分析与预测这个实验,对逻辑回归做出了具体的表现分析。

  第4章是关于常用分类算法的讲解,主要对决策树和随机森林的基本概念和算法原理进行了详细阐述。本章使用决策树对鸢尾花数据集进行分类,并使用随机森林对葡萄酒数据集进行分类。通过学习本章内容,读者会对决策树算法和随机森林算法有更进一步的认识。

  第5章主要介绍了基于统计学习理论的一种机器学习方法——支持向量机,通过寻求结构风险最小来提高泛化能力,实现经验风险和置信范围的最小化,从而达到在统计样本较少的情况下也能获得良好的统计规律的目的,可利用SMO算法高效求解该问题。针对线性不可分问题,利用函数映射将原始样本空间映射到高维空间,使得样本线性可分,进而通过SMO算法求解拉普拉斯对偶问题。

  第6章介绍了隐马尔可夫模型要解决的三个基本问题,以及解决这三个基本问题的方法,带领读者深入学习解码问题,并掌握解决解码的Viterbi算法,运用Viterbi算法思想精髓“将全局最佳解的计算过程分解为阶段最佳解的计算”,实现对语料的初步分词工作。此外,本章还介绍了HMM模型用于中文分词的方法。

  第7章介绍了人工神经网络(Artificial Neural Network,ANN)的基本概念、特点、组成部分和前向传播等内容;阐述了单层神经网络、双层神经网络及多层神经网络的概念和原理;使用TensorFlow实现BP神经网络,进一步强化对BP神经网络的理解和使用。

  第8章主要介绍了卷积神经网络的原理及其在图像识别领域中的应用。本章带领读者掌握卷积神经网络的各层,包括输入层、卷积层、池化层、全连接层和输出层;利用卷积神经网络进行雷达图像识别,实现了对雷暴大风灾害性天气的识别,并以地面自动站出现7级大风作为出现灾害性雷暴大风天气的判据,从而建立一套集雷暴大风实时识别、落区预报及落区检验于一体的综合系统。

  第9章从自然语言处理的基础知识引入了循环神经网络,并详细阐述其原理及强大之处,最后使用它来实现聊天机器人。循环神经网络常用于处理序列数据,例如一段文字或声音、购物或观影的顺序,甚至可以是图片中的一行或一列像素。

  第10章介绍了聚类与集成算法的相关知识。K-Means聚类是一种自下而上的聚类方法,其优点是简单、速度快;Adaboost算法是Boosting方法中最流行的一种算法。集成算法便是将多个弱学习模型通过一定的组合方式,形成一个强学习模型,以达到提高学习正确率的目的。

  第11章介绍了贝叶斯分类器分类方法,在一个真实数据集上执行了朴素贝叶斯分类器的训练预测,取得了理想的效果;在围绕实时大数据流分析这一需求展开的研究中,对在线学习Bandit算法的概念进行了阐述,并用Python进行了实验分析;还对生成对抗网络(GAN)进行了讲解,同时也介绍了DCGAN网络模型,并且使用DCGAN网络进行了人脸生成实验。

本书配套资源获取方式

  本书涉及的源代码文件、教学视频、教学PPT视频和Demo需要读者自行下载。请登录华章公司的网站www.hzbook.com,在该网站上搜索到本书页面,然后单击“资料下载”按钮即可在页面上找到“配书资源”下载链接。

本书读者对象

  •  Python程序员;

  •  对数据挖掘感兴趣的人员;

  •  对机器学习和深度学习感兴趣的人员;

  •  想转行到人工智能领域的技术人员;

  •  想从其他编程语言转Python开发的人员;

  •  喜欢编程的自学人员;

  •  高校计算机等专业的学生;

  •  专业培训机构的学员。

本书阅读建议

  •  没有Python开发基础的读者,建议从第1章顺次阅读并演练每一个实例。

  •  有一定Python数据挖掘基础的读者,可以根据实际情况有重点地选择阅读各个模块和项目案例。对于每一个模块和项目案例,先思考一下实现的思路,然后再亲自动手实现,这样阅读效果更佳。

  •  有基础的读者可以先阅读书中的模块和Demo,再结合配套源代码理解并调试,这样更加容易理解,而且也会理解得更加深刻。

本书作者

  本书由方巍主笔编写。其他参与编写和程序调试工作的人员还有王秀芬、丁叶文和张飞鸿。本书能得以顺利出版,要感谢南京信息工程大学计算机与软件学院2017级的全体研究人员,还要感谢在写作和出版过程中给予笔者大量帮助的各位编辑!

  由于笔者水平所限,加之写作时间有限,书中可能还存在一些疏漏和不足之处,敬请各位读者批评指正。联系邮箱:hzbook2017@163.com。

  最后祝大家读书快乐!


  编著者

  



目录



前言

第1章  机器学习基础 1

1.1  机器学习概述 2

1.2  机器学习的发展历程 2

1.3  机器学习分类 3

1.3.1  监督学习 3

1.3.2  无监督学习 3

1.3.3  强化学习 4

1.3.4  深度学习 4

1.4  机器学习的应用 4

1.5  开发机器学习的步骤 7

1.6  Python语言的优势 8

1.6.1  可执行伪代码 8

1.6.2  Python语言使用广泛 8

1.6.3  Python语言特色 8

1.6.4  Python语言的缺点 9

1.7  Python开发工具介绍 9

1.7.1  IDLE简介 10

1.7.2  IPython简介 11

1.7.3  PyCharm简介 11

1.7.4  Jupyter Notebook简介 12

1.7.5  Anaconda和Spyder简介 13

1.8  本章小结 15

第2章  Python语言简介 16

2.1  搭建Python开发环境 16

2.1.1  安装Anaconda 16

2.1.2  安装Spyder 18

2.1.3  运行和保存Python程序 19

2.2  Python计算与变量 19

2.2.1  用Python做简单的计算 20

2.2.2  Python的运算符 20

2.2.3  Python的变量 21

2.3  Python的字符串 22

2.4  Python的列表 23

2.5  Python的元组 25

2.6  Python的字典 27

2.7  网络爬虫的发展历史和分类 28

2.7.1  网络爬虫的发展历史 28

2.7.2  网络爬虫的分类 30

2.8  网络爬虫的原理 30

2.8.1  理论概述 30

2.8.2  爬虫的工作流程 31

2.9  爬虫框架介绍 36

2.9.1  Scrapy介绍 36

2.9.2  XPath介绍 39

2.10  网络爬虫的设计与实现 40

2.10.1  网络爬虫的总体设计 40

2.10.2  具体实现过程 40

2.10.3  爬虫结果与分析 45

2.11  本章小结 49

第3章  回归分析 50

3.1  回归分析概述 50

3.1.1  基本概念 50

3.1.2  可以解决的问题 51

3.1.3  回归分析的步骤 51

3.2  线性回归 51

3.2.1  简单线性回归分析 51

3.2.2  多元线性回归分析 52

3.2.3  非线性回归数据分析 52

3.3  用Python实现一元线性回归 53

3.4  用Python实现多元线性回归 56

3.4.1  使用pandas读取数据 56

3.4.2  分析数据 57

3.4.3  线性回归模型 58

3.5  基于线性回归的股票预测 62

3.5.1  数据获取 62

3.5.2  数据预处理 63

3.5.3  编码实现 64

3.5.4  结果分析 65

3.6  逻辑回归 66

3.6.1  构造预测函数 67

3.6.2  构造损失函数J 68

3.6.3  梯度下降法求解最小值 69

3.7  基于逻辑回归的环境数据检测 71

3.7.1  数据来源 71

3.7.2  数据处理 72

3.7.3  异常数据分析 72

3.7.4  数据预测 74

3.8  本章小结 76

第4章  决策树与随机森林 77

4.1  决策树 77

4.1.1  决策树的基本原理 77

4.1.2  决策树的分类 78

4.1.3 决策树的优缺点 81

4.2  使用决策树对鸢尾花分类 82

4.2.1  Iris数据集简介 82

4.2.2  读取数据 83

4.2.3  鸢尾花类别 83

4.2.4  数据可视化 84

4.2.5  训练和分类 85

4.2.6  数据集多类分类 86

4.2.7  实验结果 86

4.3  随机森林 87

4.3.1  随机森林的基本原理 87

4.3.2  随机森林的收敛性 88

4.3.3  随机森林的OOB估计 89

4.3.4  随机森林的随机特征选取 89

4.3.5  随机森林的优缺点 90

4.4  葡萄酒数据集的随机森林分类 91

4.4.1  数据收集 91

4.4.2  相关库函数简介 92

4.4.3  数据基本分析 93

4.4.4  使用随机森林构建模型 97

4.4.5  实验结果 98

4.5  本章小结 99

第5章  支持向量机 100

5.1  SVM的工作原理及分类 100

5.1.1  支持向量机的原理 100

5.1.2  线性可分的支持向量机 101

5.1.3  非线性可分的支持向量机 102

5.2  核函数 103

5.2.1  核函数简介 103

5.2.2  几种常见的核函数 104

5.2.3  核函数如何处理非线性数据 104

5.2.4  如何选择合适的核函数 105

5.3  SVR简介 106

5.3.1  SVR原理 106

5.3.2  SVR模型 106

5.4  时间序列曲线预测 107

5.4.1  生成训练数据集 107

5.4.2  运用不同的核函数进行支持向量回归 108

5.4.3  生成测试数据集 109

5.4.4  预测并生成图表 110

5.4.5  获取预测误差 111

5.4.6  创建数据集 112

5.4.7  选取最优参数 112

5.4.8  预测并生成图表 112

5.4.9  获取预测误差 113

5.5  本章小结 114

第6章  隐马尔可夫模型 115

6.1  隐马尔可夫模型简介 115

6.1.1  隐马尔可夫模型的概念 115

6.1.2  详例描述 116

6.1.3  HMM流程 117

6.2  Viterbi算法 117

6.3  HMM模型用于中文分词 119

6.3.1  UI界面 119

6.3.2  数据及其编码 119

6.3.3  HMM模型 121

6.3.4  实验结果 122

6.4  本章小结 124

第7章  BP神经网络模型 125

7.1  背景介绍 125

7.2  结构特点 126

7.3  网络模型 126

7.4  人工神经网络简介 127

7.4.1  神经元 127

7.4.2  单层神经网络 128

7.4.3  双层神经网络 129

7.4.4  多层神经网络 130

7.5  BP神经网络 131

7.6  通过TensorFlow实现BP神经网络 132

7.7  本章小结 134

第8章  卷积神经网络 135

8.1  传统图像识别技术 135

8.1.1  图像预处理 135

8.1.2  图像特征提取 136

8.1.3  图像分类方法 136

8.2  卷积神经网络结构简介 137

8.2.1  卷积神经网络发展历程 137

8.2.2  卷积神经网络结构简介 137

8.3  卷积神经网络的结构及原理 139

8.3.1  卷积层 139

8.3.2  池化层 140

8.3.3  激活函数 142

8.3.4  全连接层 144

8.3.5  反馈运算 144

8.4  卷积神经网络的优点 146

8.5  雷达剖面图识别模型 148

8.5.1  数据准备 148

8.5.2  构建模型 150

8.6  模型测试分析 157

8.6.1  部署基本模块 157

8.6.2  创建项目结构 157

8.6.3  训练网络 158

8.6.4  自动化测试 158

8.7  本章小结 160

第9章  循环神经网络 161

9.1  自然语言处理 161

9.1.1  自然语言处理概述 161

9.1.2  自然语言处理应用 162

9.2  对话系统 163

9.2.1  对话系统分类 163

9.2.2  聊天机器人分类 164

9.3  基于LSTM结构的循环神经网络 165

9.3.1  循环神经网络 165

9.3.2  通过时间反向传播 166

9.3.3  长短期记忆网络(LSTM) 169

9.4  Seq2Seq模型 172

9.4.1  Encoder-Decoder框架 173

9.4.2  Attention机制 174

9.5  聊天机器人的程序实现 176

9.5.1  准备数据 176

9.5.2  创建模型 178

9.5.3  训练模型 179

9.5.4  测试模型 180

9.6  本章小结 181

第10章  聚类与集成算法 182

10.1  聚类方法简介 182

10.1.1  聚类定义 183

10.1.2  聚类要求 183

10.2  聚类算法 184

10.2.1  划分方法 184

10.2.2  层次方法 184

10.2.3  基于密度的方法 184

10.2.4  基于网格的方法 185

10.2.5  基于模型的方法 185

10.3  K-Means算法 185

10.3.1  K-Means算法概述 185

10.3.2  K-Means算法流程 185

10.3.3  K-Means算法实现 186

10.3.4  实验结果及分析 188

10.3.5  K-Means算法存在的问题 188

10.4  K-Means++算法 189

10.4.1  K-Means++的基本思想 189

10.4.2  K-Means++的数学描述 190

10.4.3  K-Means++算法流程 190

10.5  K-Means++的实现 191

10.5.1  数据集 191

10.5.2  代码实现 192

10.5.3  K-Means++实验结果 193

10.6  Adaboost集成算法的原理 194

10.6.1  Boosting算法的基本原理 194

10.6.2  Adaboost算法介绍 195

10.6.3  Adaboost分类问题的损失函数优化 197

10.6.4  Adaboost二元分类问题的算法流程 198

10.6.5  Adaboost回归问题的算法流程 199

10.6.6  Adaboost算法的正则化 200

10.6.7  Adaboost的优缺点 200

10.7  Adaboost算法实现 201

10.7.1  数据集处理 201

10.7.2  实现过程 201

10.7.3  实验结果分析 206

10.8  本章小结 208

第11章  其他机器学习算法 209

11.1  贝叶斯分类器 210

11.1.1  概率基础知识 210

11.1.2  贝叶斯决策准则 211

11.1.3  极大似然估计 212

11.2  贝叶斯分类模型 213

11.2.1  朴素贝叶斯分类模型 213

11.2.2  半朴素贝叶斯分类模型 216

11.2.3  贝叶斯网络分类模型 217

11.3  朴素贝叶斯分类器在破产预测中的应用 219

11.3.1  数据集 219

11.3.2  训练多项式朴素贝叶斯模型 220

11.4  在线学习 222

11.4.1  线性模型的在线学习 222

11.4.2  非线性模型的在线学习 224

11.5  Bandit在线学习算法 225

11.5.1  Bandit算法与推荐系统 226

11.5.2  常用Bandit算法 226

11.6  Bandit算法原理及实现 228

11.7  GAN网络 229

11.7.1  GAN产生的背景 230

11.7.2  模型结构 230

11.7.3  GAN的实现原理 232

11.8  DCGAN网络 236

11.8.1  模型结构 236

11.8.2  反卷积 237

11.9  DCGAN人脸生成 240

11.9.1  实验准备 240

11.9.2  关键模块的实现 240

11.9.3  实验结果展示 243

11.10  本章小结 245

附录A  机器学习常见面试题 246

附录B  数学基础 257

B.1  常用符号 257

B.2  数学基础知识 259

B.2.1  线性代数 259

B.2.2  概率论 261

B.2.3  信息论 262

参考文献 264


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。