自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1)
  • 资源 (8)
  • 收藏
  • 关注

原创 LaTeX 插入图片

熟悉latex后真心觉得word好费事,一般latex论文都会有模板,只需要替换把原有内容替换一下,就会生成比较好看的文档。 废话不多说,总结一下使用后的体会 1、先说说插图 插图的话,我插入的是".esp"格式。 当然先导包\usepackage{graphicx}, 我把图片都放在了fig2文件夹中,fig2的文件夹与latex文档在同...

2019-06-06 20:59:29 595

《美团机器学习实践》_美团算法团队

目 2.2 4 2.2.5 第一部分通用流程 1J 、 结......... ........................... 32 ...................... ...................... 33 33 工 具介绍...... 参考文献 ...................· 第 1 章 1.1 问 题建模...··.......... . . . . . ................. .... .... 1.2 .......... .... ........... 4 分类指标... 3.1.1 逻辑回归原理 ..................··35 逻辑回归应用 .................. 38 ..................·········10 3.2 场感知因子分解机 ...............·39 数据去嗓...······.... ... . . ............ · · ·I I 3.2.1 因子分解机原理... 1.2.2 采样·· 3.2.2 场感知因子分解机原理· 1.2.3 原型选择和训练集选择 3.2.3 场感知因子分解机的应用 ···········41 ······················· ···12 交叉验证.........··.............. . . . . ......·13 ··14 留出法 K 折交又验证... . ... .... . . . . . .. ...· · 1.3.3 自助法...... . .. .... . ............... · 16 特征提取 ....................................· 15 17 探索性数据分析 2.1.2 数位特征...·· 2.1.3 2.1.4 类别特征 3.3 .1 ... ··· ···39 ......·-40 ...............········ ·42 梯反提升树原理............· · ··· · ·... ··42 梯度提升树的应用 ......... ·44 参考文献................... ... ................. · 44 第 4 章模型融合.. ............. ..................的 4.1 理论分析······· · ·· · ····.................. ······46 4.1.1 融合收益................ ................· ............··········19 4.1.2 模型误差一分歧分解............ ········ -46 ················......·20 4.1.3 4.1.4 模型多样性度量...... . .. ... ........ ··· · · ·· 48 ...............·· ·· ··········22 ... .................··· ··· ·...24 时间特征 梯度提升树 3.3.2 ...·····················.......... .. 18 2.1.1 2 1.5 2.1.6 3.3 ............. ........ 14 I 3.1 1.3 .2 第 2 章特征工程 ·· · · ···.......... . ............· · 18 2.2 逻辑回归.........················ · ···· ···......... ··3 5 3.1.2 排序指标 参考文献 。....... . 2 I 3 I ........................····· ··· ·35 7 回归指标................................. . 1.1.3 样本选择.......... . 第 3 章常用模型·· ......... ................. .... 9 1.1.2 1.2.1 1.3 ......................... 3 评估指标.........· 1.1. 1 2 空间特征........................... ··25 42 多样性增强........... .... .............. . . ... 融合方法- 平均法·· 46 49 ............ ... ........ ........ 50 ...... ...............··50 ··25 4 2.1 4.2 .2 投-祟 法............................ 52 .........········27 4 2 3 Bagging .....................······· ····· 54 2 2.1 过滤方法....... ..... . ............... 28 4 2 4 Stacking· ........................... 55 2.2 .2 封装方法...............·· · ······· · · ·· ··... 31 4 2.5 小 结........................ ... ......·· ··· ··. 义本特征 ......··............ 特征选择. . ............. 2.2.3 . 嵌入方法················ ... ···· ······· ···· ······3 1 参考文献. . ..........·....................... . ...... .. . . .. ... ...... 56 572 目 录 第二部分数据挖掘 第 5章 5.1 5.2 5.3 54 用户画 像............... ·· 用户画像数据挖掘................................ ··63 5.2.1 5.2.2 画像数据挖掘整体架构 ········ · ······63 5.2.3 5.2.4 特征数据·· · ································... 67 5.2.5 标签建模. . . . . . ................................ 样本数据................. 69 7.4 评论挖掘的未来应用及实践....... .. ..... .. . 119 75 小结... ... ..................... 参考文献 ...... .. .... 119 · ·.... ... .. .............. .................... 119 第三部分搜索和推荐 第 8章 020 场景下的查询理解 与 用户引导 ...... .. . .. . .. ........................... 122 123 用户画像实时查询系统.............. ·83 8. 1 现代搜索引擎原理............................... 5. 3.2 人群画像分析系统...................... 37 8.2 精确理解查询· ................................ 124 5.3.3 其他系统 ............ · ...... ................. 90 8.2.1 用户查询意图的定义与识别..... 125 5.3.4 线上应用效果 ... ........................... 9 1 8.2.2 查询实体识别与结构化............. 129 小结 ........... 8.2.3 召回策略的变迁............... . ... . . . . . 130 8.2. 4 查询改写·········· · ·······...· ·· ········· · ·· 13 1 8.2.5 询权重与相关性计算.......... ... ... · 1 34 8.2.6 类目相关 性 与人 工 标注........... . . 135 8.2.7 查询坦解 小 结···············........ . .. . . 136 引导用户完成搜索......··..... . . . . . . . . . .... . . 137 .................... ·9 1 ......... ... .............. ..... ··91 POI 实体链接 ...· · .....................归 国内酒店 POI 实体链接解决方案......... · · 94 ..................... ·92 6.2 .1 酒店 POI 实体链接 . ...... . .............. 6.2.2 数据清洗. . .............. . ..... ····· · · · · · · · ··· · 96 6.2.3 特征生成...·· 6.2.4 模型选择与效采评估.. . . .....· · · · · · · · 6.2.5 索引粒度的配置..................... ·101 6.3 其他场景的策略调整 64 小结 94 8.3 8.3.1 ..................... ·97 100 8.3.2 ............................ 103 评论挖掘的背景... 104 .......................... 104 7.1.1 7.1.2 4平论挖掘的粒度 7. 1.3 ..................· 105 105 许论挖掘的维反... . ............... .. .. 坪论挖掘的整合思考....... ... """· 106 评论标签提取··· · · · · · · ... ......................... 106 数据的获取及预处理................. 107 用户引导的产品定义与衡量 标准...........··.... . . . ................. . .. ........... ......... 101 评论挖掘 ............. . . . .. .. .. ............. . . . . . . . 7.2 .1 7.3 11 8 5.3.1 6.2 7.2 化与思考.................................. . 33 问题的背景与难点 7.1 11 5 ...... 68 6.1 第 7 章 4干论标签情感分析的后续优 ........ . 65 用户画像应用............................ . ............. 参考文献 第6章 基于深度学习的情感分析方法... 7.3.3 ·60 什么是用户画像 ...... ........... · · · · · · · ····· · ·······60 用户标识............··- · · 7.3.2 8.4 9. 1 9.2 搜索前的引导一一查询饲 推荐......... ... .............. 140 8.3.3 搜索中的 引 导一一-查询补全..... 143 8.3.4 搜索后的引导一一相关搜索... 1 45 8.3.5 效率提升与效果提升·· · ······...... · 1 45 8.3 .6 用户引导 小 结.... . ..............···· · ···· 小结 参考文献 第9章 137 ... 149 .............................. ..... 149 ... ........... ..........·...·· ·· ····........... 150 020 场景下排序的特点 ... ... ......... 1 52 系统概述·················· · · · ......··········· · · · ···· 在线排序服务............... . ............ . . . . . . . ... . 154 154 7.2.2 元监督的标签提取方法.......... .. . 109 7.2.3 基 于 深度学习的标签提取方法.... 111 9.3 多层正交 A/B 测试...············ · · · · · ······... ·155 1 日 9.4 特征获取.............. . ... . .... ... ................ 155 许论标签情感分析的特殊性..... 11 3 9.5 离线调研系统..................·.................... 标签情感分析......········ · · · · ·........... 7.3.1 156日 156 11.5 .1 面向开发人员的系统工具...·· 11.5 .2 面向广告主和运 营人员的 特征工程............·· · ····· .... ...............····· · · ·· 97 排序模型 9 8 场景化排序 ............ .................. ······160 99 小结................... ............... ····· · · ·... 1 65 工 具. ......... ......... . .. .. ...... 11.6 ......· 第 12 童 典型的 020 推荐场景 u ·1 66 10.2 020 推荐场景特点......· · 167 10.2. 1 020 场景的地理位置因素 · 168 12.1.1 020 场景的用户历史J于为 ·· 168 020 场景的实时推荐............ · 1 69 10.4 美团推荐实践一一推荐框架 美团推荐实践一一推荐召回- ... ·· 170 12. 1.2 如何衡量用户偏好... ...... · 196 12.1 .3 对不同 POI 的偏好 197 12.1.4 用户对 POI 偏好的衡量 ...· · 197 广告价值与偏好损失的兑换............ 198 10.4.2 基于位置的召回 ............ ... 171 10.4 .3 基于投索查询的召回... ·1 72 10.4.4 基于图的召回................ ·· · · · · · ·· 1 72 10.4.5 基于实时用户行为的召回...... 1 72 替补策略 ...... .................. ········172 美团推荐实践 12.3 Pairwise 模型学习 ............ ····· ··20 1 12.3.1 GBRank· ............. ·202 12.3.2 RankNet ·· ·· ··.........···· ··········... 204 参考文献. .............................. ............... ·205 推荐排序............... 17 3 I 0.5 .1 排序特征 ... 10 . 5.2 排序样本... . ........ . .................. 174 10.5.3 排序模型.............. . ...·............ ·175 第五部分深度学习 ..................... 173 推荐评价指标 ............... .........·· 176 第 13 章深度学习概述 ... ············ ········ ········208 13. 1 深度学习技术发展历程 ...· ......... 209 13.2 深度学习基 础结构 13.3 深度学习研究热点... ···························216 13.3.1 13.3.2 020 场景下的广告营销... ...... ·178 11.2 商户、用户和平台 三者利益平衡 ...··· 180 11.5 196 优化目标............................. 199 020 场景下的广告业务特点 - ········· 178 11.4 什么是用户偏好............· 模型建模 ...... ..................... 199 11.1 11.3 ...................... 196 12.2.1 第四部分计算广告 第 11 章 12 .2 .. ........·-...... ········· 194 12.2.2 10.4.6 10.6 169 192 ······ 194 基于协同过滤的召回 ..... ........ 17 1 10.4.1 10 . 5 ... 如何定义用户偏好 12.1 190 用户偏好和损失建模............ · ····· 196 10.1 10.3 · · ···· 小结..... .... ............ . . . . . ........... ... 参考文献 第 10 章推荐在 020 场景中的应用, ·· ···· 1 66 10.2.3 3 ......··...................... 157 96 10.2.2 录 11 .2. 1 商户效果感知·· 11 .2.2 11.2.3 用户体验 ...... ... ............... ·180 • ......... 181 平台收益............... .......... . ..... · 182 020 广告机制设计......·· 广告位设定... · ·· · ·· · ·· · · · ········· · ··· 183 11.3.2 广告召回机幸1J··· · 11.3.3 广告排序机制...·· 第 14 章 深度强化学习......·· ·····218 深度 学习在文本领域中的应用 ... 220 基于深度学习 的排序模型.............. .... ·231 14.2.1 排序模型简介... ... ... . . . . . ...... · ·231 14.2.2 深度学习排序模型的演进... ··232 14.2.3 美团的深度学习排序模型 尝试.................. ··················· ·· ·235 ...... ··184 020 广告系统工具......................... 190 基于深度学习的生成式模型 ... ·2 1 6 14.1 基于深度学习的文本匹配 ......· · ... ·221 14.2 ......... ·· ·· ···· 183 020 推送广告·········....... ..... . ... . . . ... . . .... 187 ...... 211 参考文献...· ·... .................................... .. ...... 2 印 ... ......· 183 11.3.1 ......· • 14.3 小结 参考文献 ... . ... ··········· ·· ················· ·· ·237 ............................ 237第 15 章 15.1 15.2 15.3 录 日 4 深度学习在计算机视觉中的 16.1.2 多核并行 O penMP········ ... ······270 应用...... ... . ... ... ··· · · ·· ... ··· ········ ·· ·238 16.1.3 GPU 编程 ...... ···············272 ...... ··········· 238 16.1.4 多机并行 MP I ..................... 273 16.1 .5 并行编程技术 小 结 基于深度学习 的 OCR 15 .1.1 OCR 技术发展历程............ 239 15.1.2 基于深度学习的丈字检测 · · ··· 244 15.1.3 15 .1.4 基于序列 学 习的丈字识别 小 生主 - 基于深度学习的图像智能审核 15 .2. 1 基于 深度学 习的水印 检溃1] 15.2.2 15.2.3 明星脸识别...... · 15.2.4 场景 分类 色 情图片检测. . ..... . ....·· .........· 16.2 .1 BSP .... ............ 16.2.2 SSP······ ·· ................ . ·25 1 ·····252 16.2.3 16.2.4 ASP ···· ····· · ·· ····· ········· ······ ·254 ·257 15 .3 .2 图 像美学质量许价· · ·· 257 ... ·260 面向点击预测的图 像质量 评价 ... . ................ ·· · ····· ·· · ········260 15 .4 小结 ..................................... ...... 263 参考文献·· . 16.3 16.4 17.1 17.2 并行计算编程技术...... 16.1.1 向量化... ... ... ............... ··268 ... ····· ·········· 269 并行计算案例....... . . . . . . ......... ..........· 16.3.1 XGBoost 并行库 Rabit· 16.3.2 MXNet 并行库 PS-Lite· 276 277 279 280 281 ·284 · 284 ··· 286 287 ....... 289 美团并行计算机 器学 习平 台 ..... . ....... . . 第 17 章特征工程和实验平台 . . .............. ··29 0 第六部分算法工程 16.1 参数服务器 ...... ...............·· 参考文献...... . ....... ........... . . ... . .. ...· . ....................... .. ..... ······264 第 16 章大规模机器学习.................. ··268 276 ... 并行计算模型............ ...... ·248 ·251 基于深度学习的图像质量排序... · ··· ··· ·259 15.3.1 16.2 特征平台...... .... ................... . ..... .. ..... 290 17.1.1 特征生产...· .. .................... 290 17 .1.2 17.1.3 特征上线 ..... .... ............ 293 在线特征监控........ ....... .. . . .... ·30 1 实验管理平台.................. . ... . . ... ........... 3 02 17.2.1 实验平台概述 17.2.2 美 团实验平台 一-Gemini ... ··304

2018-09-20

Machine Learning Yearning(吴恩达的书)--Andre Ng

Table of Contents 1 Why Machine Learning Strategy 2 How to use this book to help your team 3 Prerequisites and Notation 4 Scale drives machine learning progress 5 Your development and test sets 6 Your dev and test sets should come from the same distribution 7 How large do the dev/test sets need to be? 8 Establish a single-number evaluation metric for your team to optimize 9 Optimizing and satisficing metrics 10 Having a dev set and metric speeds up iterations 11 When to change dev/test sets and metrics 12 Takeaways: Setting up development and test sets 13 Build your first system quickly, then iterate 14 Error analysis: Look at dev set examples to evaluate ideas 15 Evaluating multiple ideas in parallel during error analysis 16 Cleaning up mislabeled dev and test set examples 17 If you have a large dev set, split it into two subsets, only one of which you look at 18 How big should the Eyeball and Blackbox dev sets be? 19 Takeaways: Basic error analysis 20 Bias and Variance: The two big sources of error 21 Examples of Bias and Variance 22 Comparing to the optimal error rate 23 Addressing Bias and Variance 24 Bias vs. Variance tradeoff 25 Techniques for reducing avoidable bias Page 3 Machine Learning Yearning-Draft Andrew Ng26 Error analysis on the training set 27 Techniques for reducing variance 28 Diagnosing bias and variance: Learning curves 29 Plotting training error 30 Interpreting learning curves: High bias 31 Interpreting learning curves: Other cases 32 Plotting learning curves 33 Why we compare to human-level performance 34 How to define human-level performance 35 Surpassing human-level performance 36 When you should train and test on different distributions 37 How to decide whether to use all your data 38 How to decide whether to include inconsistent data 39 Weighting data 40 Generalizing from the training set to the dev set 41 Addressing Bias and Variance 42 Addressing data mismatch 43 Artificial data synthesis 44 The Optimization Verification test 45 General form of Optimization Verification test 46 Reinforcement learning example 47 The rise of end-to-end learning 48 More end-to-end learning examples 49 Pros and cons of end-to-end learning 50 Learned sub-components 51 Directly learning rich outputs Page 4 Machine Learning Yearning-Draft Andrew Ng52 Error Analysis by Parts 53 Beyond supervised learning: What’s next? 54 Building a superhero team - Get your teammates to read this 55 Big picture 56 Credits

2018-07-30

阿里强化学习

第一章 基于强化学习的实时搜索排序策略调控 1 1.1 背景 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 问题建模 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2.1 强化学习简介 . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2.2 状态定义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2.3 奖赏函数设定 . . . . . . . . . . . . . . . . . . . . . . . . . 6 算法设计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.3.1 策略函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.3.2 策略梯度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.3.3 值函数的学习 . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.4 奖赏塑形 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.5 实验效果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.6 DDPG 与梯度融合 . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.7 总结与展望 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.3 第二章 延迟奖赏在搜索排序场景中的作用分析 18 2.1 背景 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2 搜索排序问题回顾 . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.3 数据统计分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.4 搜索排序问题形式化 . . . . . . . . . . . . . . . . . . . . . . . . . 24目 . II . 2.5 2.6 录 理论分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.5.1 马尔可夫性质 . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.5.2 折扣率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 实验分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 第三章 基于多智能体强化学习的多场景联合优化 34 3.1 背景 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.2 问题建模 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.2.1 相关背景简介 . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.2.2 建模方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 应用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 3.3.1 搜索与电商平台 . . . . . . . . . . . . . . . . . . . . . . . . 43 3.3.2 多排序场景协同优化 . . . . . . . . . . . . . . . . . . . . . 45 实验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.4.1 实验设置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.4.2 对比基准 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.4.3 实验结果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 3.4.4 在线示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 总结与展望 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 3.3 3.4 3.5 第四章 强化学习在淘宝锦囊推荐系统中的应用 4.1 4.2 4.3 55 背景 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 4.1.1 淘宝锦囊 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 4.1.2 锦囊的类型调控 . . . . . . . . . . . . . . . . . . . . . . . . 55 4.1.3 工作摘要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 系统框架及问题建模 . . . . . . . . . . . . . . . . . . . . . . . . . 57 4.2.1 系统框架 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 4.2.2 问题建模 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 算法及模型设计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60目 4.4 录 . III . 4.3.1 主体框架 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 4.3.2 分层采样池 . . . . . . . . . . . . . . . . . . . . . . . . . . 61 4.3.3 基准约减 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 4.3.4 算法流程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 实验与总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 第五章 基于强化学习的引擎性能优化 65 5.1 背景 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 5.2 问题建模 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 5.2.1 状态定义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 5.2.2 动作空间设计 . . . . . . . . . . . . . . . . . . . . . . . . . 69 5.2.3 状态转移函数 . . . . . . . . . . . . . . . . . . . . . . . . . 69 5.2.4 奖赏函数的设计 . . . . . . . . . . . . . . . . . . . . . . . . 70 算法设计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 5.3.1 Loss Function . . . . . . . . . . . . . . . . . . . . . . . . . . 71 5.3.2 Actor-crtitic 方法 . . . . . . . . . . . . . . . . . . . . . . . . 72 5.4 理论分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 5.5 实验效果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 5.6 总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 5.3 第六章 基于强化学习分层流量调控 75 6.1 背景 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 6.2 问题建模 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 6.2.1 Dynamic Action Boundary by CEM . . . . . . . . . . . . . . 78 6.3 实验效果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 6.4 总结与展望 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 第七章 风险商品流量调控 7.1 81 背景 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 为什么进行风险商品流量调控 . . . . . . . . . . . . . . . . 81 7.1.1目 . IV . 录 为什么使用强化学习调控 . . . . . . . . . . . . . . . . . . 82 基于强化学习的问题建模 . . . . . . . . . . . . . . . . . . . . . . . 82 7.2.1 状态空间的定义 . . . . . . . . . . . . . . . . . . . . . . . . 82 7.2.2 动作空间的定义 . . . . . . . . . . . . . . . . . . . . . . . . 84 7.2.3 奖赏函数的定义 . . . . . . . . . . . . . . . . . . . . . . . . 84 7.2.4 模型选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 7.2.5 奖赏函数 scale . . . . . . . . . . . . . . . . . . . . . . . . . 86 7.3 流量调控系统架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 7.4 线上效果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 7.1.2 7.2 第八章 虚拟淘宝 89 背景 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 8.1.1 强化学习面临的问题 . . . . . . . . . . . . . . . . . . . . . 89 8.1.2 虚拟淘宝 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 8.2 学习用户行为:监督学习 . . . . . . . . . . . . . . . . . . . . . . . 89 8.3 学习用户意图:逆强化学习 . . . . . . . . . . . . . . . . . . . . . 90 8.3.1 逆强化学习概述 . . . . . . . . . . . . . . . . . . . . . . . . 91 8.3.2 学习用户意图 . . . . . . . . . . . . . . . . . . . . . . . . . 91 8.3.3 生成对抗式模仿学习 . . . . . . . . . . . . . . . . . . . . . 92 构建用户行为模拟器 . . . . . . . . . . . . . . . . . . . . . . . . . 92 8.4.1 问题建模 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 8.4.2 算法设计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 8.4.3 实验结果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 8.1 8.4 第九章 组合优化视角下基于强化学习的精准定向广告 OCPC 业务优化 96 9.1 背景 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 9.2 问题建模 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 9.2.1 奖赏 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 9.2.2 动作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97目 9.2.3 录 状态定义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .V. 98 9.3 建模粒度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 9.4 模型选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 9.5 探索学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 9.6 业务实战 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 9.7 9.6.1 系统设计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 9.6.2 奖赏设计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 9.6.3 实验效果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 总结与展望 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 第十章 策略优化方法在搜索广告排序和竞价机制中的应用 111 10.1 业务背景 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 10.2 广告排序和竞价的数学模型和优化方法 . . . . . . . . . . . . . . . 112 10.3 面向广告商、用户和平台收益的排序公式设计 . . . . . . . . . . . 114 10.4 系统简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 10.4.1 离线仿真模块 . . . . . . . . . . . . . . . . . . . . . . . . . 115 10.4.2 离线强化学习进行排序策略模型初始化 . . . . . . . . . . 117 10.5 在线排序策略模型优化 . . . . . . . . . . . . . . . . . . . . . . . . 118 10.6 实验分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 10.7 总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 第十一章 TaskBot -阿里小蜜的任务型问答技术 124 11.1 背景和问题建模 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 11.2 模型设计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 11.2.1 Intent Network . . . . . . . . . . . . . . . . . . . . . . . . . 125 11.2.2 Belief Tracker . . . . . . . . . . . . . . . . . . . . . . . . . 126 11.2.3 Policy Network . . . . . . . . . . . . . . . . . . . . . . . . . 127 11.2.4 模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 11.3 业务实战 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129. VI . 目 录 11.4 总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 第十二章 DRL 导购-阿里小蜜的多轮标签推荐技术 131 12.1 背景 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 12.2 算法框架 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 12.3 深度强化学习模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 12.3.1 强化学习模块 . . . . . . . . . . . . . . . . . . . . . . . . . 136 12.3.2 最终模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 12.4 业务实战 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 12.5 总结和展望 . .

2018-07-30

动手学深度学习(MXNET框架)最新教程2018.7.25

1 引言 1 1.1 深度学习简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 如何使用本书 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 预备知识 9 2.1 安装和运行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2 数据操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.3 自动求梯度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.4 查阅 MXNet 文档 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3 深度学习基础 31 3.1 线性回归 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.2 线性回归的从零开始实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.3 线性回归的 Gluon 实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.4 Softmax 回归 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.5 Softmax 回归的从零开始实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 3.6 Softmax 回归的 Gluon 实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 3.7 多层感知机 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 3.8 多层感知机的从零开始实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 3.9 多层感知机的 Gluon 实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 i3.10 欠拟合、过拟合和模型选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 3.11 权重衰减 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 3.12 权重衰减的 Gluon 实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 3.13 丢弃法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 3.14 丢弃法的 Gluon 实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 3.15 正向传播和反向传播 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 3.16 实战 Kaggle 比赛:房价预测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 4 深度学习计算 113 4.1 模型构造 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 4.2 模型参数的访问、初始化和共享 . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 4.3 模型参数的延后初始化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 4.4 自定义层 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 4.5 读取和存储 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 4.6 GPU 计算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 5 卷积神经网络 137 5.1 二维卷积层 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 5.2 填充和步幅 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 5.3 多输入和输出通道 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 5.4 池化层 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 5.5 卷积神经网络(LeNet) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 5.6 深度卷积神经网络(AlexNet) . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 5.7 使用重复元素的网络(VGG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 5.8 网络中的网络(NiN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 5.9 含并行连结的网络(GoogLeNet) . . . . . . . . . . . . . . . . . . . . . . . . . . 171 5.10 批量归一化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 5.11 批量归一化的 Gluon 实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 5.12 残差网络(ResNet) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 5.13 稠密连接网络(DenseNet) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 6 循环神经网络 ii 193 6.1 语言模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 6.2 隐藏状态 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 6.3 循环神经网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1996.4 通过时间反向传播 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 6.5 ⻔控循环单元(GRU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 6.6 ⻓短期记忆(LSTM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 6.7 深度循环神经网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 6.8 双向循环神经网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 6.9 循环神经网络的 Gluon 实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 7 优化算法 247 7.1 优化算法概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 7.2 梯度下降和随机梯度下降 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 7.3 梯度下降和随机梯度下降的 Gluon 实现 . . . . . . . . . . . . . . . . . . . . . . . 263 7.4 动量法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 7.5 动量法的 Gluon 实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 7.6 Adagrad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 7.7 Adagrad 的 Gluon 实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 7.8 RMSProp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 7.9 RMSProp 的 Gluon 实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 7.10 Adadelta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 7.11 Adadelta 的 Gluon 实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 7.12 Adam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 7.13 Adam 的 Gluon 实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 8 计算性能 305 8.1 命令式和符号式混合编程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 8.2 异步计算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 8.3 自动并行计算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 8.4 多 GPU 计算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 8.5 多 GPU 计算的 Gluon 实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 9 计算机视觉 335 9.1 图片增广 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 9.2 微调 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 9.3 物体检测和边界框 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 9.4 锚框 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353 9.5 物体检测数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 iii9.6 单发多框检测(SSD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 9.7 区域卷积神经网络(R-CNN)系列 . . . . . . . . . . . . . . . . . . . . . . . . . . 376 9.8 语义分割和数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382 9.9 全卷积网络(FCN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 9.10 样式迁移 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396 9.11 实战 Kaggle 比赛:图像分类(CIFAR-10) . . . . . . . . . . . . . . . . . . . . . 406 9.12 实战 Kaggle 比赛:狗的品种识别 (ImageNet Dogs) . . . . . . . . . . . . . . . . . 416 10 自然语言处理 427 10.1 词嵌入:word2vec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427 10.2 词嵌入:GloVe 和 fastText . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 10.3 求近似词和类比词 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 10.4 文本分类:情感分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446 10.5 编码器—解码器(seq2seq) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453 10.6 束搜索 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456 10.7 注意力机制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459 10.8 机器翻译 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461 11 附录 473 11.1 主要符号一览 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473 11.2 数学基础 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475 11.3 使用 Jupyter Notebook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482 11.4 使用 AWS 运行代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488 11.5 GPU 购买指南 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499 11.6 gluonbook 包索引 .

2018-07-28

python语言及其应用

前言 ........................................................................................................................................................ xiv 第 1 章 Python 初探 .......................................................................................................................... 1 1.1 真实世界中的 Python................................................................................................................. 5 1.2 Python 与其他语言 ..................................................................................................................... 5 1.3 为什么选择 Python..................................................................................................................... 7 1.4 何时不应该使用 Python............................................................................................................. 8 1.5 Python 2 与 Python 3 .................................................................................................................. 8 1.6 安装 Python................................................................................................................................. 9 1.7 运行 Python................................................................................................................................. 9 1.7.1 使用交互式解释器 ........................................................................................................ 9 1.7.2 使用 Python 文件 ......................................................................................................... 10 1.7.3 下一步 .......................................................................................................................... 11 1.8 禅定一刻 ................................................................................................................................... 11 1.9 练习 ........................................................................................................................................... 11 第 2 章 Python 基本元素 : 数字 、 字符串和变量 .................................................................. 13 2.1 变量、名字和对象 ................................................................................................................... 13 2.2 数字 ........................................................................................................................................... 16 2.2.1 整数 .............................................................................................................................. 17 2.2.2 优先级 .......................................................................................................................... 20 2.2.3 基数 .............................................................................................................................. 21 2.2.4 类型转换 ...................................................................................................................... 22 2.2.5 一个 int 型有多大 ...................................................................................................... 23 2.2.6 浮点数 .......................................................................................................................... 24 v2.2.7 数学函数 ...................................................................................................................... 24 2.3 字符串 ....................................................................................................................................... 24 2.3.1 使用引号创建 .............................................................................................................. 25 2.3.2 使用 str() 进行类型转换 .......................................................................................... 27 2.3.3 使用 \ 转义 .................................................................................................................. 27 2.3.4 使用 + 拼接 .................................................................................................................. 28 2.3.5 使用 * 复制 .................................................................................................................. 28 2.3.6 使用 [] 提取字符 ........................................................................................................ 28 2.3.7 使用 [start:end:step] 分片 .................................................................................... 29 2.3.8 使用 len() 获得长度 .................................................................................................. 31 2.3.9 使用 split() 分割 ...................................................................................................... 32 2.3.10 使用 join() 合并 ...................................................................................................... 32 2.3.11 熟悉字符串 ................................................................................................................. 32 2.3.12 大小写与对齐方式 .................................................................................................... 33 2.3.13 使用 replace() 替换 ................................................................................................ 34 2.3.14 更多关于字符串的内容 ............................................................................................ 35 2.4 练习 ........................................................................................................................................... 35 第 3 章 Python 容器 : 列表 、 元组 、 字典与集合 .................................................................. 36 3.1 列表和元组 ............................................................................................................................... 36 3.2 列表 ........................................................................................................................................... 37 3.2.1 使用 [] 或 list() 创建列表 ...................................................................................... 37 3.2.2 使用 list() 将其他数据类型转换成列表 ................................................................ 37 3.2.3 使用 [offset] 获取元素 ............................................................................................ 38 3.2.4 包含列表的列表 .......................................................................................................... 39 3.2.5 使用 [offset] 修改元素 ............................................................................................ 39 3.2.6 指定范围并使用切片提取元素 .................................................................................. 40 3.2.7 使用 append() 添加元素至尾部 ................................................................................ 40 3.2.8 使用 extend() 或 += 合并列表 .................................................................................. 40 3.2.9 使用 insert() 在指定位置插入元素 ........................................................................ 41 3.2.10 使用 del 删除指定位置的元素 ................................................................................ 41 3.2.11 使用 remove() 删除具有指定值的元素 .................................................................. 42 3.2.12 使用 pop() 获取并删除指定位置的元素 ................................................................ 42 3.2.13 使用 index() 查询具有特定值的元素位置 ............................................................ 42 3.2.14 使用 in 判断值是否存在 .......................................................................................... 42 3.2.15 使用 count() 记录特定值出现的次数 .................................................................... 43 3.2.16 使用 join() 转换为字符串 ...................................................................................... 43 3.2.17 使用 sort() 重新排列元素 ...................................................................................... 44 3.2.18 使用 len() 获取长度 ................................................................................................ 44 3.2.19 使用 = 赋值,使用 copy() 复制 .............................................................................. 45 vi | 目录3.3 元组 ........................................................................................................................................... 46 3.3.1 使用 () 创建元组 ........................................................................................................ 46 3.3.2 元组与列表 .................................................................................................................. 47 3.4 字典 ........................................................................................................................................... 47 3.4.1 使用 {} 创建字典 ........................................................................................................ 48 3.4.2 使用 dict() 转换为字典 ............................................................................................ 48 3.4.3 使用 [key] 添加或修改元素 ...................................................................................... 49 3.4.4 使用 update() 合并字典 ............................................................................................ 50 3.4.5 使用 del 删除具有指定键的元素 .............................................................................. 51 3.4.6 使用 clear() 删除所有元素 ...................................................................................... 51 3.4.7 使用 in 判断是否存在 ................................................................................................ 51 3.4.8 使用 [key] 获取元素 .................................................................................................. 52 3.4.9 使用 keys() 获取所有键 ............................................................................................ 52 3.4.10 使用 values() 获取所有值 ...................................................................................... 53 3.4.11 使用 items() 获取所有键值对 ................................................................................ 53 3.4.12 使用 = 赋值,使用 copy() 复制 .............................................................................. 53 3.5 集合 ........................................................................................................................................... 53 3.5.1 使用 set() 创建集合 .................................................................................................. 54 3.5.2 使用 set() 将其他类型转换为集合 .......................................................................... 54 3.5.3 使用 in 测试值是否存在 ............................................................................................ 55 3.5.4 合并及运算符 .............................................................................................................. 56 3.6 比较几种数据结构 ................................................................................................................... 58 3.7 建立大型数据结构 ................................................................................................................... 59 3.8 练习 ........................................................................................................................................... 60 第 4 章 Python 外壳 : 代码结构 ................................................................................................. 61 4.1 使用 # 注释 ............................................................................................................................... 61 4.2 使用 \ 连接 ............................................................................................................................... 62 4.3 使用 if 、 elif 和 else 进行比较 .......................................................................................... 63 4.4 使用 while 进行循环 ............................................................................................................... 66 4.4.1 使用 break 跳出循环 .................................................................................................. 66 4.4.2 使用 continue 跳到循环开始 .................................................................................... 67 4.4.3 循环外使用 else ......................................................................................................... 67 4.5 使用 for 迭代 ........................................................................................................................... 68 4.5.1 使用 break 跳出循环 .................................................................................................. 69 4.5.2 使用 continue 跳到循环开始 .................................................................................... 69 4.5.3 循环外使用 else ......................................................................................................... 69 4.5.4 使用 zip() 并行迭代 .................................................................................................. 70 4.5.5 使用 range() 生成自然数序列 .................................................................................. 71 4.5.6 其他迭代方式 .............................................................................................................. 71 目录 | vii4.6 推导式 ....................................................................................................................................... 72 4.6.1 列表推导式 .................................................................................................................. 72 4.6.2 字典推导式 .................................................................................................................. 74 4.6.3 集合推导式 .................................................................................................................. 74 4.6.4 生成器推导式 .............................................................................................................. 74 4.7 函数 ........................................................................................................................................... 75 4.7.1 位置参数 ...................................................................................................................... 79 4.7.2 关键字参数 .................................................................................................................. 79 4.7.3 指定默认参数值 .......................................................................................................... 79 4.7.4 使用 * 收集位置参数 .................................................................................................. 80 4.7.5 使用 ** 收集关键字参数 ............................................................................................ 81 4.7.6 文档字符串 .................................................................................................................. 82 4.7.7 一等公民:函数 .......................................................................................................... 82 4.7.8 内部函数 ...................................................................................................................... 84 4.7.9 闭包 .............................................................................................................................. 84 4.7.10 匿名函数:lambda() 函数 ....................................................................................... 85 4.8 生成器 ....................................................................................................................................... 86 4.9 装饰器 ....................................................................................................................................... 87 4.10 命名空间和作用域 ................................................................................................................. 89 4.11 使用 try 和 except 处理错误 ............................................................................................... 91 4.12 编写自己的异常 ..................................................................................................................... 93 4.13 练习 ......................................................................................................................................... 94 第 5 章 Python 盒子 : 模块 、 包和程序 .................................................................................... 95 5.1 独立的程序 ............................................................................................................................... 95 5.2 命令行参数 ............................................................................................................................... 96 5.3 模块和 import 语句 ................................................................................................................. 96 5.3.1 导入模块 ...................................................................................................................... 96 5.3.2 使用别名导入模块 ...................................................................................................... 98 5.3.3 导入模块的一部分 ...................................................................................................... 98 5.3.4 模块搜索路径 .............................................................................................................. 98 5.4 包 ............................................................................................................................................... 99 5.5 Python 标准库 ........................................................................................................................... 99 5.5.1 使用 setdefault() 和 defaultdict() 处理缺失的键 ......................................... 100 5.5.2 使用 Counter() 计数 ................................................................................................ 101 5.5.3 使用有序字典 OrderedDict() 按键排序 ................................................................ 103 5.5.4 双端队列:栈 + 队列 ................................................................................................ 103 5.5.5 使用 itertools 迭代代码结构 ................................................................................ 104 5.5.6 使用 pprint() 友好输出 .......................................................................................... 105 viii | 目录5.6 获取更多 Python 代码 ............................................................................................................ 105 5.7 练习 ......................................................................................................................................... 106 第 6 章 对象和类 ............................................................................................................................ 107 6.1 什么是对象 ............................................................................................................................. 107 6.2 使用 class 定义类 ................................................................................................................. 108 6.3 继承 ......................................................................................................................................... 109 6.4 覆盖方法 ................................................................................................................................. 111 6.5 添加新方法 ............................................................................................................................. 112 6.6 使用 super 从父类得到帮助 ................................................................................................. 112 6.7 self 的自辩 ............................................................................................................................ 113 6.8 使用属性对特性进行访问和设置 ......................................................................................... 114 6.9 使用名称重整保护私有特性 ................................................................................................. 117 6.10 方法的类型 ........................................................................................................................... 118 6.11 鸭子类型 ............................................................................................................................... 119 6.12 特殊方法 ............................................................................................................................... 120 6.13 组合 ....................................................................................................................................... 123 6.14 何时使用类和对象而不是模块 ........................................................................................... 124 6.15 练习 ....................................................................................................................................... 126 第 7 章 像高手一样玩转数据 ...................................................................................................... 127 7.1 文本字符串 ............................................................................................................................. 127 7.1.1 Unicode ....................................................................................................................... 127 7.1.2 格式化 ........................................................................................................................ 134 7.1.3 使用正则表达式匹配 ................................................................................................ 137 7.2 二进制数据 ............................................................................................................................. 144 7.2.1 字节和字节数组 ........................................................................................................ 144 7.2.2 使用 struct 转换二进制数据 .................................................................................. 145 7.2.3 其他二进制数据工具 ................................................................................................ 148 7.2.4 使用 binascii() 转换字节 / 字符串 ....................................................................... 149 7.2.5 位运算符 .................................................................................................................... 149 7.3 练习 ......................................................................................................................................... 149 第 8 章 数据的归宿 ....................................................................................................................... 152 8.1 文件输入 / 输出 ...................................................................................................................... 152 8.1.1 使用 write() 写文本文件 ........................................................................................ 153 8.1.2 使用 read()、readline() 或者 readlines() 读文本文件 ................................. 154 8.1.3 使用 write() 写二进制文件 .................................................................................... 156 8.1.4 使用 read() 读二进制文件 ...................................................................................... 157 8.1.5 使用 with 自动关闭文件 .......................................................................................... 157 目录 | ix8.1.6 使用 seek() 改变位置 .............................................................................................. 157 8.2 结构化的文本文件 ................................................................................................................. 159 8.2.1 CSV ............................................................................................................................. 159 8.2.2 XML ............................................................................................................................ 161 8.2.3 HTML ......................................................................................................................... 163 8.2.4 JSON ........................................................................................................................... 163 8.2.5 YAML ......................................................................................................................... 165 8.2.6 安全提示 .................................................................................................................... 166 8.2.7 配置文件 .................................................................................................................... 167 8.2.8 其他交换格式 ............................................................................................................ 168 8.2.9 使用 pickle 序列化 .................................................................................................. 168 8.3 结构化二进制文件 ................................................................................................................. 169 8.3.1 电子数据表 ................................................................................................................ 169 8.3.2 层次数据格式 ............................................................................................................ 169 8.4 关系型数据库 ......................................................................................................................... 170 8.4.1 SQL ............................................................................................................................. 170 8.4.2 DB-API ....................................................................................................................... 172 8.4.3 SQLite ......................................................................................................................... 172 8.4.4 MySQL ....................................................................................................................... 174 8.4.5 PostgreSQL ................................................................................................................. 174 8.4.6 SQLAlchemy .............................................................................................................. 174 8.5 NoSQL 数据存储 ................................................................................................................... 179 8.5.1 dbm family .................................................................................................................. 180 8.5.2 memcached ................................................................................................................. 180 8.5.3 Redis ........................................................................................................................... 181 8.5.4 其他的 NoSQL ........................................................................................................... 189 8.6 全文数据库 ............................................................................................................................. 189 8.7 练习 ......................................................................................................................................... 190 第 9 章 剖析 Web .......................................................................................................................... 191 9.1 Web 客户端 ............................................................................................................................ 192 9.1.1 使用 telnet 进行测试 .............................................................................................. 193 9.1.2 Python 的标准 Web 库 ............................................................................................... 194 9.1.3 抛开标准库:requests ............................................................................................ 195 9.2 Web 服务端 ............................................................................................................................ 196 9.2.1 最简单的 Python Web 服务器 ................................................................................... 196 9.2.2 Web 服务器网关接口 ................................................................................................ 198 9.2.3 框架 ............................................................................................................................ 198 9.2.4 Bottle ........................................................................................................................... 198 9.2.5 Flask ............................................................................................................................ 201 x | 目录9.2.6 非 Python 的 Web 服务器 .......................................................................................... 204 9.2.7 其他框架 .................................................................................................................... 206 9.3 Web 服务和自动化 ................................................................................................................ 207 9.3.1 webbrowser 模块 ....................................................................................................... 207 9.3.2 Web API 和表述性状态传递 ..................................................................................... 208 9.3.3 JSON ........................................................................................................................... 209 9.3.4 抓取数据 .................................................................................................................... 209 9.3.5 用 BeautifulSoup 来抓取 HTML ............................................................................ 209 9.4 练习 ......................................................................................................................................... 210 第 10 章 系统 .................................................................................................................................. 212 10.1 文件 ....................................................................................................................................... 212 10.1.1 用 open() 创建文件 ............................................................................................... 212 10.1.2 用 exists() 检查文件是否存在 ........................................................................... 213 10.1.3 用 isfile() 检查是否为文件 ............................................................................. 213 10.1.4 用 copy() 复制文件 ............................................................................................... 213 10.1.5 用 rename() 重命名文件 ....................................................................................... 214 10.1.6 用 link() 或者 symlink() 创建链接 .................................................................. 214 10.1.7 用 chmod() 修改权限 ............................................................................................. 214 10.1.8 用 chown() 修改所有者 ......................................................................................... 214 10.1.9 用 abspath() 获取路径名 ..................................................................................... 215 10.1.10 用 realpath() 获取符号的路径名 ..................................................................... 215 10.1.11 用 remove() 删除文件 ......................................................................................... 215 10.2 目录 ....................................................................................................................................... 215 10.2.1 使用 mkdir() 创建目录 ......................................................................................... 215 10.2.2 使用 rmdir() 删除目录 ......................................................................................... 215 10.2.3 使用 listdir() 列出目录内容 ............................................................................. 216 10.2.4 使用 chdir() 修改当前目录 ................................................................................. 216 10.2.5 使用 glob() 列出匹配文件 ................................................................................... 216 10.3 程序和进程 ........................................................................................................................... 217 10.3.1 使用 subprocess 创建进程 ................................................................................... 218 10.3.2 使用 multiprocessing 创建进程 ........................................................................ 219 10.3.3 使用 terminate() 终止进程 ................................................................................ 219 10.4 日期和时间 ........................................................................................................................... 220 10.4.1 datetime 模块 ........................................................................................................ 221 10.4.2 使用 time 模块 ....................................................................................................... 223 10.4.3 读写日期和时间 ..................................................................................................... 225 10.4.4 其他模块 ................................................................................................................. 227 10.5 练习 ....................................................................................................................................... 228 目录 | xi第 11 章 并发和网络 ..................................................................................................................... 229 11.1 并发 ....................................................................................................................................... 230 11.1.1 队列 ......................................................................................................................... 231 11.1.2 进程 ......................................................................................................................... 231 11.1.3 线程 ......................................................................................................................... 232 11.1.4 绿色线程和 gevent ................................................................................................ 234 11.1.5 twisted ................................................................................................................... 236 11.1.6 asyncio ................................................................................................................... 238 11.1.7 Redis ........................................................................................................................ 238 11.1.8 队列之上 ................................................................................................................. 241 11.2 网络 ....................................................................................................................................... 241 11.2.1 模式 ......................................................................................................................... 242 11.2.2 发布 - 订阅模型 ..................................................................................................... 242 11.2.3 TCP/IP ..................................................................................................................... 245 11.2.4 套接字 ..................................................................................................................... 246 11.2.5 ZeroMQ ................................................................................................................... 250 11.2.6 scapy ....................................................................................................................... 253 11.2.7 网络服务 ................................................................................................................. 253 11.2.8 Web 服务和 API ..................................................................................................... 255 11.2.9 远程处理 ................................................................................................................. 256 11.2.10 大数据和 MapReduce ........................................................................................... 260 11.2.11 在云上工作 ........................................................................................................... 261 11.3 练习 ....................................................................................................................................... 264 第 12 章 成为真正的 Python 开发者 ....................................................................................... 265 12.1 关于编程 ............................................................................................................................... 265 12.2 寻找 Python 代码 .................................................................................................................. 265 12.3 安装包 ................................................................................................................................... 266 12.3.1 使用 pip .................................................................................................................. 266 12.3.2 使用包管理工具 ..................................................................................................... 267 12.3.3 从源代码安装 ......................................................................................................... 267 12.4 集成开发环境 ....................................................................................................................... 268 12.4.1 IDLE ........................................................................................................................ 268 12.4.2 PyCharm .................................................................................................................. 268 12.4.3 IPython .................................................................................................................... 269 12.5 命名和文档 ........................................................................................................................... 269 12.6 测试代码 ............................................................................................................................... 270 12.6.1 使用 pylint、pyflakes 和 pep8 检查代码 .......................................................... 270 12.6.2 使用 unittest 进行测试 ....................................................................................... 272 xii | 目录12.6.3 使用 doctest 进行测试 ......................................................................................... 276 12.6.4 使用 nose 进行测试 ............................................................................................... 277 12.6.5 其他测试框架 ......................................................................................................... 278 12.6.6 持续集成 ................................................................................................................. 278 12.7 调试 Python 代码 .................................................................................................................. 278 12.8 使用 pdb 进行调试 ............................................................................................................... 279 12.9 记录错误日志 ....................................................................................................................... 284 12.10 优化代码 ............................................................................................................................. 286 12.10.1 测量时间 ............................................................................................................. 286 12.10.2 算法和数据结构 ................................................................................................. 288 12.10.3 Cython、NumPy 和 C 扩展 ............................................................................... 289 12.10.4 PyPy ..................................................................................................................... 289 12.11 源码控制 ............................................................................................................................. 289 12.11.1 Mercurial ............................................................................................................. 290 12.11.2 Git ........................................................................................................................ 290 12.12 复制本书代码 ..................................................................................................................... 292 12.13 更多内容 ............................................................................................................................. 293 12.13.1 书 ......................................................................................................................... 293 12.13.2 网站 ..................................................................................................................... 293 12.13.3 社区 ..................................................................................................................... 293 12.13.4 大会 ..................................................................................................................... 294 12.14 后续内容 ............................................................................................................................. 294 附录 A Python 的艺术 .................................................................................................................. 295 附录 B 工作中的 Python ............................................................................................................. 307 附录 C Python 的科学 .................................................................................................................. 320 附录 D 安装 Python 3 .................................................................................................................. 339 附录 E 习题解答 ............................................................................................................................ 349 附录 F 速查表 ................................................................................................................................. 380 作者介绍 .............................................................................................................................................. 383 封面介绍 ..............................................

2018-07-28

python机器学习基础教程(原版+高清+标签)

前言 .......................................................................................................................................................... ix 第 1 章 引言 ......................................................................................................................................... 1 1.1 为何选择机器学习 ..................................................................................................................... 1 1.1.1 机器学习能够解决的问题 ............................................................................................ 2 1.1.2 熟悉任务和数据 ............................................................................................................ 4 1.2 为何选择 Python......................................................................................................................... 4 1.3 scikit-learn .............................................................................................................................. 4 1.4 必要的库和工具 ......................................................................................................................... 5 1.4.1 Jupyter Notebook ............................................................................................................ 6 1.4.2 NumPy ............................................................................................................................ 6 1.4.3 SciPy ............................................................................................................................... 6 1.4.4 matplotlib ..................................................................................................................... 7 1.4.5 pandas ............................................................................................................................. 8 1.4.6 mglearn ........................................................................................................................... 9 1.5 Python 2 与 Python 3 的对比 ..................................................................................................... 9 1.6 本书用到的版本 ....................................................................................................................... 10 1.7 第一个应用:鸢尾花分类 ....................................................................................................... 11 1.7.1 初识数据 ...................................................................................................................... 12 1.7.2 衡量模型是否成功:训练数据与测试数据 .............................................................. 14 1.7.3 要事第一:观察数据 .................................................................................................. 15 1.7.4 构建第一个模型:k 近邻算法 ................................................................................... 16 1.7.5 做出预测 ...................................................................................................................... 17 1.7.6 评估模型 ...................................................................................................................... 18 1.8 小结与展望 ............................................................................................................................... 19 v 看书请加微信 YYAANNGG第 2 章 监督学习 .............................................................................................................................. 21 2.1 分类与回归 ............................................................................................................................... 21 2.2 泛化、过拟合与欠拟合 ........................................................................................................... 22 2.3 监督学习算法 ........................................................................................................................... 24 2.3.1 一些样本数据集 .......................................................................................................... 25 2.3.2 k 近邻 ........................................................................................................................... 28 2.3.3 线性模型 ...................................................................................................................... 35 2.3.4 朴素贝叶斯分类器 ...................................................................................................... 53 2.3.5 决策树 .......................................................................................................................... 54 2.3.6 决策树集成 .................................................................................................................. 64 2.3.7 核支持向量机 .............................................................................................................. 71 2.3.8 神经网络(深度学习) ................................................................................................ 80 2.4 分类器的不确定度估计 ........................................................................................................... 91 2.4.1 决策函数 ...................................................................................................................... 91 2.4.2 预测概率 ...................................................................................................................... 94 2.4.3 多分类问题的不确定度 .............................................................................................. 96 2.5 小结与展望 ............................................................................................................................... 98 第 3 章 无监督学习与预处理 ...................................................................................................... 100 3.1 无监督学习的类型 ................................................................................................................. 100 3.2 无监督学习的挑战 ................................................................................................................. 101 3.3 预处理与缩放 ......................................................................................................................... 101 3.3.1 不同类型的预处理 .................................................................................................... 102 3.3.2 应用数据变换 ............................................................................................................ 102 3.3.3 对训练数据和测试数据进行相同的缩放 ................................................................ 104 3.3.4 预处理对监督学习的作用 ........................................................................................ 106 3.4 降维、特征提取与流形学习 ................................................................................................. 107 3.4.1 主成分分析 ................................................................................................................ 107 3.4.2 非负矩阵分解 ............................................................................................................ 120 3.4.3 用 t-SNE 进行流形学习 ............................................................................................ 126 3.5 聚类 ......................................................................................................................................... 130 3.5.1 k 均值聚类 ................................................................................................................. 130 3.5.2 凝聚聚类 .................................................................................................................... 140 3.5.3 DBSCAN .................................................................................................................... 143 3.5.4 聚类算法的对比与评估 ............................................................................................ 147 3.5.5 聚类方法小结 ............................................................................................................ 159 3.6 小结与展望 ............................................................................................................................. 159 vi | 目录 看书请加微信 YYAANNGG第 4 章 数据表示与特征工程 ...................................................................................................... 161 4.1 分类变量 ................................................................................................................................. 161 4.1.1 One-Hot 编码(虚拟变量) ....................................................................................... 162 4.1.2 数字可以编码分类变量 ............................................................................................ 166 4.2 分箱、离散化、线性模型与树 ............................................................................................. 168 4.3 交互特征与多项式特征 ......................................................................................................... 171 4.4 单变量非线性变换 ................................................................................................................. 178 4.5 自动化特征选择 ..................................................................................................................... 181 4.5.1 单变量统计 ................................................................................................................ 181 4.5.2 基于模型的特征选择 ................................................................................................ 183 4.5.3 迭代特征选择 ............................................................................................................ 184 4.6 利用专家知识 ......................................................................................................................... 185 4.7 小结与展望 ............................................................................................................................. 192 第 5 章 模型评估与改进 .............................................................................................................. 193 5.1 交叉验证 ................................................................................................................................. 194 5.1.1 scikit-learn 中的交叉验证 .................................................................................... 194 5.1.2 交叉验证的优点 ........................................................................................................ 195 5.1.3 分层 k 折交叉验证和其他策略 ................................................................................. 196 5.2 网格搜索 ................................................................................................................................. 200 5.2.1 简单网格搜索 ............................................................................................................ 201 5.2.2 参数过拟合的风险与验证集 .................................................................................... 202 5.2.3 带交叉验证的网格搜索 ............................................................................................ 203 5.3 评估指标与评分 ..................................................................................................................... 213 5.3.1 牢记最终目标 ............................................................................................................ 213 5.3.2 二分类指标 ................................................................................................................ 214 5.3.3 多分类指标 ................................................................................................................ 230 5.3.4 回归指标 .................................................................................................................... 232 5.3.5 在模型选择中使用评估指标 .................................................................................... 232 5.4 小结与展望 ............................................................................................................................. 234 第 6 章 算法链与管道 ................................................................................................................... 236 6.1 用预处理进行参数选择 ......................................................................................................... 237 6.2 构建管道 ................................................................................................................................. 238 6.3 在网格搜索中使用管道 ......................................................................................................... 239 6.4 通用的管道接口 ..................................................................................................................... 242 6.4.1 用 make_pipeline 方便地创建管道 ......................................................................... 243 6.4.2 访问步骤属性 ............................................................................................................ 244 6.4.3 访问网格搜索管道中的属性 .................................................................................... 244 目录 | vii 看书请加微信 YYAANNGG6.5 网格搜索预处理步骤与模型参数 ......................................................................................... 246 6.6 网格搜索选择使用哪个模型 ................................................................................................. 248 6.7 小结与展望 ............................................................................................................................. 249 第 7 章 处理文本数据 ................................................................................................................... 250 7.1 用字符串表示的数据类型 ..................................................................................................... 250 7.2 示例应用:电影评论的情感分析 ......................................................................................... 252 7.3 将文本数据表示为词袋 ......................................................................................................... 254 7.3.1 将词袋应用于玩具数据集 ........................................................................................ 255 7.3.2 将词袋应用于电影评论 ............................................................................................ 256 7.4 停用词 ..................................................................................................................................... 259 7.5 用 tf-idf 缩放数据 .................................................................................................................. 260 7.6 研究模型系数 ......................................................................................................................... 263 7.7 多个单词的词袋(n 元分词) ................................................................................................ 263 7.8 高级分词、词干提取与词形还原 ......................................................................................... 267 7.9 主题建模与文档聚类 ............................................................................................................. 270 7.10 小结与展望 ........................................................................................................................... 277 第 8 章 全书总结 ............................................................................................................................ 278 8.1 处理机器学习问题 ................................................................................................................. 278 8.2 从原型到生产 ......................................................................................................................... 279 8.3 测试生产系统 ......................................................................................................................... 280 8.4 构建你自己的估计器 ............................................................................................................. 280 8.5 下一步怎么走 ......................................................................................................................... 281 8.5.1 理论 ............................................................................................................................ 281 8.5.2 其他机器学习框架和包 ............................................................................................ 281 8.5.3 排序、推荐系统与其他学习类型 ............................................................................ 282 8.5.4 概率建模、推断与概率编程 .................................................................................... 282 8.5.5 神经网络 .................................................................................................................... 283 8.5.6 推广到更大的数据集 ................................................................................................ 283 8.5.7 磨练你的技术 ............................................................................................................ 284 8.6 总结 ......................................................................................................................................... 284

2018-07-28

python数据科学手册(高清+标签+原版PDF)

本 书 主 要 介 绍 了 Python 在 数 据 科 学 领 域 的 基 础 工 具, 包 括 IPython、Jupyter、NumPy、Pandas、Matplotlib 和 Scikit-Learn。 当 然, 数 据 科 学 并 非 Python 一 家 之“ 言 ”,Scala、Java、R、Julia 等编程语言在此领域都有各自不同的工具。至于要不要学 Python,我们认为没必要纠结,秉承李小龙的武术哲学即可——Absorb what is useful, discard what is not,and add what is uniquely your own(取其精华,去其糟粕,再加点自己的独创)。Python 的 语法简洁直观、易学易用,是表现力最强的编程语言,学会它就可以让计算机跟随思想,快速完成许多有趣的事情。同时,它也是备受欢迎的胶水语言,许多由 Java、C/C++ 语言开发的工具都会提供 Python 接口,如 Spark、H2O、TensorFlow 等。2017 年 3 月 6 日,PyPI(https://pypi.python.org/pypi) 网站上的程序包数量就已经达到 10 万,新的程序包还在不断地涌现,数据科学目前是 Python 星球最酷炫的风景之一。如果数据科学问题让你心有挂碍,那么 Python 这根数据科学的蛇杖(Asklēpiós,阿斯克勒庇俄斯之杖,医神手杖, 医院的徽章)可以为你指点迷津。 译者序 ...................................................................................................................................................xiii 前言 ......................................................................................................................................................... xv 第 1 章 IPython : 超越 Python ...................................................................................................... 1 1.1 shell 还是 Notebook .................................................................................................................... 1 1.1.1 启动 IPython shell .......................................................................................................... 2 1.1.2 启动 Jupyter Notebook ................................................................................................... 2 1.2 IPython 的帮助和文档 ............................................................................................................... 3 1.2.1 用符号 ? 获取文档 ........................................................................................................ 3 1.2.2 通过符号 ?? 获取源代码 ............................................................................................... 4 1.2.3 用 Tab 补全的方式探索模块 ........................................................................................ 5 1.3 IPython shell 中的快捷键 ........................................................................................................... 7 1.3.1 导航快捷键 .................................................................................................................... 7 1.3.2 文本输入快捷键 ............................................................................................................ 7 1.3.3 命令历史快捷键 ............................................................................................................ 8 1.3.4 其他快捷键 .................................................................................................................... 9 1.4 IPython 魔法命令 ....................................................................................................................... 9 1.4.1 粘贴代码块: %paste 和 %cpaste ................................................................................. 9 1.4.2 执行外部代码: %run ................................................................................................... 10 1.4.3 计算代码运行时间: %timeit ..................................................................................... 11 1.4.4 魔法函数的帮助: ? 、 %magic 和 %lsmagic ................................................................ 11 1.5 输入和输出历史 ....................................................................................................................... 12 1.5.1 IPython 的输入和输出对象 ......................................................................................... 12 1.5.2 下划线快捷键和以前的输出 ....................................................................................... 13 1.5.3 禁止输出 ...................................................................................................................... 13 v 图灵社区会员 felix123([email protected]) 专享 尊重版权1.5.4 相关的魔法命令 .......................................................................................................... 13 1.6 IPython 和 shell 命令 ................................................................................................................ 14 1.6.1 shell 快速入门 .............................................................................................................. 14 1.6.2 IPython 中的 shell 命令 ............................................................................................... 15 1.6.3 在 shell 中传入或传出值 ............................................................................................. 15 1.7 与 shell 相关的魔法命令 ......................................................................................................... 16 1.8 错误和调试 ............................................................................................................................... 17 1.8.1 控制异常: %xmode ....................................................................................................... 17 1.8.2 调试:当阅读轨迹追溯不足以解决问题时 .............................................................. 19 1.9 代码的分析和计时 ................................................................................................................... 21 1.9.1 代码段计时: %timeit 和 %time ................................................................................. 22 1.9.2 分析整个脚本: %prun ................................................................................................. 23 1.9.3 用 %lprun 进行逐行分析 ............................................................................................. 24 1.9.4 用 %memit 和 %mprun 进行内存分析 ........................................................................... 25 1.10 IPython 参考资料 ................................................................................................................... 26 1.10.1 网络资源 .................................................................................................................... 26 1.10.2 相关图书 .................................................................................................................... 27 第 2 章 NumPy 入门 ....................................................................................................................... 28 2.1 理解 Python 中的数据类型 ...................................................................................................... 29 2.1.1 Python 整型不仅仅是一个整型 .................................................................................. 30 2.1.2 Python 列表不仅仅是一个列表 .................................................................................. 31 2.1.3 Python 中的固定类型数组 .......................................................................................... 32 2.1.4 从 Python 列表创建数组 ............................................................................................. 32 2.1.5 从头创建数组 .............................................................................................................. 33 2.1.6 NumPy 标准数据类型 ................................................................................................. 34 2.2 NumPy 数组基础 ...................................................................................................................... 35 2.2.1 NumPy 数组的属性 ..................................................................................................... 36 2.2.2 数组索引:获取单个元素 .......................................................................................... 37 2.2.3 数组切片:获取子数组 .............................................................................................. 38 2.2.4 数组的变形 .................................................................................................................. 41 2.2.5 数组拼接和分裂 .......................................................................................................... 42 2.3 NumPy 数组的计算:通用函数 .............................................................................................. 44 2.3.1 缓慢的循环 .................................................................................................................. 44 2.3.2 通用函数介绍 .............................................................................................................. 45 2.3.3 探索 NumPy 的通用函数 ............................................................................................ 46 2.3.4 高级的通用函数特性 .................................................................................................. 49 2.3.5 通用函数:更多的信息 .............................................................................................. 51 2.4 聚合:最小值、最大值和其他值 ........................................................................................... 51 2.4.1 数组值求和 .................................................................................................................. 51 2.4.2 最小值和最大值 .......................................................................................................... 52 vi | 目录2.4.3 示例:美国总统的身高是多少 .................................................................................. 54 2.5 数组的计算:广播 ................................................................................................................... 55 2.5.1 广播的介绍 .................................................................................................................. 55 2.5.2 广播的规则 .................................................................................................................. 57 2.5.3 广播的实际应用 .......................................................................................................... 60 2.6 比较、掩码和布尔逻辑 ........................................................................................................... 61 2.6.1 示例:统计下雨天数 .................................................................................................. 61 2.6.2 和通用函数类似的比较操作 ...................................................................................... 62 2.6.3 操作布尔数组 .............................................................................................................. 64 2.6.4 将布尔数组作为掩码 .................................................................................................. 66 2.7 花哨的索引 ............................................................................................................................... 69 2.7.1 探索花哨的索引 .......................................................................................................... 69 2.7.2 组合索引 ...................................................................................................................... 70 2.7.3 示例:选择随机点 ...................................................................................................... 71 2.7.4 用花哨的索引修改值 .................................................................................................. 72 2.7.5 示例:数据区间划分 .................................................................................................. 73 2.8 数组的排序 ............................................................................................................................... 75 2.8.1 NumPy 中的快速排序: np.sort 和 np.argsort ...................................................... 76 2.8.2 部分排序:分隔 .......................................................................................................... 77 2.8.3 示例:K 个最近邻 ....................................................................................................... 78 2.9 结构化数据:NumPy 的结构化数组 ...................................................................................... 81 2.9.1 生成结构化数组 .......................................................................................................... 83 2.9.2 更高级的复合类型 ...................................................................................................... 84 2.9.3 记录数组:结构化数组的扭转 .................................................................................. 84 2.9.4 关于 Pandas .................................................................................................................. 85 第 3 章 Pandas 数据处理 .............................................................................................................. 86 3.1 安装并使用 Pandas................................................................................................................... 86 3.2 Pandas 对象简介 ....................................................................................................................... 87 3.2.1 Pandas 的 Series 对象 ................................................................................................. 87 3.2.2 Pandas 的 DataFrame 对象 ........................................................................................... 90 3.2.3 Pandas 的 Index 对象 .................................................................................................. 93 3.3 数据取值与选择 ....................................................................................................................... 95 3.3.1 Series 数据选择方法 .................................................................................................. 95 3.3.2 DataFrame 数据选择方法 ............................................................................................ 98 3.4 Pandas 数值运算方法 ............................................................................................................. 102 3.4.1 通用函数:保留索引 ................................................................................................ 102 3.4.2 通用函数:索引对齐 ................................................................................................ 103 3.4.3 通用函数: DataFrame 与 Series 的运算 ................................................................. 105 3.5 处理缺失值 ............................................................................................................................. 106 3.5.1 选择处理缺失值的方法 ............................................................................................ 106 目录 | vii3.5.2 Pandas 的缺失值 ........................................................................................................ 107 3.5.3 处理缺失值 ................................................................................................................ 110 3.6 层级索引 ................................................................................................................................. 113 3.6.1 多级索引 Series ........................................................................................................ 113 3.6.2 多级索引的创建方法 ................................................................................................ 116 3.6.3 多级索引的取值与切片 ............................................................................................ 119 3.6.4 多级索引行列转换 .................................................................................................... 121 3.6.5 多级索引的数据累计方法 ........................................................................................ 124 3.7 合并数据集: Concat 与 Append 操作 ................................................................................... 125 3.7.1 知识回顾:NumPy 数组的合并 ............................................................................... 126 3.7.2 通过 pd.concat 实现简易合并 ................................................................................. 126 3.8 合并数据集:合并与连接 ..................................................................................................... 129 3.8.1 关系代数 .................................................................................................................... 129 3.8.2 数据连接的类型 ........................................................................................................ 130 3.8.3 设置数据合并的键 .................................................................................................... 132 3.8.4 设置数据连接的集合操作规则 ................................................................................ 134 3.8.5 重复列名: suffixes 参数 .......................................................................................... 135 3.8.6 案例:美国各州的统计数据 .................................................................................... 136 3.9 累计与分组 ............................................................................................................................. 140 3.9.1 行星数据 .................................................................................................................... 140 3.9.2 Pandas 的简单累计功能 ............................................................................................ 141 3.9.3 GroupBy :分割、应用和组合 ................................................................................... 142 3.10 数据透视表 ........................................................................................................................... 150 3.10.1 演示数据透视表 ..................................................................................................... 150 3.10.2 手工制作数据透视表 ............................................................................................. 151 3.10.3 数据透视表语法 ..................................................................................................... 151 3.10.4 案例:美国人的生日 ............................................................................................. 153 3.11 向量化字符串操作 ............................................................................................................... 157 3.11.1 Pandas 字符串操作简介 ......................................................................................... 157 3.11.2 Pandas 字符串方法列表 ......................................................................................... 159 3.11.3 案例:食谱数据库 ................................................................................................. 163 3.12 处理时间序列 ....................................................................................................................... 166 3.12.1 Python 的日期与时间工具 ..................................................................................... 166 3.12.2 Pandas 时间序列:用时间作索引 ......................................................................... 169 3.12.3 Pandas 时间序列数据结构 ..................................................................................... 170 3.12.4 时间频率与偏移量 ................................................................................................. 172 3.12.5 重新取样、迁移和窗口 ......................................................................................... 173 3.12.6 更多学习资料 ......................................................................................................... 178 3.12.7 案例:美国西雅图自行车统计数据的可视化 ..................................................... 179 3.13 高性能 Pandas: eval() 与 query() ................................................................................... 184 3.13.1 query() 与 eval() 的设计动机:复合代数式 ..................................................... 184 viii | 目录3.13.2 用 pandas.eval() 实现高性能运算 ...................................................................... 185 3.13.3 用 DataFrame.eval() 实现列间运算 .................................................................... 187 3.13.4 DataFrame.query() 方法 ....................................................................................... 188 3.13.5 性能决定使用时机 ................................................................................................. 189 3.14 参考资料 ............................................................................................................................... 189 第 4 章 Matplotlib 数据可视化 ................................................................................................... 191 4.1 Matplotlib 常用技巧 ............................................................................................................... 192 4.1.1 导入 Matplotlib ........................................................................................................... 192 4.1.2 设置绘图样式 ............................................................................................................ 192 4.1.3 用不用 show() ?如何显示图形 ............................................................................... 192 4.1.4 将图形保存为文件 .................................................................................................... 194 4.2 两种画图接口 ......................................................................................................................... 195 4.2.1 MATLAB 风格接口 ................................................................................................... 195 4.2.2 面向对象接口 ............................................................................................................ 196 4.3 简易线形图 ............................................................................................................................. 197 4.3.1 调整图形:线条的颜色与风格 ................................................................................ 199 4.3.2 调整图形:坐标轴上下限 ........................................................................................ 200 4.3.3 设置图形标签 ............................................................................................................ 203 4.4 简易散点图 ............................................................................................................................. 204 4.4.1 用 plt.plot 画散点图 ............................................................................................... 205 4.4.2 用 plt.scatter 画散点图 ......................................................................................... 206 4.4.3 plot 与 scatter :效率对比 ..................................................................................... 208 4.5 可视化异常处理 ..................................................................................................................... 208 4.5.1 基本误差线 ................................................................................................................ 209 4.5.2 连续误差 .................................................................................................................... 210 4.6 密度图与等高线图 ................................................................................................................. 211 4.7 频次直方图、数据区间划分和分布密度 ............................................................................. 215 4.8 配置图例 ................................................................................................................................. 219 4.8.1 选择图例显示的元素 ................................................................................................ 221 4.8.2 在图例中显示不同尺寸的点 .................................................................................... 222 4.8.3 同时显示多个图例 .................................................................................................... 223 4.9 配置颜色条 ............................................................................................................................. 224 4.9.1 配置颜色条 ................................................................................................................ 224 4.9.2 案例:手写数字 ........................................................................................................ 228 4.10 多子图 ................................................................................................................................... 230 4.10.1 plt.axes :手动创建子图 ...................................................................................... 230 4.10.2 plt.subplot :简易网格子图 ................................................................................ 231 4.10.3 plt.subplots :用一行代码创建网格 .................................................................. 233 4.10.4 plt.GridSpec :实现更复杂的排列方式 .............................................................. 234 目录 | ix4.11 文字与注释 ........................................................................................................................... 235 4.11.1 案例:节假日对美国出生率的影响 ..................................................................... 236 4.11.2 坐标变换与文字位置 ............................................................................................. 237 4.11.3 箭头与注释 ............................................................................................................. 239 4.12 自定义坐标轴刻度 ............................................................................................................... 241 4.12.1 主要刻度与次要刻度 ............................................................................................. 242 4.12.2 隐藏刻度与标签 ..................................................................................................... 243 4.12.3 增减刻度数量 ......................................................................................................... 244 4.12.4 花哨的刻度格式 ..................................................................................................... 245 4.12.5 格式生成器与定位器小结 ..................................................................................... 247 4.13 Matplotlib 自定义:配置文件与样式表 ............................................................................. 248 4.13.1 手动配置图形 ......................................................................................................... 248 4.13.2 修改默认配置: rcParams ...................................................................................... 249 4.13.3 样式表 ..................................................................................................................... 251 4.14 用 Matplotlib 画三维图 ........................................................................................................ 255 4.14.1 三维数据点与线 ..................................................................................................... 256 4.14.2 三维等高线图 ......................................................................................................... 256 4.14.3 线框图和曲面图 ..................................................................................................... 258 4.14.4 曲面三角剖分 ......................................................................................................... 259 4.15 用 Basemap 可视化地理数据 .............................................................................................. 261 4.15.1 地图投影 ................................................................................................................. 263 4.15.2 画一个地图背景 ..................................................................................................... 267 4.15.3 在地图上画数据 ..................................................................................................... 269 4.15.4 案例:美国加州城市数据 ..................................................................................... 270 4.15.5 案例:地表温度数据 ............................................................................................. 271 4.16 用 Seaborn 做数据可视化 .................................................................................................... 273 4.16.1 Seaborn 与 Matplotlib ............................................................................................. 274 4.16.2 Seaborn 图形介绍 ................................................................................................... 275 4.16.3 案例:探索马拉松比赛成绩数据 ......................................................................... 283 4.17 参考资料 ............................................................................................................................... 290 4.17.1 Matplotlib 资源 ....................................................................................................... 290 4.17.2 其他 Python 画图程序库 ........................................................................................ 290 第 5 章 机器学习 ............................................................................................................................ 291 5.1 什么是机器学习 ..................................................................................................................... 291 5.1.1 机器学习的分类 ........................................................................................................ 292 5.1.2 机器学习应用的定性示例 ........................................................................................ 292 5.1.3 小结 ............................................................................................................................ 299 5.2 Scikit-Learn 简介 .................................................................................................................... 300 5.2.1 Scikit-Learn 的数据表示 ........................................................................................... 300 5.2.2 Scikit-Learn 的评估器 API ........................................................................................ 302 x | 目录5.2.3 应用:手写数字探索 ................................................................................................ 309 5.2.4 小结 ............................................................................................................................ 313 5.3 超参数与模型验证 ................................................................................................................. 313 5.3.1 什么是模型验证 ........................................................................................................ 314 5.3.2 选择最优模型 ............................................................................................................ 317 5.3.3 学习曲线 .................................................................................................................... 322 5.3.4 验证实践:网格搜索 ................................................................................................ 326 5.3.5 小结 ............................................................................................................................ 327 5.4 特征工程 ................................................................................................................................. 327 5.4.1 分类特征 .................................................................................................................... 327 5.4.2 文本特征 .................................................................................................................... 329 5.4.3 图像特征 .................................................................................................................... 330 5.4.4 衍生特征 .................................................................................................................... 330 5.4.5 缺失值填充 ................................................................................................................ 332 5.4.6 特征管道 .................................................................................................................... 332 5.5 专题:朴素贝叶斯分类 ......................................................................................................... 333 5.5.1 贝叶斯分类 ................................................................................................................ 333 5.5.2 高斯朴素贝叶斯 ........................................................................................................ 334 5.5.3 多项式朴素贝叶斯 .................................................................................................... 336 5.5.4 朴素贝叶斯的应用场景 ............................................................................................ 339 5.6 专题:线性回归 ..................................................................................................................... 340 5.6.1 简单线性回归 ............................................................................................................ 340 5.6.2 基函数回归 ................................................................................................................ 342 5.6.3 正则化 ........................................................................................................................ 346 5.6.4 案例:预测自行车流量 ............................................................................................ 349 5.7 专题:支持向量机 ................................................................................................................. 353 5.7.1 支持向量机的由来 .................................................................................................... 354 5.7.2 支持向量机:边界最大化 ........................................................................................ 355 5.7.3 案例:人脸识别 ........................................................................................................ 363 5.7.4 支持向量机总结 ........................................................................................................ 366 5.8 专题:决策树与随机森林 ..................................................................................................... 367 5.8.1 随机森林的诱因:决策树 ........................................................................................ 367 5.8.2 评估器集成算法:随机森林 .................................................................................... 371 5.8.3 随机森林回归 ............................................................................................................ 373 5.8.4 案例:用随机森林识别手写数字 ............................................................................ 374 5.8.5 随机森林总结 ............................................................................................................ 376 5.9 专题:主成分分析 ................................................................................................................. 376 5.9.1 主成分分析简介 ........................................................................................................ 377 5.9.2 用 PCA 作噪音过滤 ................................................................................................... 383 5.9.3 案例:特征脸 ............................................................................................................ 385 5.9.4 主成分分析总结 ........................................................................................................ 387 目录 | xi 图灵社区会员 felix123([email protected]) 专享 尊重版权5.10 专题:流形学习 ................................................................................................................... 388 5.10.1 流形学习:“HELLO” ............................................................................................ 388 5.10.2 多维标度法(MDS) .............................................................................................. 389 5.10.3 将 MDS 用于流形学习 .......................................................................................... 391 5.10.4 非线性嵌入:当 MDS 失败时 .............................................................................. 393 5.10.5 非线性流形:局部线性嵌入 ................................................................................. 395 5.10.6 关于流形方法的一些思考 ..................................................................................... 396 5.10.7 示例:用 Isomap 处理人脸数据 ........................................................................... 397 5.10.8 示例:手写数字的可视化结构 ............................................................................. 400 5.11 专题:k-means 聚类 ............................................................................................................. 402 5.11.1 k-means 简介 ........................................................................................................... 403 5.11.2 k-means 算法:期望最大化 ................................................................................... 404 5.11.3 案例 ......................................................................................................................... 409 5.12 专题:高斯混合模型 ........................................................................................................... 415 5.12.1 高斯混合模型(GMM)为什么会出现:k-means 算法的缺陷 ......................... 415 5.12.2 一般化 E-M:高斯混合模型 ................................................................................. 417 5.12.3 将 GMM 用作密度估计 ......................................................................................... 421 5.12.4 示例:用 GMM 生成新的数据 ............................................................................. 425 5.13 专题:核密度估计 ............................................................................................................... 427 5.13.1 KDE 的由来:直方图 ............................................................................................ 428 5.13.2 核密度估计的实际应用 ......................................................................................... 431 5.13.3 示例:球形空间的 KDE ........................................................................................ 433 5.13.4 示例:不是很朴素的贝叶斯 ................................................................................. 436 5.14 应用:人脸识别管道 ........................................................................................................... 439 5.14.1 HOG 特征 ............................................................................................................... 440 5.14.2 HOG 实战:简单人脸识别器 ............................................................................... 441 5.14.3 注意事项与改进方案 ............................................................................................. 445 5.15 机器学习参考资料 ............................................................................................................... 446 5.15.1 Python 中的机器学习 ............................................................................................. 446 5.15.2 通用机器学习资源 ................................................................................................. 447 关于作者 .............................................................................................................................................. 448

2018-07-28

基于深度学习的人脸识别

人脸识别基于神经网络的完整工程代码,包括get_my_face,other_faces,is_my_face,train_model,搭建好环境就能用。

2018-04-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除