机器学习案例分析(基于Python语言)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

前言

机器学习(Machine LearningML)是人工智能的一个分支,它是一门多领域交叉学科,专门研究计算机怎样模拟或实现人类的学习行为,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。机器学习方法可以根据经验数据自动完成模型参数学习,而不需要人为设定规则,大幅降低了人工分析的工作量和难度,已成为目前解决人工智能相关问题的主要方式。另一方面,作为目前流行的人工智能编程语言,Python具有简单易学、免费开源、跨平台性、高层语言、面向对象、丰富的库、胶水语言等优点,不仅大量计算机专业人员使用Python进行人工智能算法快速开发,而且非计算机专业人员也利用Python结合封装好的人工智能算法解决其专业问题。

本书由南开大学计算机学院的教师结合多年教学经验和人工智能教育的发展需要编著而成,可作为我国高校计算机专业学生和非计算机专业理工科学生机器学习入门课程的教材。本书从案例出发,通过具体问题向读者直观展示了利用机器学习方法解决人工智能问题的详细步骤,以及利用Python程序设计语言快速应用机器学习方法解决人工智能问题的具体过程,力争使读者在有限时间内快速掌握每种机器学习方法适合解决的人工智能问题。我们也提供了一些机器学习的理论分析和推导过程,使对机器学习理论有兴趣的读者能够对相关知识有一个初步认识和掌握,为读者学习更深层次的机器学习理论打下了一个良好的基础。

在利用本书学习机器学习相关知识时,建议读者一定要多思考、多分析、多动手实践。当阅读一个具体案例分析时,要认真思考每一个案例的具体解决步骤,从中学习利用机器学习方法解决人工智能问题的一般过程。当阅读案例代码时,要自己梳理程序结构,在计算机上重现该程序的运行结果,通过逐语句执行,并查看变量状态的方式分析各语句的作用。只有这样,才能真正掌握利用机器学习解决人工智能问题的具体方法和流程,也才能真正做到熟练运用机器学习方法解决实际遇到的应用问题。

本书的特色包括:(1)以案例为主线,引入相关知识点,使读者在具体应用中快速掌握机器学习解决人工智能问题的具体方法和流程。(2)强调应用性,同时也给出了必要的机器学习理论及推导,既适合作为计算机相关专业人员进行机器学习的入门读物,也适合对“利用机器学习方法解决人工智能问题”有兴趣的非计算机相关专业人员阅读。

3)将简单易懂的案例代码分析和理论性强、较难理解的内容分开,方便读者根据实际需求进行相关章节的阅读。

本书包括5章和附录A,下面简单介绍各部分内容。

1章,首先给出了机器学习的基本概念及分类。其次,从Python编程环境、基本数据类型、分支语句和循环语句、函数、类和对象、文件读写、异常处理等方面使读者快速掌握Python程序设计语言的入门知识。再次,介绍了应用机器学习解决人工智能问题时常用的Python第三方库,包括NumPySciPyPandasMatplotlibScikit-learn。最后,给出了网络爬虫及信息提取、股票数据图表绘制两个案例分析,使读者快速掌握使用Python解决实际问题的方法。

2章给出了4个分类案例。首先是员工离职预测案例,分别使用基本线性分类器、最小二乘分类器、感知器和逻辑回归分类器,根据员工对公司满意度、最新考核评估等特征对员工是否离职进行了预测。其次是Iris(鸢尾花)数据分类案例,分别使用k近邻分类器和决策树分类器,根据花萼长度、花萼宽度等特征对鸢尾花的种类进行了预测。再次是新闻文本数据分类案例,介绍了文本分词、去停用词、文本表示与特征选择等,介绍了文本数据预处理的方法和具体实现,并分别使用朴素贝叶斯分类器、支持向量机分类器和Adaboost分类器,对搜狐新闻数据(SogouCS)完成了国内、国际、体育、社会、娱乐等12个频道的分类预测。最后是手写数字图像识别案例,使用BP神经网络,基于MNIST数据集完成了对神经网络模型的训练和测试。

3章给出了2个聚类案例。首先是人脸图像聚类案例,结合k均值聚类和PCA降维,对ORL人脸数据集的部分类别数据进行了聚类分析。然后是文本聚类案例,介绍了极大似然估计、隐变量和高斯混合模型(GMM)的基础知识,并实现GMM算法完成两类搜狐新闻的聚类分析。

4章给出了2个回归预测案例。首先是房价预测案例,分别使用线性回归和岭回归模型,对Kaggle上的housing数据集完成了房价预测分析,同时也通过比较展示了不同数据预处理方法和特征选取方法对模型性能的影响。然后是股票走势预测案例,介绍了长短周期记忆网络(LSTM)的基本原理,并利用TensorFlow搭建LSTM网络,完成了股票开盘价、收盘价、最高价、最低价和成交量的预测。

5章给出了2个综合案例。首先是场景文本检测案例,使用传统文本检测的方法和适当的文本识别库,实现一个能在较复杂的街景中提取文字信息的简易Demo程序。作为一个场景文本检测的入门级案例,本案例各处理步骤所使用的方法都比较简单。对场景文本检测问题感兴趣的读者,可阅读近几年CVPRICCV等顶级会议上关于场景文本检测的论文,以获取相关问题的最新方法。然后是面部认证案例,介绍了Siamese(孪生)网络的基本原理,基于TensorFlow实现了该网络,基于LFW人脸数据库完成了模型训练和测试,并搭建面部认证Demo程序进行了模型的具体应用方法。通过本章内容,读者应对基于机器学习的人工智能软件系统的构建过程有一个基本的认识。

附录A给出了理论性强、较难理解的内容。具体包括逻辑回归分类器原理介绍、自己编程实现决策树分类器、支持向量机的数学推导、Adaboost的数学推导和代码实现、神经网络的数学推导和代码实现、期望最大化算法和高斯混合模型,以及基于波士顿房价数据集的房价预测代码实现。读者可根据自己的实际需求选择部分内容进行学习。

本书的编写分工如下:王恺负责1.1节、第5章及附录A的编写,并完成全书统稿和定稿工作;闫晓玉负责1.21.6节及第2章的编写;李涛负责第34章的编写。

在本书的编写过程中,南开大学计算机学院2019级研究生马志、卜旺、周可可帮助收集整理了第24章的案例,南开大学计算机学院2015级本科生周睿、龚航提供了场景文本检测和面部认证两个综合案例,电子工业出版社有限公司的刘志红编辑给予了大力支持,在此表示真诚的感谢!

本书还参考了国内外的一些机器学习方面的书籍及大量的网上资料,力求有所突破和创新。由于能力和水平所限,书中出现的不妥甚至错误之处,恳请读者指正。

作者

2019年12月于南开园