首页>参考读物>计算机科学与技术>软件与程序设计

Python数据挖掘与机器学习实战
作者 : 方巍 编著
出版日期 : 2019-05-17
ISBN : 978-7-111-62681-7
定价 : 79.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 280
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书作为数据挖掘入门读物,基于真实数据集进行案例实战,使用Python数据科学库,从数据预处理开始一步步介绍数据建模和数据挖掘的过程。主要介绍了数据挖掘的基础知识、基本工具和实践方法,通过循序渐进地讲解算法,带领读者轻松踏上数据挖掘之旅。本书采用理论与实践相结合的方式,呈现了如何使用逻辑回归进行环境数据检测,如何使用HMM进行中文分词,如何利用卷积神经网络识别雷达剖面图,如何使用循环神经网络构建聊天机器人,如何使用朴素贝叶斯算法进行破产预测,如何使用DCGAN网络进行人脸生成等。本书也涉及神经网络、在线学习、强化学习、深度学习、大数据处理等内容。
本书适合对传统数据挖掘和机器学习算法开发感兴趣的读者阅读,也适合需要系统掌握深度学习的开发人员阅读。

图书特色

大咖力荐

一本好的计算机专业书籍不但需要有翔实的理论介绍,而且更需要有丰富的实战案例讲解和演示。本书结合炙手可热的Python语言,由浅入深地介绍了数据挖掘和机器学习领域最新的理论和方法,用通俗易懂的语言循序渐进地介绍了当前的技术热点。本书内容丰富,实用性强,涵盖了多个数据挖掘和机器学习实战案例,是一本不可多得的好书。
——美国阿肯色州大学教授 盛胜利

深度学习在过去的几年间赋予了人工智能领域更强的算法和算力,以及更多的应用场景,深刻地改变了该领域的技术方法论。这本书涵盖了数据挖掘在各个主流领域的诸多应用,并介绍了最新的机器学习技术和方法,是一本很好的入门读物。读者朋友可以通过阅读本书快速理解深度学习的基本原理和相关技术,并可以跟随作者的引领动手实践书中给出的多个实战案例,在实践中提高自己的水平。
——浙江大学CAD和CG国家重点实验室博导/教授 林海

本书主要介绍了机器学习领域近几年的一些最新进展,并详细阐述了如何完成工业界一些实用且通用的数据挖掘任务。本书行文风格简洁,内容通俗易懂,案例典型而丰富,实用性很强,适合对机器学习和深度学习研究感兴趣的初学者阅读和实践,也适合对相关技术方向感兴趣的从业人员参考和借鉴。
——北京以利天诚人工智能首席专家/大蛇智能创始人 李金洪

图书前言

  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.cmpreading.com),在该网站上搜索到本书页面,然后单击“资料下载”按钮即可在页面上找到“配书资源”下载链接。
本书读者对象
* Python程序员;
* 对数据挖掘感兴趣的人员;
* 对机器学习和深度学习感兴趣的人员;
* 想转行到人工智能领域的技术人员;
* 想从其他编程语言转Python开发的人员;
* 喜欢编程的自学人员;
* 高校计算机等专业的学生;
* 专业培训机构的学员。
本书阅读建议
* 没有Python开发基础的读者,建议从第1章顺次阅读并演练每一个实例。
* 有一定Python数据挖掘基础的读者,可以根据实际情况有重点地选择阅读各个模块和项目案例。对于每一个模块和项目案例,先思考一下实现的思路,然后再亲自动手实现,这样阅读效果更佳。
* 有基础的读者可以先阅读书中的模块和Demo,再结合配套源代码理解并调试,这样更加容易理解,而且也会理解得更加深刻。
本书作者
  本书由方巍主笔编写。其他参与编写和程序调试工作的人员还有王秀芬、丁叶文和张飞鸿。本书能得以顺利出版,要感谢南京信息工程大学计算机与软件学院2017级的全体研究人员,还要感谢在写作和出版过程中给予笔者大量帮助的各位编辑!
  由于笔者水平所限,加之写作时间有限,书中可能还存在一些疏漏和不足之处,敬请各位读者批评指正。联系邮箱:hzbook2017@163.com。
  最后祝大家读书快乐!

  编著者

上架指导

计算机/程序设计/Python

封底文字

本书作为数据挖掘的入门读物,基于真实的数据集进行案例实战,使用Python数据科学库,从数据预处理开始一步步介绍数据建模和数据挖掘的过程。主要介绍了数据挖掘的基础知识、基本工具和实践方法,通过循序渐进地讲解算法,带领读者轻松踏上数据挖掘之旅。本书采用理论与实践相结合的方式,呈现了如何使用逻辑回归进行环境数据检测,如何使用HMM进行中文分词,如何利用卷积神经网络识别雷达剖面图,如何使用循环神经网络构建聊天机器人,如何使用朴素贝叶斯算法进行破产预测,如何使用DCGAN网络进行人脸生成等。本书也涉及神经网络、在线学习、强化学习、深度学习和大数据处理等内容。
本书以人工智能主流编程语言Python 3版本作为数据分析与挖掘实战的应用工具,从Pyhton的基础语法开始,陆续介绍了NumPy数值计算、Pandas数据处理、Matplotlib数据可视化、爬虫和Sklearn数据挖掘等内容。全书共涵盖16个常用的数据挖掘算法和机器学习实战项目。通过学习本书内容,读者可以掌握数据分析与挖掘的理论知识及实战技能。
本书特别适合对传统数据挖掘和机器学习算法开发感兴趣的读者阅读,也适合需要系统掌握深度学习的开发人员阅读,还适合Python程序员及人工智能领域的开发人员阅读。编程爱好者、高校师生及培训机构的学员也可以将本书作为兴趣读物或教材使用。

图书目录

前言
第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

教学资源推荐
作者: Alfred V. Aho;Monica S.Lam;Ravi Sethi;Jeffrey D. Ullman
作者: (美)Richard Johnsonbaugh, Martin Kalin
作者: 尹宝林 编著
参考读物推荐
作者: (美)Tim Wright 著
作者: Steven Holzner
作者: 周启海 陈康等