从零开首通往Kaggle比赛之路

从零开首通往Kaggle比赛之路

Python 机械学习及举行–从零起先通往kaggle比赛之路》很基础 
重要介绍了Scikit-learn,顺带介绍了pandas、numpy、matplotlib、scipy。 
本书代码基于python2.x。然而多数可以经过改动print()来适应python3.5.x。 
提供的代码默认使用 Jupyter Notebook,指出安装Anaconda3。 

极致是到https://www.kaggle.com挂号账号后,运行下第四章的代码,感受下。

监督学习: 
2.1.1分拣学习(Classifier) 
2.1.1.1 线性分类器(Linear Classifier) 
2.1.1.2 协理向量机(Support Vector Classifier) 
2.1.1.3 朴素贝叶斯(Native Bayes) 
2.1.1.4 K近邻(K-Nearest Neighbor) 
2.1.1.5 决策树(Decision Tree) 
2.1.1.6 集成模型(Ensemble):随机森林:Random Forest
Classifier,梯度提升决策树:Gradient Tree Boosting。 
2.1.2 回归预测(Regressor) 
2.1.2.1 线性回归器 
2.1.2.2 协助向量机 
2.1.2.3 K近邻 
2.1.2.4 回归树 
2.1.2.5 集成模型 
2.2 无监控学习 
2.2.1 数据聚类 
2.2.1.1 K均值算法(K-means) 
2.2.2 特征降维 
2.2.2.1 主成分分析(Principal Component Analysis:PCA) 
3.1 模型使用技术 
3.1.1 特征提升 
档案馆,3.1.1.1 特征抽取 
3.1.1.2 特征筛选 
3.1.2 模型正则化 
3.1.2.1 欠拟合与过拟合 
3.1.2.2 L1范数正则化 
3.1.2.3 L2范数正则化 
3.1.3 模型检验 
3.1.3.1 留一验证 
3.1.3.2 交叉验证 
3.1.4 超参数搜索 
3.1.4.1 网格搜索 
3.1.4.2 并行搜索 
3.2 流行库/模型实践 
自然语言包:NLTK 
词向量:Word2Vec 
XGBoost模型 
TensorFlow

 

 

编排推荐

《Python机器学习及实施:从零先导通往Kaggle竞技之路》协助对机器学习、数据挖掘感兴趣的读者结合时下流行的基于Python语言的程序库。如Scikit-learn,Pandas,
NLTK,Gensim,
XGBoost,TensorFlow等,并且针对具体中遭逢的数码,甚至是Kaggle比赛中的分析任务,疾速搭建有效的机器学习系统。

  同时,作者尽力减弱读者为了精晓本书,而对编程技能、数学背景的过分看重,进而降低机器学习模型的履行门槛,让更多的趣味爱好者体会到应用经典模型以及新的快捷方法解决实际问题的童趣。

 

内容简介

  本书面向所有对机器学习与数码挖掘的执行及竞技感兴趣的读者,从零起头,以Python编程语言为底蕴,在不关乎大气数学模型与复杂编程知识的前提下,渐渐指引读者熟练并且领悟当下风靡的机械学习、数据挖掘与自然语言处理工具,如Scikit-learn、NLTK、Pandas、gensim、XGBoost、GoogleTensorflow等。

  全书共分4章。第1章简介篇,介绍机器学习概念与Python编程知识;第2章基础篇,讲述怎样行使Scikit-learn作为基础机器学习工具;第3章进阶篇,涉及什么借助高级技术仍然模型进一步进步既有机器学习类其余属性;第4章比赛篇,以Kaggle平台为对象,扶助读者一步步行使本书介绍过的模型和技巧,完成三项具有代表性的较量任务。

 

作者简介

  范淼,复旦大学处理器系人工智能研讨所学士,钻探方向涉及机械学习与自然语言处理技术。2015年3月受国家留学基金委公派至美利哥伦敦高校电脑系一起培育。攻读大学生期间,于街头巷尾探讨领域内三个举足轻重国际会议与期刊上刊登杂谈近20篇。先后在Hulu、MSRA(微软非洲切磋院)、百度自然语言处理部、Bosch(博世)北美硅谷啄磨院等三个店家的研发部门实习,并负担机器学习与自然语言处理相关的钻研任务。

  李超, 农学学士,北大大学副研究员,信息技术钻探院Web
与软件技术探讨主旨副负责人。中国总结机学会消息存储技术专委会委员、中国总结机学会高等会员、全国文献印象技术标准化技术委员会(SAC/TC86/SC6)委员、IEEE
会员。啄磨领域包括海量数据存储、协会与管理、分析,及其在数字教室/档案馆/教育/医疗/金融等世界的选拔。主持及插足多项国家973、863、科技支撑、自然资本等纵向项目及横向合作项目。已公布学术故事集50
余篇、拿到授权发明专利10 余项。

得天独厚书评

  《Python机器学习及进行》很合乎实际,从零开头介绍简单的Python语法以及哪些用Python语言来写机器学习的模型。每一个章节环环相扣,配合代码样例,分外适合希望了解机器学习世界的初学者,甚至从不编程基础的学习者。希望看到这本新书能推动普及机器学习。

  ——知乎实验室化学家,前百度美利坚合众国纵深学习实验室少帅化学家-李磊

  这是一本面向机器学习实践的具有很强实用性的好书,适合于想利用机器学习情势求解实际问题的研究生生、研究生生、高年级本科生,以及在商店工作的工程技术人员阅读,是一本急迅理解机器学习形式求解实际问题的入门读物,相信读者将从本书中获益匪浅。

  ——南开大学统计机系教师-马少平

  即使目前市面上有关机器学习的书本很多,但很少具有可以将支付语言及机器学习理论紧密结合,利用开源技术,接纳类似“实训”格局的推行教学书籍。该书的撰稿人把温馨学习的阅历丰富融入到全书,深刻浅出,是一本适合在校学员以及工程技术人士在机械学习地点急忙入门的指点书。

  —— 东京(Tokyo)邮电大学软件大学讲授,教研中央决策者-南陈仕

  不同于多数专业性的书本,该书具有更低的翻阅门槛。即使不是电脑科学技术专业出身的读者,也足以跟随本书借助基本的Python编程,快捷上手zui新并且zui有效的机器学习模型。

  ——香江工业大学电脑与工程系讲座讲师,系主任,IEEE、AAAI Fellow,
国际人工智能协会(IJCAI,AAAI)常务理事,中国人工智能协会副理事,ACM KDD
China (ACM数据挖掘委员会 中国分会)主席-杨强

  该书的作者从初学者的见地,一步步指路读者从零基础神速成长为一位可以独立开展数据解析并且参与机器学习比赛的趣味爱好者。全书深切浅出,特别是对蓄意领会机器学习,又不想被复杂的数学理论苦恼的读者,会从此书中收入。

  ——苏州大学总括机科学与技术高校副秘书长、人类语言技术研商所所长、特聘讲师、国家非凡青年科学基金得到者-张民

  假若说机器学习会主导音讯产业的下一波浪潮,那么在这波浪潮来临在此之前,我们是不是有必不可少对这个窥究竟。我很欢乐有如此一本零基础实战的好书服务广大读者,为普及这一时髦尽绵薄之力。就像过去几十年间我们坚决普及电脑与互联网一样,人工智能,特别是机械学习的核心思想也应有走出象牙塔,拥抱普罗别克,尽可能让更多的兴味爱好者出席到实践当中。

  ——南开大学语音和言语技巧核心首席营业官、助教-郑方

  这是一本讲解使用Python举行机器学习实战的入门级好书。该书引领刚入门的读者,从零先河学习数据解析并控制机器学习竞技技能,适合于从事机械学习琢磨和应用的在校生和科研工作者。

  ——微软研商院首席钻探员,自然语言处理资深专家-周明

目录

第1章
简介篇……………………………………………………..1
1.1
机器学习综述……………………………………………………..1
1.1.1
任务…………………………………………………………..3
1.1.2
经验…………………………………………………………..5
1.1.3
性能…………………………………………………………..5
1.2
Python编程库……………………………………………………..8
1.2.1
为啥选拔Python………………………………………………..8
1.2.2
Python机器学习的优势…………………………………………….9
1.2.3 NumPy &
SciPy………………………………………………….10
1.2.4
Matplotlib…………………………………………………….11
1.2.5
Scikit-learn………………………………………………….11
1.2.6
Pandas………………………………………………………..11
1.2.7
Anaconda………………………………………………………12
1.3
Python环境配置…………………………………………………..12
1.3.1
Windows系统环境………………………………………………..12
1.3.2 Mac OS
系统环境………………………………………………..17
1.4
Python编程基础…………………………………………………..18
1.4.1
Python基本语法…………………………………………………19
1.4.2 Python
数据类型………………………………………………..20
1.4.3 Python
数据运算………………………………………………..22
1.4.4 Python
流程控制………………………………………………..26
1.4.5 Python
函数(模块)设计…………………………………………28
1.4.6 Python
编程库(包)的导入……………………………………….29
1.4.7 Python
基础综合实践…………………………………………….30
1.5章末小结……………………………………………………..33

第2章
基础篇……………………………………………………..34
2.1监察学习经典模型…………………………………………………34
2.1.1分拣学习………………………………………………………35
2.1.1.1 线性分类器
2.1.1.2 援助向量机(分类)
2.1.1.3 朴素贝叶斯
2.1.1.4 K近邻(分类)
2.1.1.5 决策树
2.1.1.6 集成模型(分类)
2.1.2回归预测………………………………………………………64
2.1.2.1 线性回归器
2.1.2.2 帮助向量机(回归)
2.1.2.3 K近邻(回归)
2.1.2.4 回归树
2.1.2.5 集成模型(回归)
2.2
无监督学习经典模型……………………………………………….81
2.2.1数码聚类………………………………………………81
2.2.1.1 K均值算法
2.2.2特征降维………………………………………………………91
2.2.2.1 主成分分析
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.3
XGBoost模型…………………………………………………..138
3.2.4
Tensorflow框架………………………………………………..140
3.3
章末小结……………………………………………………….152

第4章
实战篇……………………………………………………..153
4.1
Kaggle平台简介………………………………………………….153
4.2
Titanic罹难乘客预测……………………………………………..157
4.3
IMDB影评得分估算………………………………………………..165
4.4
MNIST手写体数字图片识别………………………………………….174
4.5
章末小结……………………………………………………….180

后记……………………………………………………………181

参考文献………………………………………………………..182

收起全体↑

赏心悦目书摘

  第3章 进阶篇
  在第2章中,我们向读者介绍了大量经典的机器学习模型,并且接纳Python编程语言分析这多少个模型在众多不同实际数据上的性质表现。不过,细心的读者在深深探究这多少个多少或者查阅Scikit-learn的文档之后就会意识:
所有我们在第2章中利用过的数据几乎都由此了规范化处理,而且模型也大抵只是应用了默认的先导化配置。换言之,即使大家得以使用经过处理将来的多寡,在默认配置下学习到一套用以拟合这一个数量的参数,并且动用那些参数和默认配置取得一些接近不错的特性表现;可是大家依旧无法回答多少个分外重要的问题:
实际啄磨和工作中接触到的数量都是如此规整的啊?难道那么些默认配置就是顶级的么?大家的模子性能是否还有提高的空中?本章”3.1模子使用技术”节将会支援读者朋友解答上述问题。阅读完这一节,相信各位读者朋友就会控制怎样通过抽取或者筛选数据特征、优化模型配置,进一步提高经典模型的性能表现。
  然则,随着如今机械学习探讨与运用的登时腾飞,经典模型逐步无法满足增长的数据量和复杂性的数据解析需求。由此,越来越多更加高效而且强力的就学模型以及对应的程序库正渐渐被规划和编制,并逐渐被科研圈和工业界所科普接受与利用。这个模型和程序库包括:
用于自然语言处理的NLTK程序包;词向量技术Word2Vec;可以提供有力预测能力的XGBoost模型,以及谷歌揭橥的用来深度学习的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语言的程序库:如Scikit-learn、NLTK、gensim、XGBoost、TensorFlow等;而且对准现实中的科研问题,甚至是Kaggle竞技(当前世界最流行的机械学习竞技平台)中的分析任务,飞快搭建有效的机器学习系统。

  朋友们在翻阅了几个章节之后,就会发觉这本书的特别之处。笔者力求裁减读者对编程技能和数学知识的超负荷看重,进而降低领会本书与实施机器学习模型的妙法;并意欲让更多的兴趣爱好者体会到应用经典模型,乃至更加高效的主意解决实际问题的乐趣。同时,笔者对书中每一处的重大术语都提供了专业的英文表明,也方便读者朋友尤为神速查看和明白相关的英文文献。

  由于本书不涉及对大气数学模型和错综复杂编程知识的上书,由此受众至极广阔。这里面就包括:在互联网、IT相关领域从事机械学习和数码挖掘息息相关职责的研发人员;于大学就读的学士、大学生大学生,甚至是对电脑编程有开首摸底的高年级本科生;以及对机械学习与数量挖掘竞技感兴趣的处理器业余爱好者等等。

  最后,衷心地盼望各位读者对象可以从本书获益,同时这也是对本身最大的砥砺和支撑。全书代码下载地址为:http://pan.baidu.com/s/1bGp15G。对于任何出现在书中的错误,欢迎大家批评指正,并发送至电邮:fanmiao.cslt.thu@gmail.com,我们会在本书的勘误网站https://coding.net/u/fanmiao\_thu/p/Python\_ML\_and\_Kaggle/topic
上记录下您的严重性贡献。

  写于美利哥伦敦主题公园

  2015年12月25日

  后记

  2015年12月的一天夜里,我在伦敦的家园接到哈工大大学李超先生的一则微信。她说他自己万分欣赏我在网络上登出的数个关于怎么着行使Python连忙搭建机器学习系列并在Kaggle竞技平台上实战的帖子,并且愿意我收拾出一本书出版。

  先导自己还很诧异,因为自身在网上发布的所有帖子都是平时学习工作的经验之谈,随性之作;没有太多的逻辑可言,更别说出版书籍了。当时登载这么些帖子的初衷,只是不期待广大机器学习爱好者重蹈我在实践中的荒唐,也盼望可以援救更多的同桌快速上手并且体验实战中乐趣。

  不过,当自家收到整理那部书稿的任务之后,忽然感到自己随身的担子重了成百上千。特别是在得知这本书很有可能被选为通用教材之后,登时发现后面所有我公布在互联网上的帖子几乎都不可用。原因是,作为一部教材就更要设身处地为读者着想,尤其是这本教材的目的受众不仅仅是电脑专业人员,更有非统计机专业的喉咙疼友和初入此道的本科生。所以,我几乎重新编写了整部书的提纲,参考网上的帖子重写了第二和第三章节,并且考虑到不同层次读者的需求,扩展了第一章节的Python编程基础和第四章Kaggle竞技实战等息息相关内容。

  即使时间匆忙,笔者也力求全书可以条理清晰、深切浅出地为广大读者朋友服务;但也有因能力所限、力所不逮之处,还望各位朋友批评指正,及时勘误。

  最终,再一次感谢您购阅《Python机器学习及举办》,并借由作者自我时常所引用斯蒂夫·乔布斯(Jobs)的一句名言,作为本书的了断:求知若饥、虚心若愚(Stay
Hungry, Stay Foolish),希望在其后的人生道路上能与读者对象们共勉。

  写于中国首都北大园

  2016年5月1日

admin

网站地图xml地图