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级的全体研究人员,还要感谢在写作和出版过程中给予笔者大量帮助的各位编辑!
由于笔者水平所限,加之写作时间有限,书中可能还存在一些疏漏和不足之处,敬请各位读者批评指正。联系邮箱:[email protected]。
最后祝大家读书快乐!
编著者