《零基础学机器学习》简介:
本书的目标,是让非机器学习领域甚至非计算机专业出身但有学习需求的人,轻松地掌握机器学习的基本知识,从而拥有相关的实战能力。本书通过AI“小白”小冰拜师程序员咖哥学习机器学习的对话展开,内容轻松,实战性强,主要包括机器学习快速上手路径、数学和Python 基础知识、机器学习基础算法(线性回归和逻辑回归)、深度神经网络、卷积神经网络、循环神经网络、经典算法、集成学习、无监督和半监督等非监督学习类型、强化学习实战等内容,以及相关实战案例。本书所有案例均通过Python及Scikit-learn 机器学习库和Keras 深度学习框架实现,同时还包含丰富的数据分析和数据可视化内容。本书适合对AI 感兴趣的程序员、项目经理、在校大学生以及任何想以零基础学机器学习的人,用以入门机器学习领域,建立从理论到实战的知识通道。
《零基础学机器学习》目录:
引子:AI 菜鸟的挑战—100 天上线智能预警系统
第壹 课 机器学习快速上手路径—唯有实战
1.1 机器学习的家族谱
1.1.1 新手入门机器学习的3 个好消息
1.1.2 机器学习*是从数据中发现规律
1.1.3 机器学习的类别—监督学习及其他
1.1.4 机器学习的重要分支—深度学习
1.1.5 机器学习新热点—强化学习
1.1.6 机器学习的两大应用场景—回归与分类
1.1.7 机器学习的其他应用场景
1.2 快捷的云实战学习模式
1.2.1 在线学习平台上的机器学习课程
1.2.2 用Jupyter Notebook 直接实战
1.2.3 用Google Colab 开发第壹个机器学习程序
1.2.4 在Kaggle 上参与机器学习竞赛
1.2.5 在本机上“玩”机器学习
1.3 基本机器学习术语
1.3.1 特征
1.3.2 标签
1.3.3 模型
1.4 Python 和机器学习框架
1.4.1 为什么选择用Python
1.4.2 机器学习和深度学习框架
1.5 机器学习项目实战架构
1.5.1 第壹 个环节:问题定义
1.5.2 第2 个环节:数据的收集和预处理
1.5.3 第3 个环节:选择机器学习模型
1.5.4 第4 个环节:训练机器,确定参数
1.5.5 第5 个环节:超参数调试和性能优化
1.6 本课内容小结
1.7 课后练习
第2 课 数学和Python 基础知识—*天搞定
2.1 函数描述了事物间的关系
2.1.1 什么是函数
2.1.2 机器学习中的函数
2.2 捕捉函数的变化趋势
2.2.1 连续性是求导的前提条件
2.2.2 通过求导发现y 如何随x 而变
2.2.3 凸函数有一个全局*低点
2.3 梯度下降是机器学习的动力之源
2.3.1 什么是梯度
2.3.2 梯度下降:下山的隐喻
2.3.3 梯度下降有什么用
2.4 机器学习的数据结构—张量
2.4.1 张量的轴、阶和形状
2.4.2 标量—0D(阶)张量
2.4.3 向量—1D(阶)张量
2.4.4 矩阵—2D(阶)张量
2.4.5 序列数据 —3D(阶)张量
2.4.6 图像数据 —4D(阶)张量
2.4.7 视频数据—5D(阶)张量
2.4.8 数据的维度和空间的维度
2.5 Python 的张量运算
2.5.1 机器学习中张量的创建
2.5.2 通过索引和切片访问张量中的数据
2.5.3 张量的整体操作和逐元素运算
2.5.4 张量的变形和转置
2.5.5 Python 中的广播
2.5.6 向量和矩阵的点积运算
2.6 机器学习的几何意义
2.6.1 机器学习的向量空间
2.6.2 深度学习和数据流形
2.7 概率与统计研究了随机事件的规律
2.7.1 什么是概率
2.7.2 正态分布
2.7.3 标准差和方差
2.8 本课内容小结
2.9 课后练习
第3 课 线性回归—预测网店的销售额
3.1 问题定义:小冰的网店广告该如何投放
3.2 数据的收集和预处理
3.2.1 收集网店销售额数据
3.2.2 数据读取和可视化
3.2.3 数据的相关分析
3.2.4 数据的散点图
3.2.5 数据集清洗和规范化
3.2.6 拆分数据集为训练集和测试集
3.2.7 把数据归一化
3.3 选择机器学习模型
3.3.1 确定线性回归模型
3.3.2 假设(预测)函数—h (x )
3.3.3 损失(误差)函数—L (w ,b )
3.4 通过梯度下降找到*佳参数
3.4.1 训练机器要有正确的方向
3.4.2 凸函数确保有*小损失点
3.4.3 梯度下降的实现
3.4.4 学习速率也很重要
3.5 实现一元线性回归模型并调试超参数
3.5.1 权重和偏置的初始值
3.5.2 进行梯度下降
3.5.3 调试学习速率
3.5.4 调试迭代次数
3.5.5 在测试集上进行预测
3.5.6 用轮廓图描绘L 、w 和b 的关系
3.6 实现多元线性回归模型
3.6.1 向量化的点积运算
3.6.2 多变量的损失函数和梯度下降
3.6.3 构建一个线性回归函数模型
3.6.4 初始化权重并训练机器
3.7 本课内容小结
3.8 课后练习
第4 课 逻辑回归—给病患和鸢尾花分类
4.1 问题定义:判断客户是否患病
4.2 从回归问题到分类问题
4.2.1 机器学习中的分类问题
4.2.2 用线性回归+ 阶跃函数完成分类
4.2.3 通过Sigmiod 函数进行转换
4.2.4 逻辑回归的假设函数
4.2.5 逻辑回归的损失函数
4.2.6 逻辑回归的梯度下降
4.3 通过逻辑回归解决二元分类问题
4.3.1 数据的准备与分析
4.3.2 建立逻辑回归模型
4.3.3 开始训练机器
4.3.4 测试分类结果
4.3.5 绘制损失曲线
4.3.6 直接调用Sklearn 库
4.3.7 哑特征的使用
4.4 问题定义:确定鸢尾花的种类
4.5 从二元分类到多元分类
4.5.1 以一对多
4.5.2 多元分类的损失函数
4.6 正则化、欠拟合和过拟合
4.6.1 正则化
4.6.2 欠拟合和过拟合
4.6.3 正则化参数
4.7 通过逻辑回归解决多元分类问题
4.7.1 数据的准备与分析
4.7.2 通过Sklearn 实现逻辑回归的多元分类
4.7.3 正则化参数—C 值的选择
4.8 本课内容小结
4.9 课后练习
第5 课 深度神经网络—找出可能流失的客户
5.1 问题定义:咖哥接手的金融项目
5.2 神经网络的原理
5.2.1 神经网络极简史
5.2.2 传统机器学习算法的局限性
5.2.3 神经网络的优势
5.3 从感知器到单隐层网络
5.3.1 感知器是*基本的神经元
5.3.2 假设空间要能覆盖特征空间
5.3.3 单神经元特征空间的局限性
5.3.4 分层:加入一个网络隐层
5.4 用Keras 单隐层网络预测客户流失率
5.4.1 数据的准备与分析
5.4.2 先尝试逻辑回归算法
5.4.3 单隐层神经网络的Keras 实现
5.4.4 训练单隐层神经网络
5.4.5 训练过程的图形化显示
5.5 分类数据不平衡问题:只看准确率够用吗
5.5.1 混淆矩阵、精que率、召回率和F1 分数
5.5.2 使用分类报告和混淆矩阵
5.5.3 特征缩放的魔力
5.5.4 阈值调整、欠采样和过采样
5.6 从单隐层神经网络到深度神经网络
5.6.1 梯度下降:正向传播和反向传播
5.6.2 深度神经网络中的一些可调超参数
5.6.3 梯度下降优化器
5.6.4 激活函数:从Sigmoid 到ReLU
5.6.5 损失函数的选择
5.6.6 评估指标的选择
5.7 用Keras 深度神经网络预测客户流失率
5.7.1 构建深度神经网络
5.7.2 换一换优化器试试
5.7.3 神经网络正则化:添加Dropout 层
5.8 深度神经网络的调试及性能优化
5.8.1 使用回调功能
5.8.2 使用TensorBoard
5.8.3 神经网络中的过拟合
5.8.4 梯度消失和梯度bao炸
5.9 本课内容小结
5.10 课后练习
第6课 卷积神经网络—识别狗狗的图像
6.1 问题定义:有趣的狗狗图像识别
6.2 卷积网络的结构
6.3 卷积层的原理
6.3.1 机器通过“模式”进行图像识别
6.3.2 平移不变的模式识别
6.3.3 用滑动窗口抽取局部特征
6.3.4 过滤器和响应通道
6.3.5 对特征图进行卷积运算
6.3.6 模式层级结构的形成
6.3.7 卷积过程中的填充和步幅
6.4 池化层的功能
6.5 用卷积网络给狗狗图像分类
6.5.1 图像数据的读入
6.5.2 构建简单的卷积网络
6.5.3 训练网络并显示误差和准确率
6.6 卷积网络性能优化
6.6.1 第壹招:更新优化器并设置学习速率
6.6.2 第2招:添加Dropout 层
6.6.3 “大杀器”:进行数据增强
6.7 卷积网络中特征通道的可视化
6.8 各种大型卷积网络模型
6.8.1 经典的VGGNet
6.8.2 采用Inception 结构的GoogLeNet
6.8.3 残差网络ResNet
6.9 本课内容小结
6.10 课后练习
第7 课 循环神经网络—鉴定留言及探索系外行星
7.1 问题定义:鉴定评论文本的情感属性
7.2 循环神经网络的原理和结构
7.2.1 什么是序列数据
7.2.2 前馈神经网络处理序列数据的局限性
7.2.3 循环神经网络处理序列问题的策略
7.2.4 循环神经网络的结构
7.3 原始文本如何转化成向量数据
7.3.1 文本的向量化:分词
7.3.2 通过One-hot 编码分词
7.3.3 词嵌入
7.4 用SimpleRNN 鉴定评论文本
7.4.1 用Tokenizer 给文本分词
7.4.2 构建包含词嵌入的SimpleRNN
7.4.3 训练网络并查看验证准确率
7.5 从SimpleRNN 到LSTM
7.5.1 SimpleRNN 的局限性
7.5.2 LSTM 网络的记忆传送带
7.6 用LSTM 鉴定评论文本
7.7 问题定义:太阳系外哪些恒星有行星环绕
7.8 用循环神经网络处理时序问题
7.8.1 时序数据的导入与处理
7.8.2 建模:CNN 和RNN 的组合
7.8.3 输出阈值的调整
7.8.4 使用函数式API
7.9 本课内容小结
7.10 课后练习
第8 课 经典算法“宝刀未老”
8.1 K *近邻
8.2 支持向量机
8.3 朴素贝叶斯
8.4 决策树
8.4.1 熵和特征节点的选择
8.4.2 决策树的深度和剪枝
8.5 随机森林
8.6 如何选择*佳机器学习算法
8.7 用网格搜索超参数调优
8.8 本课内容小结
8.9 课后练习
第9 课 集成学习“笑傲江湖”
9.1 偏差和方差—机器学习性能优化的风向标
9.1.1 目标:降低偏差与方差
9.1.2 数据集大小对偏差和方差的影响
9.1.3 预测空间的变化带来偏差和方差的变化
9.2 Bagging 算法—多个基模型的聚合
9.2.1 决策树的聚合
9.2.2 从树的聚合到随机森林
9.2.3 从随机森林到ji端随机森林
9.2.4 比较决策树、树的聚合、随机森林、ji端随机森林的效率
9.3 Boosting 算法—锻炼弱模型的“肌肉”
9.3.1 AdaBoost 算法
9.3.2 梯度提升算法
9.3.3 XGBoost 算法
9.3.4 Bagging 算法与Boosting 算法的不同之处
9.4 Stacking/Blending 算法—以预测结果作为新特征
9.4.1 Stacking 算法
9.4.2 Blending 算法
9.5 Voting/Averaging 算法—集成基模型的预测结果
9.5.1 通过Voting 进行不同算法的集成
9.5.2 通过Averaging 集成不同算法的结果
9.6 本课内容小结
9.7 课后练习
第壹0 课 监督学习之外—其他类型的机器学习
10.1 无监督学习—聚类
10.1.1 K 均值算法
10.1.2 K 值的选取:手肘法
10.1.3 用聚类辅助理解营销数据
10.2 无监督学习—降维
10.2.1 PCA 算法
10.2.2 通过PCA 算法进行图像特征采样
10.3 半监督学习
10.3.1 自我训练
10.3.2 合作训练
10.3.3 半监督聚类
10.4 自监督学习
10.4.1 潜隐空间
10.4.2 自编码器
10.4.3 变分自编码器
10.5 生成式学习
10.5.1 机器学习的生成式
10.5.2 生成式对抗网络
10.6 本课内容小结
10.7 课后练习
第壹1 课 强化学习实战—咖哥的冰湖挑战
11.1 问题定义:帮助智能体完成冰湖挑战
11.2 强化学习基础知识
11.2.1 延迟满足
11.2.2 更复杂的环境
11.2.3 强化学习中的元素
11.2.4 智能体的视角
11.3 强化学习基础算法Q-Learning 详解
11.3.1 迷宫游戏的示例
11.3.2 强化学习中的局部*优
11.3.3 ε -Greedy 策略
11.3.4 Q-Learning 算法的伪代码
11.4 用Q-Learning 算法来解决冰湖挑战问题
11.4.1 环境的初始化
11.4.2 Q-Learning 算法的实现
11.4.3 Q-Table 的更新过程
11.5 从Q-Learning 算法到SARSA算法
11.5.1 异策略和同策略
11.5.2 SARSA 算法的实现
11.6 用SARSA 算法来解决冰湖挑战问题
11.7 Deep Q Network 算法:用深度网络实现Q-Learning
11.8 本课内容小结
11.9 课后练习
尾声:如何实现机器学习中的知识迁移及持续性的学习
练习答案
· · · · · ·