内容介绍
基本信息
| 书名: | Python机器学习及实践-从零开始通往Kaggle竞赛之路 |
| 作者: | 范淼 | 开本: | |
| YJ: | 49 | 页数: | |
| 现价: | 见1;CY=CY部 | 出版时间 | 2016-10 |
| 书号: | 9787302442875 | 印刷时间: | |
| 出版社: | 清华大学出版社 | 版次: | |
| 商品类型: | 正版图书 | 印次: | |
内容提要 作者简介 范淼 :清华大学计算机系人工智能研究所博士,研究方向涉及机器学习与自然语言处理技术。2015年3月受国家留学基金委公派至美国纽约大学计算机系联合培养。攻读博士期间,于所在研究领域内多个重要GJ会议与期刊上发表论文近20篇。先后在Hulu、MSRA(微软亚洲研究院)、百度自然语言处理部、Bosch(博世)北美硅谷研究院等多个公司的研发部门实习,并承担机器学习与自然语言处理相关的研究任务。
李超: 工学博士,清华大学副研究员,信息技术研究院Web 与软件技术研究中心副主任。中国计算机学会信息存储技术专委会WY、中国计算机学会GJ会员、全国文献影像技术标准化技术WY会(SAC/TC86/SC6)WY、IEEE 会员。研究领域包括海量数据存储、组织与管理、分析,及其在数字图书馆/档案馆/教育/医疗/金融等领域的应用。主持及参与多项国家973、863、科技支撑、自然基金等纵向项目及横向合作项目。已发表学术论文50 余篇、获得授权发明专利10 余项。
精彩导读 D3章 进阶篇 在D2章中,我们向读者介绍了大量经典的机器学习模型,并且使用Python编程语言分析这些模型在许多不同现实数据上的性能表现。然而,细心的读者在深入研究这些数据或者查阅Scikit-learn的文档之后J会发现: 所有我们在D2章中使用过的数据几乎都经过了规范化处理,而且模型也大多只是采用了默认的初始化配置。换言之,尽管我们可以使用经过处理之后的数据,在默认配置下学习到一套用以拟合这些数据的参数,并且使用这些参数和默认配置取得一些看似良好的性能表现;但是我们仍然无法回答几个Z为关键的问题: 实际研究和工作中接触到的数据都是这样规整的吗?难道这些默认配置J是ZJ的么?我们的模型性能是否还有提升的空间?本章“3.1模型使用技巧”节将会帮助读者朋友解答上述疑问。阅读完这一节,相信各位读者朋友J会掌握如何通过抽取或者筛选数据特征、优化模型配置,进一步提升经典模型的性能表现。 然而,随着近些年机器学习研究与应用的快速发展,经典模型渐渐无法满足日益增长的数据量和复杂的数据分析需求。因此,越来越多更加高效而且强力的学习模型以及对应的程序库正逐渐被设计和编写,并慢慢被科研圈和工业界所广泛接受与采用。这些模型和程序库包括: 用于自然语言处理的NLTK程序包;词向量技术Word2Vec;能够提供强大预测能力的XGBoost模型,以及Google发布的用于深度学习的Tensorflow框架等等。更加令人振奋的是,上述这些Z为流行的程序库和模型, 不但提供了Python的编程接口API,而且有些成为Python编程语言的工具包,更是方便了我们后续的学习和使用。因此,在“3.2流行库/模型实践”节将会带领各位读者一同领略这些时下Z为流行的程序库和新模型的奥妙。
3.1模型实用及技巧 这一节将向读者朋友传授一系列更加偏向于实战的模型使用技巧。相信各位读者在D2章中品味了多个经典的机器学习模型之后,J会发现: 一旦我们确定使用某个模型,本书所提供的程序库J可以帮助我们从标准的训练数据中,依靠默认的配置学习到模型所需要的参数(Parameters);接下来,我们便可以利用这组得来的参数指导模型在测试数据集上进行预测,进而对模型的表现性能进行评价。 但是,这套方案并不能保证: (1) 所有用于训练的数据特征都是Z好的;(2) 学习得到的参数一定是Z优的;(3) 默认配置下的模型总是ZJ的。也J是说,我们可以从多个角度对在前面所使用过的模型进行性能提升。本节将向大家介绍多种提升模型性能的方式,包括如何预处理数据、控制参数训练以及优化模型配置等方法。 3.1.1特征提升 早期机器学习的研究与应用,受模型种类和运算能力的限制。因此,大部分研发人员把更多的精力放在对数据的预处理上。他们期望通过对数据特征的抽取或者筛选来达到提升模型性能的目的。所谓特征抽取,J是逐条将原始数据转化为特征向量的形式,这个过程同时涉及对数据特征的量化表示;而特征筛选则更进一步,在高维度、已量化的特征向量中选择对指定任务更有效的特征组合,进一步提升模型性能。 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): 顾名思义,不考虑词语出现的顺序,只是将训练文本中的每个出现过的词汇单D视作一列特征。我们称这些不重复的词汇集合为词表(Vocabulary),于是每条训练文本都可以在高维度的词表上映射出一个特征向量。而特征数值的常见计算方式有两种,分别是: CountVectorizer和TfidfVectorizer。对于每一条训练文本,CountVectorizer只考虑每种词汇(Term)在该条训练文本中出现的频率(Term Frequency)。而TfidfVectorizer除了考量某一词汇在D前文本中出现的频率(Term Frequency)之外,同时关注包含这个词汇的文本条数的倒数(Inverse Document Frequency)。相比之下,训练文本的条目越多,TfidfVectorizer这种特征量化方式J更有优势。因为我们计算词频(Term Frequency)的目的在于找出对所在文本的含义更有贡献的重要词汇。然而,如果一个词汇几乎在每篇文本中出现,说明这是一个常用词汇,反而不会帮助模型对文本的分类;在训练文本量较多的时候,利用TfidfVectorizer压制这些常用词汇的对分类决策的干扰,往往可以起到提升模型性能的作用。 我们通常称这些在每条文本中都出现的常用词汇为停用词(Stop Words),如英文中的the、a等。这些停用词在文本特征抽取中经常以黑名单的方式过滤掉,并且用来提高模型的性能表现。下面的代码让我们重新对“20类新闻文本分类”问题进行分析处理,这一次的重点在于列举上述两种文本特征量化模型的使用方法,并比较他们的性能差异。 ……
目录
●D1章简介篇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�瞝earn11
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〗目录●D2章基础篇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
●D3章进阶篇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
●D4章实战篇153
4.1Kaggle平台简介153
4.2Titanic罹难乘客预测157
4.3IMDB影评得分估计165
4.4MNIST手写体数字图片识别174
4.5章末小结180
●后记181
●参考文献182
目录
。。。。。。。。。。
《Python机器学习与实战:解锁数据洞察,踏上智能实践之旅》 在这个数据爆炸的时代,如何从海量信息中提炼价值,用智能技术解决实际问题,成为个人与企业发展的关键。本书正是为你量身打造的一条通往数据智能实践的清晰路径。我们不拘泥于理论的繁复,更注重理论与实践的深度融合,旨在帮助你掌握将机器学习技术应用于解决真实世界挑战的核心能力。 本书的独特之处: 以问题为导向,聚焦核心应用: 我们深知学习的终极目标是解决问题。因此,本书围绕一系列典型的数据科学应用场景展开,如精准的客户画像构建、高效的风险预测模型、智能的推荐系统设计、以及自动化文本情感分析等。每一个章节都紧密关联一个实际应用痛点,让你在解决问题的过程中自然而然地掌握相关技术。 Python语言的灵活运用,赋能高效开发: Python以其简洁易学的语法和丰富的第三方库生态,已成为数据科学领域的首选语言。本书将充分发挥Python的优势,深入介绍NumPy、Pandas、Scikit-learn、Matplotlib、Seaborn等核心库的使用。你将学习如何用Python进行数据清洗、特征工程、模型训练、性能评估,以及可视化展示,从而大大提升你的开发效率和模型构建能力。 从零开始,系统进阶的学习曲线: 无论你是初次接触机器学习的新手,还是希望巩固和拓展技能的开发者,本书都能满足你的需求。我们从最基础的数据概念和Python编程技巧入手,循序渐进地引入机器学习的基本原理、常用算法及其数学原理。随后,深入探讨高级主题,如深度学习、自然语言处理、计算机视觉等,让你能够应对更复杂的挑战。 代码驱动,亲手实践是王道: 理论的理解离不开实践的检验。本书提供了大量高质量、可运行的Python代码示例,覆盖了数据预处理、模型选择、参数调优、结果解读等全流程。我们将鼓励你动手修改、运行、甚至挑战这些代码,通过“做中学”的方式,将知识内化为你的核心竞争力。 案例丰富,覆盖多元化领域: 为了让学习更具启发性,本书精心挑选了来自金融、电商、医疗、市场营销等多个行业的真实案例。这些案例不仅展示了机器学习在不同领域的广泛应用,也为你提供了模仿和借鉴的宝贵素材。你将看到如何将学到的理论知识转化为切实可行的商业解决方案。 注重模型的可解释性与伦理考量: 在追求模型性能的同时,我们同样强调模型的可解释性和数据伦理的重要性。本书将引导你理解如何评估模型的公平性、鲁棒性,以及如何避免算法偏见,让你在构建智能系统时,能够负责任地运用技术。 本书内容梗概: 第一部分:数据科学的基石——Python与数据处理 Python基础与开发环境搭建: 快速掌握Python核心语法,配置Anaconda、Jupyter Notebook等开发工具,为后续学习打下坚实基础。 NumPy与Pandas:数据处理的利器: 深入学习NumPy数组操作,Pandas DataFrame和Series的强大数据结构与分析功能,实现高效的数据加载、清洗、转换和合并。 数据可视化:洞察数据的窗口: 掌握Matplotlib和Seaborn库,用图表直观地展示数据分布、关系和趋势,为特征工程和模型评估提供直观依据。 第二部分:机器学习入门——核心概念与算法 机器学习概述与工作流程: 理解监督学习、无监督学习、强化学习的基本概念,掌握数据预处理、特征工程、模型选择、训练、评估与部署的完整流程。 回归算法:预测数值型输出: 学习线性回归、多项式回归、岭回归、Lasso回归等,理解其原理,并应用于房价预测、销售额预测等场景。 分类算法:识别离散类别: 深入掌握逻辑回归、K近邻(KNN)、支持向量机(SVM)、决策树、随机森林等分类算法,应用于垃圾邮件过滤、客户流失预测、图像识别等。 模型评估与选择: 学习精确率、召回率、F1分数、ROC曲线、AUC值等评估指标,掌握交叉验证、网格搜索等模型调优技术,确保模型泛化能力。 特征工程:提升模型性能的关键: 学习特征选择、特征提取(如PCA、LDA)、特征编码、特征缩放等技术,挖掘数据潜在价值,优化模型表现。 第三部分:进阶机器学习——深入探索与应用 集成学习:组合力量,提升精度: 学习Bagging(如随机森林)、Boosting(如AdaBoost、XGBoost、LightGBM)等集成学习方法,理解它们如何通过组合多个弱学习器来获得强大的预测能力,并应用于复杂数据集。 无监督学习:发现数据中的隐藏结构: 掌握聚类算法(K-Means、DBSCAN、层次聚类)和关联规则挖掘(Apriori),应用于客户细分、市场篮子分析等。 降维技术:简化数据,加速训练: 学习主成分分析(PCA)、线性判别分析(LDA)等降维方法,有效处理高维数据,提升模型效率。 时间序列分析:理解与预测随时间变化的数据: 学习ARIMA、Prophet等模型,应用于股票价格预测、天气预报、销售趋势分析等。 异常检测:识别不寻常的模式: 学习Isolation Forest、One-Class SVM等算法,应用于欺诈检测、设备故障预警等。 第四部分:深度学习与前沿技术 神经网络基础: 理解人工神经网络的基本结构、激活函数、反向传播算法。 卷积神经网络(CNN): 学习CNN在图像识别、目标检测等计算机视觉任务中的应用,包括模型构建、训练与优化。 循环神经网络(RNN)与长短期记忆网络(LSTM): 掌握RNN及其变种在序列数据处理中的应用,如自然语言处理(文本生成、机器翻译)、语音识别等。 自然语言处理(NLP)技术: 深入学习词向量(Word2Vec、GloVe)、文本分类、情感分析、主题模型(LDA)等NLP核心技术。 模型部署与服务化: 学习将训练好的模型部署到生产环境,使用Flask、Django等框架构建API接口,实现模型的在线应用。 第五部分:实战项目与竞赛策略(示例) 案例研究: 电商用户行为分析与推荐系统构建: 从用户浏览、购买数据出发,构建协同过滤、基于内容的推荐模型,提升用户体验和转化率。 金融风险评估模型: 利用历史数据,构建信用评分、欺诈检测模型,降低金融风险。 医疗影像分析: 基于深度学习模型,实现病灶识别、辅助诊断。 市场营销活动优化: 通过客户画像和预测模型,实现精准营销,提高广告投放效果。 学习如何参加数据科学竞赛: 分享数据获取、特征工程、模型选择、调优、提交策略等实战经验,帮助你更好地应对各种挑战。 本书的目标读者: 在校学生: 计算机科学、统计学、数学、工程学等专业的学生,希望系统学习机器学习理论与实践。 在职开发者: 希望将机器学习技术融入现有产品或服务,提升技术栈的软件工程师、数据分析师、产品经理。 数据科学爱好者: 对数据分析、人工智能充满热情,渴望掌握实际应用能力的个人。 转型从业者: 希望进入数据科学、人工智能领域工作的相关专业人士。 通过本书的学习,你将不仅掌握一系列强大的机器学习算法和Python工具,更重要的是,你将培养起独立分析问题、设计解决方案、并用代码实现智能预测和决策的能力。让我们一起,从零开始,踏上这场精彩的数据智能实践之旅!