自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【MPU6050】requestFrom(): i2cWriteReadNonStop returned Error -1

当平台>= espressif32@~5.1.0时,出现此问题。平台= espressif32@~5.0.0。在platformio.ini中更改了版本。

2024-03-12 11:09:47 236

原创 “Building Nvidia-uvm kernel fialed“ ubuntu 安装驱动时问题解决

内核

2022-10-18 17:37:28 1674 1

转载 torch.flatten()函数

1)flatten(x,1)是按照x的第1个维度拼接(按照列来拼接,横向拼接);2)flatten(x,0)是按照x的第0个维度拼接(按照行来拼接,纵向拼接);3)有时候会遇到flatten里面有两个维度参数,flatten(x, start_dim, end_dimension),此时flatten函数执行的功能是将从start_dim到end_dim之间的所有维度值乘起来,其他的维度保持不变。例如x是一个size为[4,5,6]的tensor, flatten(x, 0, 1)的结果是一个size为

2022-05-13 14:03:14 836

转载 【转】DataParallel & DistributedDataParallel分布式训练-转载只为记录

model = nn.DataParallel(model)测试结果相差特别多(如下图所示),加了这句mIoU是第一个结果0.8847,没加是0.4929(以mIoU为例,可以看到其他各项指标也都掉的严重),所以决定花点心思把nn.DataParallel(model)搞清楚。指标结果掉的严重这里需要注意一下:多卡训练要考虑通信开销的, 是个trade-off的过程,不见得四块卡一定比两块卡快多少,训练到四块卡的时候可能io通信开销已经占了大头。nn.DataParallel()...

2022-03-17 11:27:04 977

原创 画图素材暗网

Python 直接赋值、浅拷贝和深度拷贝解析 | 菜鸟教程 (runoob.com)

2022-03-15 18:09:17 1138

原创 144 UserWarning: semaphore_tracker: There appear to be 26 leaked semaphores to clean up at shutdown

/opt/conda/lib/python3.7/multiprocessing/semaphore_tracker.py:144: UserWarning: semaphore_tracker: There appear to be 26 leaked semaphores to clean up at shutdown len(cache))转别人的解决办法export PYTHONWARNINGS='ignore:semaphore_tracker:UserWarning'...

2022-03-14 17:33:05 2754

原创 集群训练bug记录

-- Process 0 terminated with the following error:Traceback (most recent call last): File "/opt/conda/lib/python3.7/site-packages/torch/multiprocessing/spawn.py", line 20, in _wrap fn(i, *args) File "/workspace/geniii-trainingcode-lane/lanenet/dist...

2022-03-08 11:06:18 2317

原创 多级多卡分布式训练时,报错 RuntimeError: Socket Timeout

Traceback (most recent call last): File "distribute_prune_erfnet_cluster.py", line 643, in <module> daemon=False, ) File "/opt/conda/lib/python3.7/site-packages/torch/multiprocessing/spawn.py", line 200, in spawn return start_processes(f.

2022-02-24 15:39:44 4421 5

原创 解决pycharm ‘python tests in *****.py’

1、在Pycharm中右键运行python程序时出现Run 'pytest in *****.py' ,这是进入了Pytest模式。2、解决办法进入到File->Settings->Tools->Python integrated Tools页面找到Testing下的Defaulttestrunner把Pytest设置为Unittests就可以了...

2022-01-24 17:28:21 5879 6

原创 解决remote: You are not allowed to upload code.fatal: unable to access.The requested URL error:403

remote: You are not allowed to upload code.fatal: unable to access 'http://10.170.136.211/adas/perception/geniii-trainingcode-lane.git/': The requested URL returned error: 403困惑了我一整天,MD,希望你就到此为止了这个问题非常简单,看下你的用户名和密码 和凭据管理器的密码是不是都正确...

2022-01-19 16:39:15 2782 1

原创 详解lambda sorted(lane_coords[i], key=lambda pair: pair[1])

lambda表达式 作为函数的参数,举例:list = [(1, 4), (2, 3), (3, 2), (4, 1)]list.sort(key=lambda pair: pair[1])print(list) 输出结果为按照第二维度数据来排列:[(4, 1), (3, 2), (2, 3), (1, 4)]

2022-01-17 15:28:20 479

原创 【排列组合】itertools中combinations与permutations函数作用与区别

import itertoolss = [1, 2, 3]print(itertools.permutations(s,2))print(list(itertools.permutations(s,2))) #分顺序lis = list(itertools.combinations(s, 2)) #不分顺序print(lis)permutations和combinations都是得到一个迭代器。配合list使用。combinations方法是生成不分顺序的组合,permutatio.

2022-01-17 11:26:49 800

原创 解救RuntimeError: Stop_waiting response is expected

RuntimeError: Stop_waiting response is expected

2022-01-05 09:15:46 1447 2

原创 多机多卡GPU分布式训练

Traceback (most recent call last): File "train_erfnet_cluster.py", line 714, in <module> os.environ['MASTER_ADDR'] = os.environ['PAI_HOST_IP_worker_0'] File "/opt/conda/lib/python3.7/os.py", line 681, in __getitem__ raise KeyError(key) fr...

2021-12-31 15:50:48 1585 1

原创 pytorch tensor的统计属性 (统计tensor中为0或1的数量)

tensor的统计属性morm范数查看范数范数1:所有元素的绝对值的求和范数2:所有元素的绝对值的平方和的开方例子1:a = torch.full([8],1)b = a.view(2,4)c = a.view(2,2,2)a.norm(1),b.norm(1),c.norm(1)#都是tensor(8)a.norm(2),b.norm(2),c.norm(2)#都是tensor(2.8284) 根号8例子2:在指定的维数上面进行norm的查看a = t

2021-12-30 15:12:27 11799 2

原创 记录车道线检测

1.基于循环特征位移聚合器的车道线检测(RESA: Recurrent Feature-Shift Aggregator for Lane Detection)https://www.bilibili.com/video/BV1664y1o7wghttps://arxiv.org/abs/2008.13719https://github.com/ZJULearning/resatusimple数据集img_height = 368img_width = 640...

2021-12-30 11:16:24 1547

原创 使程序在Linux下后台运行 (关掉终端继续让程序运行的方法)

(1)输入命令:nohup 你的shell命令 &(2)回车,使终端回到shell命令行;(3)输入exit命令退出终端:exit(4)现在可以关闭你的终端软件了,等过足够的时间,让你的shell命令执行完了再上去看结果吧。其中,nohup命令可以让你的shell命令忽略SIGHUP信号,即可以使之脱离终端运行;“&”可以让你的命令在后台运行。以脱离终端的方式在后台运行shell命令有这样几个好处:只要你执行过了命令,那么你的网络中断不会对你有任何影响,并且你就可以关

2021-12-23 18:47:20 5898

原创 读xml转yolov5的txt代码

import osfrom glob import globimport xml.etree.ElementTree as ETxml_dir = 'E:\\dataset\\钢铁划痕_东大数据\\train\\train\\ANNOTATIONS'output_txt_dir = 'E:\\dataset\\钢铁划痕_东大数据\\train\\train\\TXT'def convert(size, box): dw = 1./(size[0]) dh = 1./(size[.

2021-08-27 20:16:38 509 1

转载 Faste-RCNN模型结构

FasterRCNN( (backbone): ResNet( (conv1): Conv2d(3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False) (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True) (relu): ReLU(inplace=True) (maxp.

2021-07-20 12:06:48 354

原创 cmake命令出错:Could NOT find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS)

问题:Could NOT find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS)解决办法cmake -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_LIBRARY=/usr/lib/python2.7/config/libpython2.7.so ..上面/usr/include/python2.7以及/usr/lib/python2.7/config

2021-07-14 20:01:46 3130

原创 Could NOT find PY_pip (missing: PY_PIP)

Could NOT find PY_pip (missing: PY_PIP)-- Found PythonInterp: /usr/bin/python3.6 (found suitable version "3.6.9", minimum required is "3.6")-- Found PythonLibs: /home/lvying/miniconda3/envs/ppocr/lib (found suitable version "3.7.10", minimum required

2021-07-14 20:00:19 1317 6

原创 CMake Error at cmake/nccl.cmake:18 (file): file failed to open for reading (No such file or direct

CMake Error at cmake/nccl.cmake:18 (file): file failed to open for reading (No such file or directory): /home/ps/lvying/Paddle/NCCL_INCLUDE_DIR-NOTFOUND/nccl.hCall Stack (most recent call first): CMakeLists.txt:268 (include)-- Current NCCL hea...

2021-07-14 18:21:23 2596 3

原创 sudo: /etc/sudoers is world writable

sudo: /etc/sudoers is world writablesudo: no valid sudoers sources found, quittingsudo: unable to initialize policy plugin

2021-06-07 21:21:46 158

原创 提升认知能力 | 塑造大脑,重新认识你自己

很多人并不真正了解自己,甚至并没有想过要去了解自己,你能“控制”自己吗?是否经常把糟糕的情绪发泄给别人,不能心平气和地说话,看不惯别人的言谈举止。这些都是“情绪脑”在控制你,而不是你“自己”(特指自己的大脑部分,“理智脑”)。潜意识不容易察觉,给人感觉是大脑驱动的,所以才会对自身的各种问题困惑不已。我们只能凭借自己的心情和感觉去做事情,那样得到的结果往往不是我们想要的。看似懂得很多道理,却还是过不好一生。当你管理好自己的情绪,你的内心也就越来越强大,...

2021-05-18 15:34:56 660

原创 为什么越努力,越焦虑?

前一段时间有个朋友跟我说@ta最近日常焦虑到睡不着觉了,觉得自己要被卷上天了。对我而言焦虑可能来源:①最近莫名其妙的就开始失眠了,大概率是因为最近看的东西太多,了解的太多,颠覆了之前的观念,瞬间觉得自己可以提升的空间很大,要学东西很多,自然而然就焦虑了。②当你见得越多,脱离最开始的圈子之后,进入另一个都是精英的圈子,就会焦虑,无关年龄,无论男女。因为你见到越来越牛逼的人,即使自己在一定的圈子里有一定的实力,也会无比焦虑,然后变得更强更好。这应...

2021-05-18 15:29:13 187 1

原创 在VS中OpenCV用imread读取不到图片

问题已解决So easy

2021-04-24 15:10:35 377

原创 mmdetection2 输出各类别Ap值

找到 "mmdetection/mmdet/datasets/coco.py" 371行修改classwise=True,如果想要IOU=0.5的各类AP值,那么请修改355行iou_thrs=[0.5],正常训练和测试就会输出你想要的结果。IoU=0.50意味着IoU大于0.5被认为是检测到,超出检测范围,所以Ap=-1...

2021-04-23 12:20:05 2830 2

原创 目标检测 数据增强方法

Cutmix def load_cutmix_image_and_boxes(self, index, imsize=1024): """ This implementation of cutmix author: https://www.kaggle.com/nvnnghia Refactoring and adaptation: https://www.kaggle.com/shonenkov """ w,

2021-04-14 16:12:00 330

原创 ModuleNotFoundError: No module named ‘projects‘

Traceback (most recent call last): File "tools/train.py", line 41, in <module> from ..projects.CenterNet2.centernet.config import add_centernet_configImportError: attempted relative import with no known parent package(detectron2) lvying@ps:~...

2021-04-14 15:06:51 2989

原创 RuntimeError: Input, output and indices must be on the current device

Traceback (most recent call last): File "detect.py", line 236, in <module> detect() File "detect.py", line 47, in detect torch.onnx.export(model, # model being run File "/home/zjkj/miniconda3/envs/yolov5/lib/python3.8/sit...

2021-04-13 18:13:36 1888 3

原创 AssertionError: Checkpoint /home/yourstorePath/model_final_5bd44e.pkl not found!

Traceback (most recent call last): File "train.py", line 304, in <module> launch( File "/10t/lvying/miniconda3/envs/detectron2/lib/python3.8/site-packages/detectron2/engine/launch.py", line 62, in launch main_func(*args) File "train.py...

2021-04-13 17:32:54 2216

原创 AssertionError: Config file ‘‘ does not exist!

Command Line Args: Namespace(config_file='', dist_url='tcp://127.0.0.1:50170', eval_only=False, machine_rank=0, num_gpus=1, num_machines=1, opts=[], resume=False)Traceback (most recent call last): File "train.py", line 219, in <module> launc...

2021-04-13 13:16:29 5460 13

原创 ImportError: cannot import name ‘_C‘ from ‘detectron2‘

将detectron2/detectron2中的整个detectron2删除即可,因为已经安装过了,用安装好的就行了。Traceback (most recent call last): File "register_dataset.py", line 69, in <module> from detectron2 import model_zoo File "/10t/lvying/detectron2/detectron2/model_zoo/__init__.py...

2021-04-13 11:28:45 5340 9

原创 MMdetection目标检测框架安装报错:ModuleNotFoundError: No module named ‘fvcore.nn.distributed‘解决办法

解决办法: pip install -U 'git+https://github.com/facebookresearch/fvcore'.Traceback (most recent call last): File "demo/demo.py", line 16, in <module> from predictor import VisualizationDemo File "/home/amax/iKang/dsr/Project/det2/demo/pred..

2021-04-13 10:51:26 3063

原创 将模型从Pytorvh导出到ONNX并使用ONNX RUNTIME运行

(可选)将模型从PYTORCH导出到ONNX并使用ONNX RUNTIME运行在本教程中,我们描述了如何将PyTorch中定义的模型转换为ONNX格式,然后在ONNX Runtime中运行它。ONNX Runtime是针对ONNX模型的以性能为中心的引擎,可跨多个平台和硬件(Windows,Linux和Mac,以及在CPU和GPU上)高效地进行推理。ONNX运行时已被证明大大增加了多种型号的性能,说明这里对于本教程,您将需要安装ONNX和ONNX Runtime。您可以使用来获取ONNX和ON.

2021-04-02 18:03:33 536

原创 pytorch 使用autocast半精度加速训练

pytorch 使用autocast半精度加速训练准备工作pytorch 1.6+如何使用autocast?根据官方提供的方法,如何在PyTorch中使用自动混合精度?答案:autocast + GradScaler。1.autocast正如前文所说,需要使用torch.cuda.amp模块中的autocast 类。使用也是非常简单的from torch.cuda.amp import autocast as autocast# 创建model,默认是torch.FloatT

2021-03-24 20:12:24 8466

原创 Error: EACCES: permission denied, open ‘/home/10t/lvying/yolov5/train.py‘

未能保存“train.py”: 无法写入文件"vscode-remote://ssh-remote+192.168.2.20/home/10t/lvying/yolov5/train.py"(NoPermissions (FileSystemError): Error: EACCES: permission denied, open '/home/10t/lvying/yolov5/train.py')解决办法:root@psdz:/home/10t# sudo chown -R lvying .

2021-03-16 10:57:49 537

原创 用函数fopen_s打开数据文件

用函数fopen_s打开数据文件1. fopen_s函数的用法fopen_s函数声明如下:errno_t fopen_s ( FILE** pFile, const char *filename, const char *mode );fopen_s函数有3个参数,它的调用方式为:fopen_s(指针,文件名,使用文件方式); FILE** pFile:其中指针是用来接收 <指向目标文件的指针> 的指针。 fopen..

2021-01-19 10:12:19 13622

原创 OpenCV3 亚像素角点检测:cv2.cornerSubPix()

exact_corners = cv2.cornerSubPix(gray, corners, (11, 11), (-1, -1), criteria)前言:cv::goodFeaturesToTrack()提取到的角点只能达到像素级别【OpenCV3 角点检测:goodFeaturesToTrack()】,在很多情况下并不能满足实际的需求,这时,我们则需要使用cv::cornerSubPix()对检测到的角点作进一步的优化计算,可使角点的精度达到亚像素级别。函数原型:...

2021-01-13 12:53:09 11333 3

原创 0x576D31DE (vcruntime140.dll)处(位于 PalletDetection.exe 中)引发的异常: 0xC0000005: 读取位置 0x0E54F000 时发生访问冲突。

下面两个这种类型的报错都一样。(跟xxx.dll和xxx.exe都没关系)0x794CECC1 (Qt5Cored.dll)处(位于 xxx.exe 中)引发的异常: 0xC0000005: 读取位置 0x0000003F 时发生访问冲突。 处未处理的异常: 0xC0000005: 读取位置 0x00000000时发生访问冲突BUG的显示方式:闪退最近在用Qt开发一个客户端,但是按了一个按钮后总是闪退,百思不得其解,后来调试看了,然后到了这一步就提示错误。如图(其中m_acToken只是个..

2021-01-06 16:51:25 8583 6

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

目 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&#40;&#41; 检查是否为文件 ............................................................................. 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&#40;&#41; 与 query() ................................................................................... 184 3.13.1 query() 与 eval&#40;&#41; 的设计动机:复合代数式 ..................................................... 184 viii | 目录3.13.2 用 pandas.eval&#40;&#41; 实现高性能运算 ...................................................................... 185 3.13.3 用 DataFrame.eval&#40;&#41; 实现列间运算 .................................................................... 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关注的人

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