《<机器学习即服务:将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 摘要式身份