Python机器学习及实践: 从零开始通往Kaggle竞赛之路图书
人气:32

Python机器学习及实践: 从零开始通往Kaggle竞赛之路

该书的编写旨在帮助大量对机器学习和数据挖掘应用感兴趣的读者朋友,整合并实践时下流行的基于Python语言的程序库:如Scikit-learn、NLTK、gensim、XGBoost、TensorFlow等;而且针对现实中的科研问题,甚至是Ka...
  • 所属分类:图书 >计算机/网络>人工智能  
  • 作者:[范淼]、[李超]
  • 产品参数:
  • 丛书名:中国高校创意创新创业教育系列丛书
  • 国际刊号:9787302442875
  • 出版社:清华大学出版社
  • 出版时间:2016-10
  • 印刷时间:2016-09-01
  • 版次:1
  • 开本:16开
  • 页数:--
  • 纸张:胶版纸
  • 包装:平装-胶订
  • 套装:

内容简介

本书面向所有对机器学习与数据挖掘的实践及竞赛感兴趣的读者,从零开始,以Python编程语言为基础,在不涉及大量数学模型与复杂编程知识的前提下,逐步带领读者熟悉并且掌握当下流行的机器学习、数据挖掘与自然语言处理工具,如Scikitlearn、NLTK、Pandas、gensim、XGBoost、Google Tensorflow等。 全书共分4章。第1章简介篇,介绍机器学习概念与Python编程知识;第2章基础篇,讲述如何使用Scikitlearn作为基础机器学习工具;第3章进阶篇,涉及怎样借助高级技术或者模型进一步提升既有机器学习系统的性能;第4章竞赛篇,以Kaggle平台为对象,帮助读者一步步使用本书介绍过的模型和技巧,完成三项具有代表性的竞赛任务。

编辑推荐

该书帮助对机器学习、数据挖掘感兴趣的读者整合时下流行的基于Python语言的程序库。如Scikit-learn,Pandas, NLTK,Gensim, XGBoost,TensorFlow等,并且针对现实中遇到的数据,甚至是Kaggle竞赛中的分析任务,快速搭建有效的机器学习系统。 同时,作者尽力减少读者为了理解本书,而对编程技能、数学背景的过分依赖,进而降低机器学习模型的实践门槛,让更多的兴趣爱好者体会到使用经典模型以及新的高效方法解决实际问题的乐趣。

作者简介

范淼 :清华大学计算机系人工智能研究所博士,研究方向涉及机器学习与自然语言处理技术。2015年3月受国家留学基金委公派至美国纽约大学计算机系联合培养。攻读博士期间,于所在研究领域内多个重要国际会议与期刊上近20篇。先后在Hulu、MSRA(微软亚洲研究院)、百度自然语言处理部、Bosch(博世)北美硅谷研究院等多个公司的研发部门实习,并承担机器学习与自然语言处理相关的研究任务。

李超: 工学博士,清华大学副研究员,信息技术研究院Web 与软件技术研究中心副主任。中国计算机学会信息存储技术专委会委员、中国计算机学会高级会员、全国文献影像技术标准化技术委员会(SAC/TC86/SC6)委员、IEEE 会员。研究领域包括海量数据存储、组织与管理、分析,及其在数字图书馆/档案馆/教育/医疗/金融等领域的应用。主持及参与多项国家973、863、科技支撑、自然基金等纵向项目及横向合作项目。已发表学术论文50 余篇、获得授权发明专利10 余项。

目录

●第1章简介篇1

1.1机器学习综述1

1.1.1任务3

1.1.2经验5

1.1.3性能5

1.2Python编程库8

1.2.1为什么使用Python8

1.2.2Python机器学习的优势9

1.2.3NumPy & SciPy10

1.2.4Matplotlib11

1.2.5Scikitlearn11

1.2.6Pandas11

1.2.7Anaconda12

1.3Python环境配置12

1.3.1Windows系统环境12

1.3.2Mac OS 系统环境17

1.4Python编程基础18

1.4.1Python基本语法19

1.4.2Python 数据类型20

1.4.3Python 数据运算22

1.4.4Python 流程控制26

1.4.5Python 函数(模块)设计28

1.4.6Python 编程库(包)的导入29

1.4.7Python 基础综合实践30

1.5章末小结33[1]Python机器学习及实践[1]目录●第2章基础篇34

2.1监督学习经典模型34

2.1.1分类学习35

2.1.2回归预测64

2.2无监督学习经典模型81

2.2.1数据聚类81

2.2.2特征降维91

2.3章末小结97

●第3章进阶篇98

3.1模型实用技巧98

3.1.1特征提升99

3.1.2模型正则化111

3.1.3模型检验121

3.1.4超参数搜索122

3.2流行库/模型实践129

3.2.1自然语言处理包(NLTK)131

3.2.2词向量(Word2Vec)技术133

3.2.3XGBoost模型138

3.2.4Tensorflow框架140

3.3章末小结152

●第4章实战篇153

4.1Kaggle平台简介153

4.2Titanic罹难乘客预测157

4.3IMDB影评得分估计165

4.4MNIST手写体数字图片识别174

4.5章末小结180

●后记181

●参考文献182

在线预览

第3章 进阶篇 在第2章中,我们向读者介绍了大量经典的机器学习模型,并且使用Python编程语言分析这些模型在许多不同现实数据上的性能表现。然而,细心的读者在深入研究这些数据或者查阅Scikit-learn的文档之后就会发现: 所有我们在第2章中使用过的数据几乎都经过了规范化处理,而且模型也大多只是采用了默认的初始化配置。换言之,尽管我们可以使用经过处理之后的数据,在默认配置下学习到一套用以拟合这些数据的参数,并且使用这些参数和默认配置取得一些看似良好的性能表现;但是我们仍然无法回答几个最为关键的问题: 实际研究和工作中接触到的数据都是这样规整的吗?难道这些默认配置就是的么?我们的模型性能是否还有提升的空间?本章“3.1模型使用技巧”节将会帮助读者朋友解答上述疑问。阅读完这一节,相信各位读者朋友就会掌握如何通过抽取或者筛选数据特征、优化模型配置,进一步提升经典模型的性能表现。 然而,随着近些年机器学习研究与应用的快速发展,经典模型渐渐无法满足日益增长的数据量和复杂的数据分析需求。因此,越来越多更加高效而且强力的学习模型以及对应的程序库正逐渐被设计和编写,并慢慢被科研圈和工业界所广泛接受与采用。这些模型和程序库包括: 用于自然语言处理的NLTK程序包;词向量技术Word2Vec;能够提供强大预测能力的XGBoost模型,以及Google的用于深度学习的Tensorflow框架等等。更加令人振奋的是,上述这些最为流行的程序库和模型, 不但提供了Python的编程接口API,而且有些成为Python编程语言的工具包,更是方便了我们后续的学习和使用。因此,在“3.2流行库/模型实践”节将会带领各位读者一同领略这些时下最为流行的程序库和新模型的奥妙。

3.1模型实用及技巧 这一节将向读者朋友传授一系列更加偏向于实战的模型使用技巧。相信各位读者在第2章中品味了多个经典的机器学习模型之后,就会发现: 一旦我们确定使用某个模型,本书所提供的程序库就可以帮助我们从标准的训练数据中,依靠默认的配置学习到模型所需要的参数(Parameters);接下来,我们便可以利用这组得来的参数指导模型在测试数据集上进行预测,进而对模型的表现性能进行评价。 但是,这套方案并不能保障: (1) 所有用于训练的数据特征都是好的;(2) 学习得到的参数一定是的;(3) 默认配置下的模型总是的。也就是说,我们可以从多个角度对在前面所使用过的模型进行性能提升。本节将向大家介绍多种提升模型性能的方式,包括如何预处理数据、控制参数训练以及优化模型配置等方法。 3.1.1特征提升 早期机器学习的研究与应用,受模型种类和运算能力的限制。因此,大部分研发人员把更多的精力放在对数据的预处理上。他们期望通过对数据特征的抽取或者筛选来达到提升模型性能的目的。所谓特征抽取,就是逐条将原始数据转化为特征向量的形式,这个过程同时涉及对数据特征的量化表示;而特征筛选则更进一步,在高维度、已量化的特征向量中选择对指定任务更有效的特征组合,进一步提升模型性能。 3.1.1.1特征抽取 原始数据的种类有很多种,除了数字化的信号数据(声纹、图像),还有大量符号化的文本。然而,我们无法直接将符号化的文字本身用于计算任务,而是需要通过某些处理手段,预先将文本量化为特征向量。 有些用符号表示的数据特征已经相对结构化,并且以字典这种数据结构进行存储。这时,我们使用DictVectorizer对特征进行抽取和向量化。比如下面的代码55。

代码55: DictVectorizer对使用字典存储的数据进行特征抽取与向量化 >>> # 定义一组字典列表,用来表示多个数据样本(每个字典代表一个数据样本)。 >>>measurements= [{'city': 'Dubai', 'temperature': 33.}, {'city': 'London', 'temperature': 12.}, {'city': 'San Fransisco', 'temperature': 18.}] >>> # 从sklearn.feature_extraction 导入 DictVectorizer >>>from sklearn.feature_extraction import DictVectorizer >>> # 初始化DictVectorizer特征抽取器 >>>vec=DictVectorizer() >>> # 输出转化之后的特征矩阵。 >>>print vec.fit_transform(measurements).toarray() >>> # 输出各个维度的特征含义。 >>>print vec.get_feature_names()[[1. 0 0.33] [0. 1. 0.12.] [0. 0. 1.18.]] ['city=Dubai', 'city=London', 'city=San Fransisco', 'temperature']

从代码55的输出可以看到: 在特征向量化的过程中,DictVectorizer对于类别型(Categorical)与数值型(Numerical)特征的处理方式有很大差异。由于类别型特征无法直接数字化表示,因此需要借助原特征的名称,组合产生新的特征,并采用0/1二值方式进行量化;而数值型特征的转化则相对方便,一般情况下只需要维持原始特征值即可。 另外一些文本数据则表现得更为原始,几乎没有使用特殊的数据结构进行存储,只是一系列字符串。我们处理这些数据,比较常用的文本特征表示方法为词袋法(Bag of Words): 顾名思义,不考虑词语出现的顺序,只是将训练文本中的每个出现过的词汇单独视作一列特征。我们称这些不重复的词汇集合为词表(Vocabulary),于是每条训练文本都可以在高维度的词表上映射出一个特征向量。而特征数值的常见计算方式有两种,分别是: CountVectorizer和TfidfVectorizer。对于每一条训练文本,CountVectorizer只考虑每种词汇(Term)在该条训练文本中出现的频率(Term Frequency)。而TfidfVectorizer除了考量某一词汇在当前文本中出现的频率(Term Frequency)之外,同时关注包含这个词汇的文本条数的倒数(Inverse Document Frequency)。相比之下,训练文本的条目越多,TfidfVectorizer这种特征量化方式就更有优势。因为我们计算词频(Term Frequency)的目的在于找出对所在文本的含义更有贡献的重要词汇。然而,如果一个词汇几乎在每篇文本中出现,说明这是一个常用词汇,反而不会帮助模型对文本的分类;在训练文本量较多的时候,利用TfidfVectorizer压制这些常用词汇的对分类决策的干扰,往往可以起到提升模型性能的作用。 我们通常称这些在每条文本中都出现的常用词汇为停用词(Stop Words),如英文中的the、a等。这些停用词在文本特征抽取中经常以黑名单的方式过滤掉,并且用来提高模型的性能表现。下面的代码让我们重新对“20类新闻文本分类”问题进行分析处理,这一次的重点在于列举上述两种文本特征量化模型的使用方法,并比较他们的性能差异。 ……

媒体评论

《Python机器学习及实践》很契合实际,从零开始介绍简单的Python语法以及如何用Python语言来写机器学习的模型。每一个章节环环相扣,配合代码样例,非常适合希望了解机器学习领域的初学者,甚至没有编程基础的学生。希望看到这本新书能推动普及机器学习。 今日头条实验室科学家,前百度美国深度学习实验室少帅科学家 李磊 这是一本面向机器学习实践的具有很强实用性的好书,适合于想使用机器学习方法求解实际问题的博士生、硕士生、高年级本科生,以及在企业工作的工程技术人员阅读,是一本快速掌握机器学习方法求解实际问题的入门读物,相信读者将从本书中获益匪浅。清华大学计算机系教授 马少平 尽管目前市场上关于机器学习的书籍很多,但很少具有能够将开发语言及机器学习理论紧密结合,利用开源技术,采用类似“实训”方式的实践教学书籍。该书的作者把自己学习的经验充分融入到全书,深入浅出,是一本适合在校学生以及工程技术人员在机器学习方面快速入门的指导书。 北京邮电大学软件学院教授,教研中心主任 吴国仕 不同于多数专业性的书籍,该书拥有更低的阅读门槛。即便不是计算机科学技术专业出身的读者,也可以跟随本书借助基本的Python编程,快速上手并且有效的机器学习模型。香港科技大学计算机与工程系讲座教授,系主任,IEEE、AAAI Fellow, 国际人工智能协会(IJCAI,AAAI)常务理事,中国人工智能协会副理事,ACM KDD China (ACM数据挖掘委员会 中国分会)主席 杨强 该书的作者从初学者的视角,一步步带领读者从零基础快速成长为一位能够独立进行数据分析并且参与机器学习竞赛的兴趣爱好者。全书深入浅出,特别是对有意了解机器学习,又不想被复杂的数学理论困扰的读者,会从此书中获益。 苏州大学计算机科学与技术学院副院长、人类语言技术研究所所长、特聘教授、国家杰出青年科学基金获得者 张民 如果说机器学习会主导信息产业的下一波浪潮,那么在这波浪潮来临之前,我们是否有必要对其一窥究竟。我很高兴有这样一本零基础实战的好书服务广大读者,为普及这一潮流尽绵薄之力。就像过去几十年间我们不懈普及计算机与互联网一样,人工智能,特别是机器学习的核心思想也应该走出象牙塔,拥抱普罗大众,尽可能让更多的兴趣爱好者参与到实践当中。清华大学语音和语言技术中心主任、教授 郑方 这是一本讲解利用Python进行机器学习实战的入门级好书。该书引领刚入门的读者,从零开始学习数据分析并掌握机器学习竞赛技能,适合于从事机器学习研究和应用的在校生和科研工作者。 微软研究院首席研究员,自然语言处理博学专家 周明

免责声明

更多相关图书
在线咨询