机器学习即服务:将Python机器学习创意快速转变为云端Web应用程序


《<机器学习即服务:将Python机器学习创意快速转变为云端Web应用程序>读书摘要》

一、主要内容

《机器学习即服务:将Python机器学习创意快速转变为云端Web应用程序》一书由曼纽尔·阿米纳特吉(Manuel Amunategui)和迈赫迪·洛佩伊(Mehdi Roopaei)著,刘世民、山金孝、史天、肖力译,机械工业出版社出版,属于智能系统与技术丛书。

本书主要围绕如何将Python机器学习的创意快速转化为云端Web应用程序展开。首先,介绍了无服务器计算的概念和相关平台,如微软Azure、谷歌云、亚马逊AWS和PythonAnywhere等,让读者了解在这些平台上进行开发和部署的基本操作与特点。接着,深入探讨了各种机器学习模型和算法在实际项目中的应用,包括回归模型、逻辑回归、Gradient Boosting Machine等,通过共享单车租赁需求预测、葡萄酒品质预测等案例,详细讲解了数据探索、预处理、建模、评估以及模型优化的全过程。

此外,书中还着重介绍了如何将这些机器学习模型与Web应用程序相结合,实现交互式的应用。例如,讲解了如何设计Web应用程序的界面和功能,使其能够与后端的机器学习模型进行交互,展示预测结果等。同时,还涉及到了在不同云平台上部署这些Web应用程序的具体步骤和注意事项,包括代码的上传、环境的配置、资源的管理以及故障排查等方面,帮助读者顺利将自己的机器学习创意落地为实际可用的云端应用。

二、详细目录

• 第1章 无服务器计算介绍

• 1.1 一个简单的本地Flask应用程序

• 1.2 在微软Azure上使用无服务器计算

• 1.2.1 操作步骤

• 1.2.2 结论和附加信息

• 1.3 在谷歌云上使用无服务器计算

• 1.3.1 操作步骤

• 1.3.2 结论和附加信息

• 1.4 在Amazon AWS上使用无服务器计算

• 1.4.1 操作步骤

• 1.4.2 结论和附加信息

• 1.5 在PythonAnywhere上托管应用程序

• 1.5.1 操作步骤

• 1.5.2 结论和附加信息

• 1.6 本章小结

• 第2章 在Azure上进行共享单车回归模型智能预测

• 2.1 共享单车租赁需求回归系数分析

• 2.2 探索共享单车原始数据集

• 2.2.1 下载UCI机器学习库数据集

• 2.2.2 Jupyter Notebook配置使用

• 2.2.3 数据集探索

• 2.2.4 预测结果变量分析

• 2.2.5 量化特征与租赁统计

• 2.2.6 分类特征研究

• 2.3 数据建模准备工作

• 2.3.1 回归建模

• 2.3.2 简单线性回归

• 2.3.3 简单线性回归模型

• 2.4 特征工程试验

• 2.4.1 多项式建模

• 2.4.2 创建分类数据虚拟特征

• 2.4.3 非线性模型试验

• 2.4.4 使用时间序列复杂特征

• 2.5 简约模型

• 2.5.1 简单模型中的回归系数提取

• 2.5.2 R-Squared

• 2.5.3 基于回归系数的新数据预测

• 2.6 共享单车租赁需求交互式Web应用设计

• 2.6.1 代码可读性与扩展性摘要

• 2.6.2 构建本地Flask应用

• 2.6.3 下载运行GitHub共享单车代码

• 2.7 在微软Azure上运行Web应用程序

• 2.7.1 使用Git托管项目代码

• 2.7.2 微软Azure命令行接口工具使用

• 2.7.3 资源清理

• 2.7.4 故障排查

• 2.7.5 步骤回顾

• 2.8 Web应用程序脚本及技术分析

• 2.8.1 main.py文件分析

• 2.8.2 /static/文件夹分析

• 2.8.3 /templates/index.html文件及脚本分析

• 2.9 本章小结

• 2.10 附加资源

• 第3章 在GCP上基于逻辑回归实现实时智能

• 3.1 规划Web应用

• 3.2 数据处理

• 3.2.1 处理分类型数据

• 3.2.2 从分类型数据创建虚拟特征

• 3.3 建模

• 3.3.1 训练和测试数据集拆分

• 3.3.2 逻辑回归

• 3.3.3 预测准确率

• 3.4 准备上云

• 3.4.1 函数startup()

• 3.4.2 函数submit_new_profile()

• 3.4.3 使用HTML表单实现交互

• 3.4.4 创建动态图像

• 3.4.5 下载Titanic代码

• 3.5 部署到谷歌云上

• 3.5.1 Google App Engine

• 3.5.2 在Google App Engine上进行部署

• 3.5.3 问题排查

• 3.5.4 收尾工作

• 3.6 代码回顾

• 3.6.1 main.py

• 3.6.2 app.yaml

• 3.6.3 appengine_config.py文件与lib文件夹

• 3.6.4 requirements.txt

• 3.7 步骤回顾

• 3.8 本章小结

• 第4章 在AWS上使用Gradient Boosting Machine进行预训练

• 4.1 Web应用程序规划

• 4.2 探索葡萄酒品质数据集

• 4.3 处理不平衡的类别

• 4.4 使用Gradient Boosting Classifier

• 4.4.1 评估模型

• 4.4.2 持久化模型

• 4.4.3 新数据预测

• 4.5 设计Web应用程序以交互评估葡萄酒品质

• 4.6 Ajax——服务器端动态Web渲染

• 4.7 在虚拟环境中工作:一个方便实验、更加安全和纯净的沙箱

• 4.8 AWS Elastic Beanstalk

• 4.8.1 为Elastic Beanstalk创建一个访问账户

• 4.8.2 Elastic Beanstalk

• 4.8.3 EB Command Line Interface

• 4.8.4 修复WSGIApplicationGroup

• 4.8.5 创建EB应用程序

• 4.8.6 查看应用程序

• 4.9 资源清理

• 4.10 步骤回顾

• 4.11 故障排查

• 4.11.1 查看日志

• 4.11.2 SSH登录到实例

• 4.12 本章小结

• 第5章 案例研究1:在Web和移动浏览器上预测股票市场

• 5.1 配对交易策略

• 5.2 下载和准备数据

• 5.2.1 准备数据

• 5.2.2 股票代码透视

• 5.3 价格市场数据扩展

• 5.4 绘制价差

• 5.5 交易理念

• 5.5.1 寻找极端案例

• 5.5.2 提供交易建议

• 5.6 计算交易股数

• 5.7 设计一个移动友好的Web程序提供交易建议

• 5.8 运行本地Flask应用程序

• 5.9 表单验证

• 5.10 在PythonAnywhere上运行应用程序

• 5.11 修复WSGI文件

• 5.11.1 源代码

• 5.11.2 WSGI配置

• 5.11.3 重新加载网站

• 5.12 PythonAnywhere故障排查

• 5.13 本章小结

• 第6章 基于Azure和Google地理犯罪行为预测

• 6.1 Web应用程序规划

• 6.2 探索旧金山犯罪热图数据集

• 6.2.1 数据清洗

• 6.2.2 数据重分布

• 6.2.3 周数据探索

• 6.3 数据特征工程

• 6.3.1 创建年度月份汇总数据特征

• 6.3.2 创建时段数据特征

• 6.3.3 时段特征数据集探索

• 6.4 地理数据可视化

• 6.4.1 地理坐标位置绘制

• 6.4.2 地理坐标近似值区块创建

• 6.5 基于历史数据的犯罪预测

• 6.6 Google地图

• 6.7 热力图层

• 6.8 犯罪数据在Google地图上的应用

• 6.9 犯罪预测数据自定义提取

• 6.10 设计Web应用程序

• 6.10.1 添加Google API密钥

• 6.10.2 本地运行Web应用程序

• 6.10.3 Azure公有云Git准备

• 6.10.4 Azure命令行接口工具

• 6.10.5 故障排查

• 6.10.6 资源清理

• 6.11 本章小结

• 第7章 在AWS上使用朴素贝叶斯和OpenWeather进行预测

• 7.1 探索数据集

• 7.2 朴素贝叶斯

• 7.3 Sklearn中的GaussianNB

• 7.4 实时天气预报OpenWeatherMap

• 7.4.1 使用天气预报服务

• 7.4.2 数据转换

• 7.5 设计Web应用程序

• 7.6 在AWS Elastic Beanstalk上运行应用程序

• 7.6.1 修复WSGIApplicationGroup

• 7.6.2 查看应用程序

• 7.7 本章小结

• 7.7.1 访问OpenWeatherMap数据

• 7.7.2 捕获异常

• 7.7.3 处理用户输入的数据

• 第8章 在GCP上基于TensorFlow实现交互式绘画和数字预测

• 8.1 MNIST数据集

• 8.2 TensorFlow

• 8.3 使用TensorFlow和卷积网络建模

• 8.3.1 构建建模层

• 8.3.2 损失函数

• 8.3.3 实例化会话

• 8.3.4 训练

• 8.3.5 准确度

• 8.3.6 运行脚本

• 8.4 准备上云

• 8.4.1 运行一个保存的TensorFlow模型

• 8.4.2 保存模型

• 8.4.3 画布

• 8.4.4 从画布到TensorFlow

• 8.4.5 测试新的手写数字

• 8.4.6 设计Web应用程序

• 8.4.7 下载Web应用程序

• 8.5 部署到谷歌云上

• 8.5.1 谷歌云Flexible App Engine

• 8.5.2 在Google App Engine上部署

• 第9章 案例研究2:动态股票图表显示

• 9.1 使用Matplotlib创建股票图表

• 9.2 探索配对交易图表

• 9.3 设计Web应用程序

• 9.4 具有移动友好性的表格

• 9.5 上传Web应用程序到PythonAnywhere

• 9.6 本章小结

• 第10章 在GCP上使用奇异值分解实现推荐系统

• 10.1 规划Web应用

• 10.2 推荐系统简介

• 10.3 探索MovieLens数据集

• 10.3.1 MovieLens数据集概况

• 10.3.2 探索ratings.csv和movies.csv

• 10.3.3 理解评级和评级文化

• 10.3.4 给出推荐

• 10.4 协同过滤

• 10.4.1 相似性和距离测量工具

• 10.4.2 欧几里得距离

• 10.4.3 余弦相似距离

• 10.5 奇异值分解

• 10.5.1 将电影评级集中到稀疏矩阵

• 10.5.2 观察SVD的行为

• 10.6 准备上云

• 10.6.1 下载并在本地运行电影看什么?

• 10.6.2 代码解释?

• 10.7 部署到谷歌云上

• 10.7.1 在Google App Engine上部署

• 10.7.2 问题排查

• 10.7.3 收尾工作

• 10.8 本章小结

• 第11章 在Azure上使用NLP和可视化技术简化复杂概念

• 11.1 Web应用规划

• 11.2 数据探索

• 11.3 文本清理

• 11.4 基于文本的特征工程

• 11.5 TFIDF文本数据清理

• 11.6 NLP与正则表达式

• 11.7 使用外部垃圾邮件关键字列表

• 11.8 使用Sklearn库TfidfVectorizer提取特征

• 11.9 输出变量准备

• 11.10 使用Sklearn库随机森林分类器建模

• 11.10.1 模型性能测量

• 11.10.2 模型阈值交互

• 11.11 Web图形化交互

• 11.12 构建本地Flask Web应用

• 11.13 将应用程序部署到Azure公有云

• 11.13.1 在Azure上部署Git

• 11.13.2 Azure命令行接口工具

• 11.13.3 资源清理

• 11.13.4 故障排查

• 11.14 本章小结与附加资源

• 第12章 案例研究3:使用基础财务信息使内容更丰富

• 12.1 访问股票上市公司名单

• 12.2 使用维基百科API获取公司信息

• 12.3 构建动态FinViz链接

• 12.4 基础消息探索

• 12.5 设计Web应用程序

• 12.6 上传Web应用程序到PythonAnywhere

• 12.7 本章小结

• 第13章 使用Google Analytics

• 13.1 创建Google Analytics账户

• 13.2 JavaScript跟踪器

• 13.3 阅读分析报告

• 13.4 流量来源

• 13.5 页面

• 13.6 本章小结与附加资源

• 第14章 在PythonAnywhere上使用A/B测试和MySQL数据库

• 14.1 A/B测试

• 14.1.1 用户跟踪

• 14.1.2 通用唯一标识符

• 14.2 MySQL

• 14.2.1 使用命令行启动和停止服务

• 14.2.2 MySQL命令行监视器

• 14.2.3 创建数据库

• 14.2.4 创建数据表

• 14.2.5 创建数据库用户

• 14.3 Python库:mysql.connector

• 14.3.1 SELECT SQL语句

• 14.3.2 INSERT SQL语句

• 14.3.3 UPDATE SQL语句

• 14.4 将代码抽象为函数

• 14.5 设计Web应用程序

• 14.6 在PythonAnywhere上设置MySQL

• 14.7 在PythonAnywhere上进行A/B测试

• 14.8 A/B测试结果

• 14.9 本章小结

• 第15章 从访问者到订阅者

• 15.1 基于文本的身份验证

• 15.1.1 Flask-HTTPAuth硬编码账户

• 15.1.2 摘要式身份