产品特色
编辑推荐
阿里云栖社区、百度、蒙牛乳业、神州数码等知名公司的6位技术专家力荐
手写识别程序怎么做?
如何实现人脸识别系统?
如何过滤垃圾邮件?
电子商务网站上猜你喜欢的商品是什么原理?如何实现?
电影网站如何去推荐符合用户喜好的电影?
如何利用机器学习对消费者的特性进行细分,从而更好地服务各细分市场的消费者?
银行如何去检测用户的信用卡可能被盗了?
……
通过阅读本书,你将了解这些复杂问题背后的原理,甚至你都可以自己解决这些问题。
本书对读者的数学基础要求低,让读者可以以较低的门槛入门机器学习
本书涵盖机器学习的应用场景、编程步骤、Python开发包、算法模型性能评估,以及八大常用算法原理和七大实战案例演练
本书通过近100幅图,将晦涩难懂的数学概念生动地描述出来
以scikit-learn为核心,结合numpy、pandas和matplotlib开发包讲解
从数值回归到逻辑回归,从文档分类到人脸识别,都提供了实现代码
用通俗易懂的语言介绍机器学习算法,帮助读者理解每个算法的基本原理
帮助读者使用机器学习算法解决实际的工程应用问题
用大量的图示及实战案例介绍如何解决现实生活中的机器学习问题
内容简介
本书通过通俗易懂的语言、丰富的图示和生动的实例,拨开了笼罩在机器学习上方复杂的数学“乌云”,让读者以较低的代价和门槛入门机器学习。
本书共分为11章,介绍了在Python环境下学习scikit-learn机器学习框架的相关知识,涵盖的主要内容有机器学习概述、Python机器学习软件包、机器学习理论基础、k-近邻算法、线性回归算法、逻辑回归算法、决策树、支持向量机、朴素贝叶斯算法、PCA算法和k-均值算法等。
本书适合有一定编程基础的读者阅读,尤其适合想从事机器学习、人工智能、深度学习及机器人相关技术的程序员和爱好者阅读。另外,相关院校和培训机构也可以将本书作为教材使用。
30秒极速了解本书精华内容:
1. 理论基础
机器学习的应用场景
机器学习编程的典型步骤
Python机器学习开发包:numpy、pandas和matplotlib
算法模型性能评估的指标和评估方法
2. 八大常用机器学习算法
k-近邻算法
线性回归算法
逻辑回归算法
决策树
支持向量机
朴素贝叶斯
PCA算法
k-均值算法
3. 七大实战演练案例
糖尿病检测
预测房价
乳腺癌检测
泰坦尼克号幸存者预测
文档类别预测
人脸识别
文档自动分类
作者简介
黄永昌, 2004年毕业于厦门大学自动化系。毕业后一直在夏新电子从事手机系统软件的研发,直至2009年转向Android系统软件开发。熟悉C、Python、Java和JavaScript 等多种开发语言。对数据处理及分析有浓厚的兴趣,于2014年开始学习和研究机器学习及数据挖掘领域的相关知识。2015年加入ABB集团,从事智能家居系统的开发,通过分析服务器及客户端日志数据,为智能家居系统开发智能决策模型。
目录
前言
第1章 机器学习介绍1
1.1 什么是机器学习1
1.2 机器学习有什么用2
1.3 机器学习的分类3
1.4 机器学习应用开发的典型步骤4
1.4.1 数据采集和标记4
1.4.2 数据清洗5
1.4.3 特征选择5
1.4.4 模型选择5
1.4.5 模型训练和测试5
1.4.6 模型性能评估和优化5
1.4.7 模型使用6
1.5 复习题6
第2章 Python机器学习软件包7
2.1 开发环境搭建7
2.2 IPython简介8
2.2.1 IPython基础8
2.2.2 IPython图形界面13
2.3 Numpy简介15
2.3.1 Numpy数组15
2.3.2 Numpy运算19
2.4 Pandas简介32
2.4.1 基本数据结构32
2.4.2 数据排序34
2.4.3 数据访问34
2.4.4 时间序列36
2.4.5 数据可视化36
2.4.6 文件读写38
2.5 Matplotlib简介38
2.5.1 图形样式38
2.5.2 图形对象40
2.5.3 画图操作46
2.6 scikit-learn简介51
2.6.1 scikit-learn示例51
2.6.2 scikit-learn一般性原理和通用规则55
2.7 复习题56
2.8 拓展学习资源57
第3章 机器学习理论基础58
3.1 过拟合和欠拟合58
3.2 成本函数59
3.3 模型准确性60
3.3.1 模型性能的不同表述方式61
3.3.2 交叉验证数据集61
3.4 学习曲线62
3.4.1 实例:画出学习曲线62
3.4.2 过拟合和欠拟合的特征65
3.5 算法模型性能优化65
3.6 查准率和召回率66
3.7 F1 Score67
3.8 复习题67
第4章 k-近邻算法69
4.1 算法原理69
4.1.1 算法优缺点69
4.1.2 算法参数70
4.1.3 算法的变种70
4.2 示例:使用k-近邻算法进行分类70
4.3 示例:使用k-近邻算法进行回归拟合72
4.4 实例:糖尿病预测74
4.4.1 加载数据74
4.4.2 模型比较75
4.4.3 模型训练及分析77
4.4.4 特征选择及数据可视化78
4.5 拓展阅读80
4.5.1 如何提高k-近邻算法的运算效率80
4.5.2 相关性测试80
4.6 复习题81
第5章 线性回归算法83
5.1 算法原理83
5.1.1 预测函数83
5.1.2 成本函数84
5.1.3 梯度下降算法84
5.2 多变量线性回归算法86
5.2.1 预测函数86
5.2.2 成本函数87
5.2.3 梯度下降算法88
5.3 模型优化89
5.3.1 多项式与线性回归89
5.3.2 数据归一化89
5.4 示例:使用线性回归算法拟合正弦函数90
5.5 示例:测算房价92
5.5.1 输入特征92
5.5.2 模型训练93
5.5.3 模型优化94
5.5.4 学习曲线95
5.6 拓展阅读96
5.6.1 梯度下降迭代公式推导96
5.6.2 随机梯度下降算法96
5.6.3 标准方程97
5.7 复习题97
第6章 逻辑回归算法98
6.1 算法原理98
6.1.1 预测函数98
6.1.2 判定边界99
6.1.3 成本函数100
6.1.4 梯度下降算法102
6.2 多元分类102
6.3 正则化103
6.3.1 线性回归模型正则化103
6.3.2 逻辑回归模型正则化104
6.4 算法参数104
6.5 实例:乳腺癌检测106
6.5.1 数据采集及特征提取106
6.5.2 模型训练108
6.5.3 模型优化110
6.5.4 学习曲线111
6.6 拓展阅读113
6.7 复习题114
第7章 决策树115
7.1 算法原理115
7.1.1 信息增益116
7.1.2 决策树的创建119
7.1.3 剪枝算法120
7.2 算法参数121
7.3 实例:预测泰坦尼克号幸存者122
7.3.1 数据分析122
7.3.2 模型训练123
7.3.3 优化模型参数124
7.3.4 模型参数选择工具包127
7.4 拓展阅读130
7.4.1 熵和条件熵130
7.4.2 决策树的构建算法130
7.5 集合算法131
7.5.1 自助聚合算法Bagging131
7.5.2 正向激励算法boosting131
7.5.3 随机森林132
7.5.4 ExtraTrees算法133
7.6 复习题133
第8章 支持向量机134
8.1 算法原理134
8.1.1 大间距分类算法134
8.1.2 松弛系数136
8.2 核函数138
8.2.1 最简单的核函数138
8.2.2 相似性函数140
8.2.3 常用的核函数141
8.2.4 核函数的对比142
8.3 scikit-learn里的SVM144
8.4 实例:乳腺癌检测146
8.5 复习题149
第9章 朴素贝叶斯算法151
9.1 算法原理151
9.1.1 贝叶斯定理151
9.1.2 朴素贝叶斯分类法152
9.2 一个简单的例子153
9.3 概率分布154
9.3.1 概率统计的基本概念154
9.3.2 多项式分布155
9.3.3 高斯分布158
9.4 连续值的处理159
9.5 实例:文档分类160
9.5.1 获取数据集160
9.5.2 文档的数学表达161
9.5.3 模型训练163
9.5.4 模型评价165
9.6 复习题167
第10章 PCA算法168
10.1 算法原理168
10.1.1 数据归一化和缩放169
10.1.2 计算协方差矩阵的特征向量169
10.1.3 数据降维和恢复170
10.2 PCA 算法示例171
10.2.1 使用Numpy模拟PCA计算过程171
10.2.2 使用sklearn进行PCA降维运算173
10.2.3 PCA的物理含义174
10.3 PCA 的数据还原率及应用175
10.3.1 数据还原率175
10.3.2 加快监督机器学习算法的运算速度176
10.4 实例:人脸识别176
10.4.1 加载数据集176
10.4.2 一次失败的尝试179
10.4.3 使用PCA来处理数据集182
10.4.4 最终结果185
10.5 拓展阅读189
10.6 复习题189
第11章 k-均值算法190
11.1 算法原理190
11.1.1 k-均值算法成本函数191
11.1.2 随机初始化聚类中心点191
11.1.3 选择聚类的个数192
11.2 scikit-learn里的k-均值算法192
11.3 使用k-均值对文档进行聚类分析195
11.3.1 准备数据集195
11.3.2 加载数据集196
11.3.3 文本聚类分析197
11.4 聚类算法性能评估200
11.4.1 Adjust Rand Index200
11.4.2 齐次性和完整性201
11.4.3 轮廓系数203
11.5 复习题204
后记205
前言/序言
前言
机器学习是近年来非常热门的方向,然而普通的程序员想要转行机器学习却困难重重。回想起来,笔者在刚开始学习机器学习时,一上来就被一大堆数学公式和推导过程所折磨,这样的日子至今还历历在目。当时笔者也觉得机器学习是个门槛非常高的学科。但实际上,在机器学习的从业人员里,究竟有多少人需要从头去实现一个算法?又有多少人有机会去发明一个新算法?从一开始就被细节和难点缠住,这严重打击了想进入机器学习领域新人的热情和信心。
本书就是要解决这个问题。笔者希望尽量通过通俗的语言去描述算法的工作原理,并使用scikit-learn工具包演示算法的使用,以及算法所能解决的问题,给那些非科班出身而想半路“杀进”人工智能领域的程序员,以及对机器学习感兴趣的人提供一本入门的书籍。
当然,这里不是否认数学和算法实现的重要性,毕竟它们是人工智能领域的基础学科方向。万事开头难,只有打开了一扇门,才能发现一个新的五彩缤纷的世界。在这个世界里,我们可以吃到新口味的面包,也能认识那些做面包给别人吃的人。希望这本书能帮助读者打开机器学习的这扇门。
本书特色
1.用通俗易懂的语言介绍机器学习算法的原理,符合初学者的认知规律
本书讲解时首先会用通俗易懂的语言介绍常用的机器学习算法,帮助读者直观地理解每个算法的基本原理,然后用大量的图示及实例介绍如何使用scikit-learn工具包解决现实生活中的机器学习问题。这种由浅入深、循序渐进的讲授方式,完全遵循了初学者对机器学习算法的认知规律。
2.丰富的示例图片,可以帮助读者更加直观地理解算法背后的原理
机器学习以其背后复杂的数学原理及异常复杂的算法推导和证明过程而吓退了一大批读者。一图胜千言,本书给出了大量的图示,用图片的方式形象地介绍了算法的基本原理,让读者对算法有更加直观的理解。这样就把复杂的数学公式和冗长的文字描述浓缩到一张张图片中,有效地降低了学习的门槛。
3.实例丰富,可以帮助读者使用机器学习算法解决工程应用问题
手写识别程序怎么做?怎么实现人脸识别系统?怎么过滤垃圾邮件?电子商务网站上猜你喜欢的商品是什么原理?怎么实现的?电影网站怎样去推荐符合用户喜好的电影?怎么利用机器学习对消费者的特性进行细分,从而更好地服务好各细分市场的消费者?银行怎样去检测用户的信用卡可能被盗了?通过阅读本书,读者将了解到这些复杂问题背后的原理,甚至你都可以自己解决这些问题。
本书内容介绍
第1章机器学习介绍,涵盖了机器学习的定义、应用场景及机器学习的分类,并通过一个简单的示例,让读者了解机器学习的典型步骤和机器学习领域的一些专业术语。
第2章Python机器学习软件包,介绍了scikit-learn开发环境的搭建步骤,以及IPython、Numpy、Pandas和Matplotlib等软件包的基础知识,并通过一个scikit-learn机器学习实例介绍了scikit-learn的一般性原理和通用规则。
第3章机器学习理论基础,介绍了算法模型性能评估的指标和评估方法等理论基础。本章内容是本书最关键的理论基础知识,对理解本书其他章节的内容非常重要。
第4章k-近邻算法,介绍了一个有监督的机器学习算法,即k-近邻算法。该算法可以解决分类问题,也可以解决回归问题。
第5章线性回归算法,介绍了单变量线性回归算法和多变量线性回归算法的原理,以及通过梯度下降算法迭代求解线性回归模型,并给出一个房价预测的实例。另外,本章对成本函数和使用线性回归算法对数据进行拟合也做了讲解。
第6章逻辑回归算法,介绍了逻辑回归算法的原理及成本函数。在本章中主要解决的问题有:逻辑回归算法的原理是什么?怎样使用梯度下降算法解决迭代求解逻辑回归算法的模型参数?什么是正则化?正则化能解决什么问题?L1范数和 L2 范数作为模型正则项有什么区别?如何使用逻辑回归算法解决乳腺癌检测问题?
第7章决策树,主要介绍了决策树的算法原理和算法参数,并给出了一个预测实例,最后对集合算法做了必要讲解。
第8章支持向量机,主要介绍了支持向量机的基本算法原理及常用核函数,并给出了用支持向量机来解决乳腺癌检测问题的实例。
第9章朴素贝叶斯算法,首先从贝叶斯定理谈起,引入了朴素贝叶斯分类法;然后通过一个简单的例子说明了算法的基本原理;接着介绍了概率分布的概念及几种典型的概率分布;最后通过一个文档分类实例来说明朴素贝叶斯算法的应用。
第10章PCA算法,首先介绍了PCA的算法原理;然后通过一个简单的模拟运算过程帮助读者理解该算法的原理和实现步骤;最后介绍了PCA算法背后的物理含义。本章在讲解的过程中顺便给读者推荐了一些优秀的线性代数资源,供读者参考。
第11章k-均值算法,首先介绍了该算法的基本原理及关键迭代步骤;然后通过一个简单的例子,介绍了如何使用scikit-learn中的k-均值算法解决聚类问题;最后使用一个文本聚类分析的例子介绍了k-均值算法的应用,并介绍了典型的无监督机器学习算法的性能评估指标。
如何更好地使用本书
如果你只是好奇机器学习背后的原理,大可只阅读书中的文字部分,而跳过代码实现环节;如果你是想用本书敲开机器学习这扇大门,并且未来想从事这一行业,那么建议你系统地阅读本书,而且要亲自动手完成书中的所有实例。本书提供了书中所有实例的完整源代码,建议你认真阅读这些源代码,并亲自动手运行这些代码,还可以调整参数,看看结果有什么变化,最后再独立把这些实例实现一遍。
阅读本书需要的知识储备
阅读本书,建议你最好学习过Python 语言,即便是两年前学的,学过后就算没怎么用也没有关系。如果你不熟悉Python语言,那么最好有其他编程语言基础,如C++或Java语言等。
本书读者对象
1.有一定编程经验,而不满足于永远在“搬砖”的软件工程师
你是不是厌倦了每天重复“搬砖”的过程?你是不是想提高职业的溢价?本书或许可以帮助你打开一扇大门。人工智能在可以预见的未来有巨大的发展前景。特别是近几年,层出不穷的开源机器学习框架不断涌现出来,云计算和分布式计算能力的进一步提升,为人工智能应用于更广泛的领域提供了必要的基础。在可以预见的未来,人工智能领域对机器学习工程师的需求将急剧上升。如果本书能帮助你打开机器学习领域的这扇大门,让你能利用机器学习的知识解决实际问题,这将是笔者最大的荣耀。
2.对这个世界充满好奇的人
笔者之前在某电商网站上搜索了某款手机,之后上网时有大量的网站广告都在向笔者展示手机及其相关产品。这些网站是怎么知道笔者近期想买手机的?笔者常去的电影网站每次都能给笔者推荐一些符合笔者“口味”的电影。这是如何做到的?本书便可以让你以很低的门槛了解这些问题背后的原理,甚至你也可以自己动手做一个,玩一玩。
本书虽然有大量的程序示例代码,但是笔者通过通俗易懂的讲述,并配以大量的图示,让这本书的阅读门槛很低,甚至可以作为本科普读物去阅读。可以说,这本书几乎适合所有对这个世界充满好奇的人阅读,尤其是那些对人工智能充满好奇的人,以及对机器学习算法感兴趣的人。
本书源代码获取方式
本书涉及的源代码文件需要读者自行下载。请读者登录机械工业出版社华章公司的网站www.hzbook.com,然后搜索到本书页面,找到下载模块下载即可。
因作者水平和成书时间所限,本书难免存有疏漏和不当之处,敬请各位读者指正。读者在阅读本书时若有疑问,可以发电子邮件以获得帮助。
编著者
scikit learn机器学习:常用算法原理及编程实战 电子书 下载 mobi epub pdf txt