机器学习实战 [Machine learning in action]

内容简介

  机器学习是人工智能研究领域中一个极其重要的研究方向,在现今的大数据时代背景下,捕获数据并从中萃取有价值的信息或模式,成为各行业求生存、谋发展的决定性手段,这使得这一过去为分析师和数学家所专属的研究领域越来越为人们所瞩目。
  《机器学习实战》主要介绍机器学习基础,以及如何利用算法进行分类,并逐步介绍了多种经典的监督学习算法,如k近邻算法、朴素贝叶斯算法、Logistic回归算法、支持向量机、AdaBoost集成方法、基于树的回归算法和分类回归树(CART)算法等。第三部分则重点介绍无监督学习及其一些主要算法:k均值聚类算法、Apriori算法、FP-Growth算法。第四部分介绍了机器学习算法的一些附属工具。
  《机器学习实战》通过精心编排的实例,切入日常工作任务,摒弃学术化语言,利用高效的可复用Python代码来阐释如何处理统计数据,进行数据分析及可视化。通过各种实例,读者可从中学会机器学习的核心算法,并能将其运用于一些策略性任务中,如分类、预测、推荐。另外,还可用它们来实现一些更高级的功能,如汇总和简化等。

作者简介

  Peter Harrington,拥有电气工程学士和硕士学位,他曾经在美国加州和中国的英特尔公司工作7年。Peter拥有5项美国专利,在三种学术期刊上发表过文章。他现在是Zillabyte公司的首席科学家,在加入该公司之前,他曾担任2年的机器学习软件顾问。Peter在业余时间还参加编程竞赛和建造3D打印机。

精彩书评

  “易学易懂,用处很大。”
  ——Alexandre Alves,Oracle CEP的架构师

  “精心织构的代码完美地诠释出机器学习的核心要义。”
  ——Patrick Toohey,Mettler-Toledo Hi-Speed软件工程师

  “实例很棒!可用于任何领域!”
  ——John Griffin,Hibernate Search in Action一书的合作者

  “叙述循序渐进,巧妙地阐述了算法之间的差异。”
  ——Stephen McKamey,Isomer Innovations技术实践总监

目录

第一部分 分类

第1章 机器学习基础  

1.1  何谓机器学习  

1.1.1  传感器和海量数据  
1.1.2  机器学习非常重要  

1.2  关键术语

1.3  机器学习的主要任务

1.4  如何选择合适的算法  

1.5  开发机器学习应用程序的步骤

1.6  Python语言的优势  

1.6.1  可执行伪代码  
1.6.2  Python比较流行  
1.6.3  Python语言的特色  
1.6.4  Python语言的缺点  

1.7  NumPy函数库基础  

1.8  本章小结  

第2章 k-近邻算法   

2.1  k-近邻算法概述  

2.1.1  准备:使用Python导入数据  
2.1.2  从文本文件中解析数据  
2.1.3  如何测试分类器  

2.2  示例:使用k-近邻算法改进约会网站的配对效果  

2.2.1  准备数据:从文本文件中解析数据  
2.2.2  分析数据:使用Matplotlib创建散点图  
2.2.3  准备数据:归一化数值  
2.2.4  测试算法:作为完整程序验证分类器  
2.2.5  使用算法:构建完整可用系统  

2.3  示例:手写识别系统  

2.3.1  准备数据:将图像转换为测试向量  
2.3.2  测试算法:使用k-近邻算法识别手写数字  

2.4  本章小结  

第3章 决策树

3.1  决策树的构造  

3.1.1  信息增益  
3.1.2  划分数据集  
3.1.3  递归构建决策树  

3.2  在Python中使用Matplotlib注解绘制树形图  

3.2.1  Matplotlib注解  
3.2.2  构造注解树  

3.3  测试和存储分类器  

3.3.1  测试算法:使用决策树执行分类  
3.3.2  使用算法:决策树的存储  

3.4  示例:使用决策树预测隐形眼镜类型  

3.5  本章小结  

第4章 基于概率论的分类方法:朴素贝叶斯   

4.1  基于贝叶斯决策理论的分类方法  

4.2  条件概率  

4.3  使用条件概率来分类  
4.4  使用朴素贝叶斯进行文档分类  
4.5  使用Python进行文本分类  
4.5.1  准备数据:从文本中构建词向量  
4.5.2  训练算法:从词向量计算概率  
4.5.3  测试算法:根据现实情况修改分类器  
4.5.4  准备数据:文档词袋模型  
4.6  示例:使用朴素贝叶斯过滤垃圾邮件  
4.6.1  准备数据:切分文本  
4.6.2  测试算法:使用朴素贝叶斯进行交叉验证  

4.7  示例:使用朴素贝叶斯分类器从个人广告中获取区域倾向  

4.7.1  收集数据:导入RSS源  
4.7.2  分析数据:显示地域相关的用词  

4.8  本章小结  

第5章 Logistic回归   

5.1  基于Logistic回归和Sigmoid函数的分类  

5.2  基于最优化方法的最佳回归系数确定  

5.2.1  梯度上升法  
5.2.2  训练算法:使用梯度上升找到最佳参数  
5.2.3  分析数据:画出决策边界  
5.2.4  训练算法:随机梯度上升  

5.3  示例:从疝气病症预测病马的死亡率  

5.3.1  准备数据:处理数据中的缺失值  
5.3.2  测试算法:用Logistic回归进行分类  

5.4  本章小结  

第6章 支持向量机  

6.1  基于最大间隔分隔数据  

6.2  寻找最大间隔  

6.2.1  分类器求解的优化问题  
6.2.2  SVM应用的一般框架  

6.3  SMO高效优化算法  

6.3.1  Platt的SMO算法  
6.3.2  应用简化版SMO算法处理小规模数据集  

6.4  利用完整Platt SMO算法加速优化

6.5  在复杂数据上应用核函数  

6.5.1  利用核函数将数据映射到高维空间  
6.5.2  径向基核函数  
6.5.3  在测试中使用核函数  

6.6  示例:手写识别问题回顾

6.7  本章小结  

第7章 利用AdaBoost元算法提高分类性能   

7.1  基于数据集多重抽样的分类器  

7.1.1  bagging:基于数据随机重抽样的分类器构建方法  
7.1.2  boosting  

7.2  训练算法:基于错误提升分类器的性能  

7.3  基于单层决策树构建弱分类器  

7.4  完整AdaBoost算法的实现  

7.5  测试算法:基于AdaBoost的分类  

7.6  示例:在一个难数据集上应用AdaBoost  

7.7  非均衡分类问题  

7.7.1  其他分类性能度量指标:正确率、召回率及ROC曲线  
7.7.2  基于代价函数的分类器决策控制  
7.7.3  处理非均衡问题的数据抽样方法  

7.8  本章小结  

第二部分 利用回归预测数值型数据

第8章 预测数值型数据:回归   

8.1  用线性回归找到最佳拟合直线  

8.2  局部加权线性回归  

8.3  示例:预测鲍鱼的年龄  

8.4  缩减系数来“理解”数据  

8.4.1  岭回归  
8.4.2  lasso  
8.4.3  前向逐步回归  

8.5  权衡偏差与方差  

8.6  示例:预测乐高玩具套装的价格  

8.6.1  收集数据:使用Google购物的API  
8.6.2  训练算法:建立模型  

8.7  本章小结  

第9章 树回归  

9.1  复杂数据的局部性建模  

9.2  连续和离散型特征的树的构建  

9.3  将CART算法用于回归  

9.3.1  构建树  
9.3.2  运行代码  

9.4  树剪枝  

9.4.1  预剪枝  
9.4.2  后剪枝  

9.5  模型树  

9.6  示例:树回归与标准回归的比较  

9.7  使用Python的Tkinter库创建GUI  

9.7.1  用Tkinter创建GUI  
9.7.2  集成Matplotlib和Tkinter  

9.8  本章小结  

第三部分 无监督学习

第10章 利用K-均值聚类算法对未标注数据分组  

10.1  K-均值聚类算法  

10.2  使用后处理来提高聚类性能  

10.3  二分K-均值算法  

10.4  示例:对地图上的点进行聚类  

10.4.1  Yahoo! PlaceFinder API  
10.4.2  对地理坐标进行聚类  

10.5  本章小结  

第11章 使用Apriori算法进行关联分析  

11.1  关联分析  

11.2  Apriori原理  

11.3  使用Apriori算法来发现频繁集  
11.3.1  生成候选项集  
11.3.2  组织完整的Apriori算法  

11.4  从频繁项集中挖掘关联规则  

11.5  示例:发现国会投票中的模式  

11.5.1  收集数据:构建美国国会投票记录的事务数据集  
11.5.2  测试算法:基于美国国会投票记录挖掘关联规则  

11.6  示例:发现毒蘑菇的相似特征  

11.7  本章小结  

第12章 使用FP-growth算法来高效发现频繁项集  

12.1  FP树:用于编码数据集的有效方式  

12.2  构建FP树  

12.2.1  创建FP树的数据结构  
12.2.2  构建FP树  

12.3  从一棵FP树中挖掘频繁项集  

12.3.1  抽取条件模式基  
12.3.2  创建条件FP树  

12.4  示例:在Twitter源中发现一些共现词  

12.5  示例:从新闻网站点击流中挖掘  

12.6  本章小结  

第四部分 其他工具

第13章 利用PCA来简化数据  

13.1  降维技术  

13.2  PCA  

13.2.1  移动坐标轴  
13.2.2  在NumPy中实现PCA  

13.3  示例:利用PCA对半导体制造数据降维  

13.4  本章小结  

第14章 利用SVD简化数据  

14.1  SVD的应用  

14.1.1  隐性语义索引  
14.1.2  推荐系统  

14.2  矩阵分解  

14.3  利用Python实现SVD  

14.4  基于协同过滤的推荐引擎  

14.4.1  相似度计算  
14.4.2  基于物品的相似度还是基于用户的相似度?  
14.4.3  推荐引擎的评价  

14.5  示例:餐馆菜肴推荐引擎  

14.5.1  推荐未尝过的菜肴  
14.5.2  利用SVD提高推荐的效果  
14.5.3  构建推荐引擎面临的挑战  

14.6  基于SVD的图像压缩  

14.7  本章小结  

第15章 大数据与MapReduce  

15.1  MapReduce:分布式计算的框架  

15.2  Hadoop流  

15.2.1  分布式计算均值和方差的mapper  
15.2.2  分布式计算均值和方差的reducer  

15.3  在Amazon网络服务上运行Hadoop程序  

15.3.1  AWS上的可用服务  
15.3.2  开启Amazon网络服务之旅  
15.3.3  在EMR上运行Hadoop作业  
15.4  MapReduce上的机器学习  

15.5  在Python中使用mrjob来自动化MapReduce  

15.5.1  mrjob与EMR的无缝集成  
15.5.2  mrjob的一个MapReduce脚本剖析  

15.6  示例:分布式SVM的Pegasos算法  

15.6.1  Pegasos算法  
15.6.2  训练算法:用mrjob实现MapReduce版本的SVM  

15.7  你真的需要MapReduce吗?  

15.8  本章小结  

原文地址:https://www.cnblogs.com/TuringEmmy/p/12527004.html

时间: 2024-12-18 05:34:35

机器学习实战 [Machine learning in action]的相关文章

【机器学习实战】Machine Learning in Action 代码 视频 项目案例

MachineLearning 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远 Machine Learning in Action (机器学习实战) | ApacheCN(apache中文网) 视频每周更新:如果你觉得有价值,请帮忙点 Star[后续组织学习活动:sklearn + tensorflow] ApacheCN - 学习机器学习群[629470233] 第一部分 分类 1.) 机器学习基础 2.) k-近邻算法 3.) 决策树 4.) 基于概率论的分类方法:朴素

Machine Learning In Action 第二章学习笔记: kNN算法

本文主要记录<Machine Learning In Action>中第二章的内容.书中以两个具体实例来介绍kNN(k nearest neighbors),分别是: 约会对象预测 手写数字识别 通过“约会对象”功能,基本能够了解到kNN算法的工作原理.“手写数字识别”与“约会对象预测”使用完全一样的算法代码,仅仅是数据集有变化. 约会对象预测 1 约会对象预测功能需求 主人公“张三”喜欢结交新朋友.“系统A”上面注册了很多类似于“张三”的用户,大家都想结交心朋友.“张三”最开始通过自己筛选的

Machine Learning In Action

The mind-road of "Machine Learning In Action". Read though the book totally by English!!

Machine Learning in Action -- Support Vector Machines

虽然SVM本身算法理论,水比较深,很难懂 但是基本原理却非常直观易懂,就是找到与训练集中支持向量有最大间隔的超平面 形式化的描述: 其中需要满足m个约束条件,m为数据集大小,即数据集中的每个数据点function margin都是>=1,因为之前假设所有支持向量,即离超平面最近的点,的function margin为1 对于这种有约束条件的最优化问题,用拉格朗日定理,于是得到如下的形式, 现在我们的目的就是求出最优化的m个拉格朗日算子,因为通过他们我们可以间接的算出w和b,从而得到最优超平面 考

NTU-Coursera机器学习:机器学习基石 (Machine Learning Foundations)

课讲内容 这门课以8周设计,分成 4个核心问题,每个核心问题约需2周的时间来探讨.每个约2个小时的录影中,每个小时为一个主题,以会各分成4到5个小段落,每个段落里会有一个后多个随堂的练习.我们在探讨每个核心问题的第二周.依上所述,課程的規畫如下: When Can Machines Learn? [何时可以使用机器学习] 第一周:(NTU-Coursera机器学习:机器学习问题与二元分类) 第一讲:The Learning Problem [机器学习问题]第二讲:Learning to Answ

微软机器学习Azure Machine Learning入门概览

Azure Machine Learning(简称“AML”)是微软在其公有云Azure上推出的基于Web使用的一项机器学习服务,机器学习属人工智能的一个分支,它技术借助算法让电脑对大量流动数据集进行识别.这种方式能够通过历史数据来预测未来事件和行为,其实现方式明显优于传统的商业智能形式.微软的目标是简化使用机器学习的过程,以便于开发人员.业务分析师和数据科学家进行广泛.便捷地应用.这款服务的目的在于“将机器学习动力与云计算的简单性相结合”.AML目前在微软的Global Azure云服务平台提

machine learning in action , part 1

We should think in below four questions: the decription of machine learning key tasks in machine learning why you need to learn about machine learning why python is so great for machine learning 1.The author talked some examples about machine learnin

决策树(chap3)Machine Learning In Action学习笔记

优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据. 缺点:可能会产生过度匹配问题. 适用数据类型:数值型(必须离散化)和标称型. 决策树创建分支的伪代码函数createBranch(): 检测数据集中的每个子项是否属于同一分类: If so return 类标签: Else 寻找划分数据集的最好特征 划分数据集 创建分支节点 for 每个划分的子集 调用函数createBranch并增加返回结果到分支节点中 return 分支节点 决策树的一般流程 收集数据:

支持向量机-Machine Learning In Action学习笔记

P.S. SVM比较复杂,代码没有研究清楚,进一步学习其他知识后再来补充.以下仅罗列了最核心的知识,来自<机器学习实战>的学习摘要. 优点:泛化错误率低,计算开销不大,结果易解释. 缺点:对参数调节和核函数的选择敏感,原始分类器不加修改仅适用于处理二类问题. 适用数据类型:数值型和标称型数据. 线性可分数据:画出一条直线将两组数据点分开. 超平面(将数据集分隔开来的直线,为N-1维):分类的决策边界.如果数据点离决策边界越远,那么其最后的预测结果也就越可信. 间隔:点到分隔面的距离.(离分隔超