描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111627036
1)将机器学习、统计、通过Web应用程序进行原型设计三种不同的知识组合在一起,并与云服务提供商合作。
2)提供一个简单的、云相关的、技术无限的指南,帮助你尽可能快地将Python建模工作推广到世界各地。
3)讨论了在Web上快速进行统计和建模工作原型设计的艺术。
4)可以在Jupyter Notebook和代码存储库GitHub获取本书代码,方便读者动手验证和自定义实践。
本书涵盖Kubernetes架构、部署、核心资源类型、系统扩缩容、存储卷、网络插件与网络本书由浅入深地介绍了一系列常见的Python数据科学问题。书中介绍的实践项目简单明了,可作为模板快速启动其他类似项目。通过本书,你将学习如何构建一个Web应用程序以进行数值或分类预测,如何理解文本分析,如何创建强大的交互界面,如何对数据访问进行安全控制,以及如何利用Web插件实现信用卡付款和捐赠。
每章都遵循三个步骤:以正确的方式建模,设计和开发本地Web应用程序,部署到流行且可靠的无服务器计算云平台(亚马逊、微软、谷歌和PythonAnywhere)上。本书各章之间是独立的,你可以根据需求跳转至特定主题。
译者序2
译者序3
关于作者
关于技术审校者
前言
第1章 无服务器计算介绍1
1.1 一个简单的本地Flask应用程序1
1.2 在微软Azure上使用无服务器计算4
1.2.1 操作步骤5
1.2.2 结论和附加信息12
1.3 在谷歌云上使用无服务器计算12
1.3.1 操作步骤13
1.3.2 结论和附加信息18
1.4 在Amazon AWS上使用无服务器计算19
1.4.1 操作步骤19
1.4.2 结论和附加信息24
1.5 在PythonAnywhere上托管应用程序24
1.5.1 操作步骤25
1.5.2 结论和附加信息26
1.6 本章小结26
第2章 在Azure上进行共享单车回归模型智能预测27
2.1 共享单车租赁需求回归系数分析28
2.2 探索共享单车原始数据集28
2.2.1 下载UCI机器学习库数据集29
2.2.2 Jupyter Notebook配置使用29
2.2.3 数据集探索31
2.2.4 预测结果变量分析33
2.2.5 量化特征与租赁统计34
2.2.6 分类特征研究35
2.3 数据建模准备工作36
2.3.1 回归建模37
2.3.2 简单线性回归37
2.3.3 简单线性回归模型37
2.4 特征工程试验39
2.4.1 多项式建模39
2.4.2 创建分类数据虚拟特征40
2.4.3 非线性模型试验41
2.4.4 使用时间序列复杂特征42
2.5 简约模型44
2.5.1 简单模型中的回归系数提取44
2.5.2 R-Squared44
2.5.3 基于回归系数的新数据预测46
2.6 共享单车租赁需求交互式Web应用设计48
2.6.1 代码可读性与扩展性摘要48
2.6.2 构建本地Flask应用49
2.6.3 下载运行GitHub共享单车代码50
2.6.4 Web应用程序调试最佳实践51
2.7 在微软Azure上运行Web应用程序54
2.7.1 使用Git托管项目代码54
2.7.2 微软Azure命令行接口工具使用56
2.7.3 资源清理59
2.7.4 故障排查60
2.7.5 步骤回顾62
2.8 Web应用程序脚本及技术分析62
2.8.1 main.py文件分析63
2.8.2 /static/文件夹分析64
2.8.3 /templates/index.html文件及脚本分析64
2.9 本章小结66
2.10 附加资源66
第3章 在GCP上基于逻辑回归实现实时智能67
3.1 规划Web应用68
3.2 数据处理68
3.2.1 处理分类型数据71
3.2.2 从分类型数据创建虚拟特征75
3.3 建模75
3.3.1 训练和测试数据集拆分76
3.3.2 逻辑回归77
3.3.3 预测幸存率78
3.4 准备上云78
3.4.1 函数startup()79
3.4.2 函数submit_new_profile()79
3.4.3 使用HTML表单实现交互79
3.4.4 创建动态图像80
3.4.5 下载Titanic代码81
3.5 部署到谷歌云上82
3.5.1 Google App Engine82
3.5.2 在Google App Engine上进行部署83
3.5.3 问题排查86
3.5.4 收尾工作87
3.6 代码回顾87
3.6.1 main.py87
3.6.2 app.yaml88
3.6.3 appengine_config.py文件与lib文件夹89
3.6.4 requirements.txt89
3.7 步骤回顾90
3.8 本章小结90
第4章 在AWS上使用Gradient Boosting Machine进行预训练91
4.1 Web应用程序规划92
4.2 探索葡萄酒品质数据集92
4.3 处理不平衡的类别95
4.4 使用Gradient Boosting Classifier97
4.4.1 评估模型98
4.4.2 持久化模型101
4.4.3 新数据预测101
4.5 设计Web应用程序以交互评估葡萄酒品质103
4.6 Ajax—服务器端动态Web渲染104
4.7 在虚拟环境中工作:一个方便实验、更加安全和纯净的沙箱104
4.8 AWS Elastic Beanstalk105
4.8.1 为Elastic Beanstalk创建一个访问账户106
4.8.2 Elastic Beanstalk108
4.8.3 EB Command Line Interface108
4.8.4 修复WSGIApplication-Group110
4.8.5 创建EB应用程序111
4.8.6 查看应用程序111
4.9 资源清理112
4.10 步骤回顾114
4.11 故障排查115
4.11.1 查看日志115
4.11.2 SSH登录到实例115
4.12 本章小结116
第5章 案例研究1:在Web和移动浏览器上预测股票市场117
5.1 配对交易策略118
5.2 下载和准备数据119
5.2.1 准备数据120
5.2.2 股票代码透视121
5.3 价格市场数据扩展121
5.4 绘制价差122
5.5 交易理念123
5.5.1 寻找极端案例123
5.5.2 提供交易建议124
5.6 计算交易股数125
5.7 设计一个移动友好的Web应用程序提供交易建议127
5.8 运行本地Flask应用程序128
5.9 表单验证130
5.10 在PythonAnywhere上运行应用程序130
5.11 修复WSGI文件133
5.11.1 源代码133
5.11.2 WSGI配置133
5.11.3 重新加载网站134
5.12 PythonAnywhere故障排查135
5.13 本章小结136
第6章 基于Azure和Google地图的犯罪行为预测137
6.1 Web应用程序规划138
6.2 探索旧金山犯罪热图数据集138
6.2.1 数据清洗139
6.2.2 数据重分布140
6.2.3 周数据探索142
6.3 数据特征工程142
6.3.1 创建年度月份汇总数据特征143
6.3.2 创建时段数据特征144
6.3.3 时段特征数据集探索145
6.4 地理数据可视化146
6.4.1 地理坐标位置绘制146
6.4.2 地理坐标近似值区块创建147
6.5 基于历史数据的犯罪预测149
6.6 Google地图152
6.7 热力图层153
6.8 犯罪数据在Google地图上的应用154
6.9 犯罪预测数据自定义提取155
6.10 设计Web应用程序156
6.10.1 添加Goo
进入门槛降低,市场变化加快
本书将指导你完成各种各样的项目,这些项目探索不同的Python机器学习创意,以及将这些创意转化为Web应用程序的各种方法。每一章都以一个无服务器计算的Web应用程序结尾,全世界任何人都可以通过Internet连接并访问该应用程序。这些项目基于经典和流行的Python数据科学问题,难度逐步增加。本书研究和设计了一个建模方案,有趣的是,最后该方案会被实现为交互式和诱人的Web应用程序。
数据科学家是一个了不起的职业,但在人们试图成长为一名数据科学家时,他们的学习材料千差万别。数据科学不是关于统计和建模的,而是用于满足人类需求和解决实际问题的。
我们不会把“成为一名数据科学家”作为本书的最终目标,关于这个主题的书籍已经很多了。相反,我们将专注于把机器学习产品快速、简单地推向市场,并始终关注客户!这是职业教育大纲所缺少的。如果先构建,然后再与客户沟通,那么你的解决方案将无法满足他们的要求。我重新绘制了Drew Conway的数据科学维恩图,将倾听客户的声音作为首要任务(图1)。
图1 经典的数据科学维恩图,右边是我更新的版本
我们为写作本书倾尽全力。我们花时间开发概念,确保它们对读者有实际价值(读者即我们的客户,应始终关注他们)。我撰写了初稿,然后Mehdi再修改它。这是一本涉猎广泛的书。工具在不断变化,当你阅读本书时,一些内容可能过时,但这永远不是问题(你可以去GitHub仓库查看更新)。毕竟,一切都在变化,但往往都是变得更好!因此,学习新技巧通常意味着学到更好、更快、更强大的方法来做事。本书不仅向你展示如何构建Web应用程序,还将为你指明正确的方向,以便你更深入地学习感兴趣领域的知识。
建议你通读本书,理解工具,然后复制它们,把它们变成你自己的。这些模板可以帮助你快速启动其他类似项目,为你的客户构建有效的工具。
什么是无服务器云计算
云提供商一直在努力改进Web托管解决方案并降低成本。最近出现的“无服务器计算”(serverless)服务抽象了大部分的配置过程,本书提到的四大云提供商中有三个提供这种服务。这意味着你可以在完全托管的平台上启动和运行项目,实现自动负载均衡、根据吞吐量弹性伸缩、快速部署等,而无须选择、配置和担心任何事情。你可自行决定架构上的定制程度和监控项。你可选择哪些自己控制,哪些由提供商控制。有一件事是可以保证的:网站将自动调整流量,并提供无与伦比的正常运行时间。
这使我们能专注于更重要的事情,而不会陷入实现目标时可能的陷阱之中。这些所谓的“陷阱”至关重要,需要我们认真对待。这就是我们找了这四家信誉良好的云提供商的原因,它们将让我们完全专注于Web应用程序,而不用担心网站崩溃或提供商倒闭。让我们专注于重要的事情,开始工作吧!
Web应用开发中的关键路径
如此多的机器学习模型在其最初编码阶段就让人停滞不前:这些模型很难理解,没有简单方法让人从其洞察中受益。这些模型注定要被遗忘,即使是那些设法摆脱集成开发接口限制的开发人员,在简化静态图表或为建模评分时,也无法发挥其潜力。本书旨在将扩展机器学习模型到通用的Web应用程序这一过程进行分解来避免这种陷阱。每一章都遵循以下三个关键步骤:
1. 以正确的方式建模。我们从最后的成果开始,首先理解用户想要看到什么,并将时间和精力投入到最终目标和用户体验上。我们使用适当的建模方法,以便快速且毫不意外地实现Web应用程序的目标(图2)。
图2 在构建之前,始终检查你的想法是否有受众(来源:Lucas Amunategui)
2. 设计和开发本地Web应用程序。此步骤需利用各种Web前端技术来实现所需的交互性和动态性,以突出模型的洞察力,从而让用户感兴趣。此阶段的最终产品与下一阶段的产品是完全一样的,只是它托管在你的本地计算机上,而不是云上。
3. 部署到流行且可靠的无服务器计算云平台上。每个云提供商都有独特的要求、优点和缺点,需要充分理解这些问题。这是全世界享受和学习你的工作成果的最后一个环节。
我们从提供智能交互性的简单方法入手(比如调整模型的系数或利用保存好的训练过的模型),然后转向复杂方法(比如使用数据库跟踪参与性,或依赖开放源码的训练过的模型进行图像识别)。案例研究1是一个关于股票市场预测的虚构案例,它在后面的章节中会被反复提及,并添加新功能,直到它最终成为一个带有付费使用门槛的复杂仪表板,为付费用户提供可定制的智能化功能。
通过关注经典的数据科学问题,再加上流行的开源技术(如Python、Flask、Ajax、Bootstrap、JavaScript和HTML),你会发现自己已经了解了一些基础知识;即使你还不了解,你的学习曲线也会大大缩短。我们专注于使用简单的工具和简单的技术,去可靠、快速地将机器学习创意付诸实践。工具和方法在每一章都会被重新提及,所以如果你对某些东西一开始还不太清楚,也不用担心,只要继续下去,事情就会越来越清晰。
我们还在每章中轮流提到云
评论
还没有评论。