├── ML_roadmap.png
├── FakeDataGenerator.py
├── README.md
├── 第3期-学习方法及资料分享.ipynb
├── .gitignore
├── 学习资料推荐.md
├── 第0期-如何用机器学习预测职业生涯.ipynb
├── 第5期-OOP_keras.ipynb
├── 第2期-kaggle新冠预测竞赛高赞代码解读.ipynb
└── 第1期-了解这3组概念,就可以开始机器学习实战了.ipynb
/ML_roadmap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LmYjQ/AI_for_everyone/HEAD/ML_roadmap.png
--------------------------------------------------------------------------------
/FakeDataGenerator.py:
--------------------------------------------------------------------------------
1 | import yaml
2 | import random
3 | import pandas as pd
4 |
5 | class FakeDataGenerator(object):
6 | def __init__(self, conf_file):
7 | with open(conf_file, 'r') as f:
8 | self.conf = yaml.load(f)
9 | self.data = self._make_fake_data()
10 |
11 | def _make_fake_data(self):
12 | data = {}
13 | self.num = int(self.conf['num_samples'])
14 | data['label'] = self._random_col(self.conf['label'])
15 | for field, value_str in self.conf['fields'].items():
16 | data[field] = self._random_col(value_str)
17 | print(data)
18 | return data
19 |
20 | # 随机产生一列数据,离散或连续
21 | def _random_col(self, value_str):
22 | if ',' in value_str: # discrete
23 | value_set = value_str.split(',')
24 | return [int(random.choice(value_set)) for i in range(self.num) ]
25 | else: # continuous
26 | value_set = value_str.split('-')
27 | return [random.uniform(int(value_set[0]), int(value_set[1])) for i in range(self.num)]
28 |
29 | def get_dataframe():
30 | pass
31 |
32 |
33 | if __name__=='__main__':
34 | fdg = FakeDataGenerator('./conf/classification.yaml')
35 | fdg._make_fake_data()
36 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## 内容简介
2 | 力图用最简单易懂的方式科普机器学习算法/人工智能
3 |
4 | 计划更新内容如下:
5 |
6 | - 第0期 机器学习算法能解决什么样的问题(已更新)
7 | - 第1期 15分钟带你掌握实战机器学习前的知识准备
8 | - 第2期 来一场kaggle实战初体验
9 | - 第3期 学习资料推荐
10 | - 还没想好,欢迎大家提建议
11 |
12 | ## 现有内容有什么缺点
13 | - 理论性内容过于严谨,学起来吃力耗时长
14 | - 快餐性内容过于流程化,看了之后不知道怎么用到自己的场景里
15 | - 我希望结合自己的踩坑经验,做一些讲解让大家看了以后就能上手用,用起来之后再慢慢补理论基础
16 |
17 | ## 适合人群
18 | 任何对机器学习算法,人工智能感兴趣的专业/非专业人群。
19 |
20 | ## FAQ
21 | - 1.我是xxx背景,我可以做机器学习吗?
22 |
23 | 答:任何人都可以学习和使用机器学习,因为现有的算法包已经很成熟了,简单理解原理之后调用是很容易的一件事情。仅仅调用现成的算法包在很多场景下已经足够产生很大的收益了,不需要每个人都去把理论吃透,发明新的算法。
24 |
25 | - 2.我想学习机器学习,应该怎么开始?
26 |
27 | 答:(1)如果时间比较充裕,对数学基础比较有信心,可以选择系统性的学习。从andrewNG,李宏毅,林轩田的课开始看。书籍参考李航《统计学习方法》和西瓜书(周志华老师《机器学习》),英文教材PRML等等。这些资料去知乎能搜到很多。(2)如果时间不充足,不喜欢推数学公式的话可以直接上手实操。先学一些python的基础语法,然后直接上kaggle找比赛看高赞的kernel。kernel就是别人写的代码,从读取数据,预处理,模型训练到预测,很快就可以体验完整的流程,不需要对模型的理解很深入。先把完整的流程走通,得到正反馈再一点一点补理论基础。(后面总结更多资料)
28 |
29 | 个人推荐大多数人走方法二就好。因为如果不是要走学术路线,只是为了能解决一些实际问题或者找工作,只要明白每个模型的大体思路,每个参数有什么影响,用别人写好的模型就足够做出一个还不错的结果了。想要突破sota做出创新的方法一还是留给少数大牛去做吧
30 |
31 | - 3.算法这么“高大上”的岗位都会被裁的?
32 |
33 | 答:任何岗位都是搬砖的,当老板认为你不能做出足够大的产出(或者说产出足够大产出的概率不够大),那被裁就是理所应当的了。一个事实是,算法能够产出是依赖很多前提的:业务量要够大,能够产出高质量的数据,开始的探索期有一段时间是赔钱的……但是开发就不一样了,老板提出什么需求(只要是正常需求)你满足就好了,(至少在老板看来)能够有产出是很明确的一件事情。
34 |
35 | - 4.非计算机专业转行做算法难度大吗?
36 |
37 | 答:做算法难度确实大,但是哪行都不容易啊,看自己愿意吃哪种苦了。只要有心想做,可以参照Q2中的方法二自己试一试。现在的网络资源如此之丰富,只需要用业余时间去做,不需要辞职不需要花钱不需要重新高考。后面这里会持续更新对新人更友好的学习教程。
38 |
39 | - 5.关于找算法岗的工作/实习
40 |
41 | 答:实际经验比学历重要的多。为什么很多人有学历很重要的感觉,那是因为没有实践经验,那人家就只能看你学历了。至于实践经验怎么找,kaggle还有很多类似的平台上有大把的比赛(后面总结一下比赛的平台)可以刷。
42 |
43 | - 为什么up主的发量有点不像程序员?
44 |
45 | 答:大概是因为我还不够强吧。。。努力中
46 |
--------------------------------------------------------------------------------
/第3期-学习方法及资料分享.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "## 目录\n",
8 | "- 误区\n",
9 | "- 学习目标\n",
10 | "- 学习资料"
11 | ]
12 | },
13 | {
14 | "cell_type": "markdown",
15 | "metadata": {},
16 | "source": [
17 | "## 0.误区\n",
18 | "### Q0:想要体验机器学习,需要先看很多资料吗?\n",
19 | "A0:不一定。只需要了解简单的背景知识就可以先动手体验。\n",
20 | "\n",
21 | "### Q1:想要找算法岗的工作,一定要发过几篇论文才可以吗?\n",
22 | "A1:算法的工作分不同的类型。理论研究型肯定是要求学历和论文的,但是也有应用型岗位更看中实践经验的。\n",
23 | "\n",
24 | "### Q2:算法岗是不是特别看中学校/学历/比赛得奖/....?\n",
25 | "A2:两条原则。1.有一定比没有好:别问xx东西有没有用,会总比不会好 2.匹配原则:当有A和B两个相比的话,就要看岗位匹配度了。比如科研岗位更看重理论,业务岗更看重应用"
26 | ]
27 | },
28 | {
29 | "cell_type": "markdown",
30 | "metadata": {},
31 | "source": [
32 | "## 1.学习目标"
33 | ]
34 | },
35 | {
36 | "cell_type": "markdown",
37 | "metadata": {},
38 | "source": [
39 | "\n"
40 | ]
41 | },
42 | {
43 | "cell_type": "markdown",
44 | "metadata": {},
45 | "source": [
46 | " | 研究型 | 应用型 \n",
47 | "-|-|-\n",
48 | "linux(使用服务器/装包) | 🌟🌟🌟 | 🌟🌟🌟🌟 |\n",
49 | "数据处理/SQL | 🌟🌟 | 🌟🌟🌟🌟 |\n",
50 | "算法理论 | 🌟🌟🌟🌟🌟 | 🌟🌟🌟\n",
51 | "编码功力(leetcode) |🌟🌟🌟|🌟🌟🌟\n",
52 | "编码功力(设计模式) |🌟| 🌟🌟🌟\n",
53 | "业务理解 | 🌟🌟| 🌟🌟🌟🌟🌟\n",
54 | "计算机基本原理(操作系统/网络)|🌟🌟|🌟🌟🌟"
55 | ]
56 | },
57 | {
58 | "cell_type": "markdown",
59 | "metadata": {},
60 | "source": [
61 | "## 2.资料\n",
62 | "见markdown文档"
63 | ]
64 | },
65 | {
66 | "cell_type": "code",
67 | "execution_count": null,
68 | "metadata": {},
69 | "outputs": [],
70 | "source": []
71 | }
72 | ],
73 | "metadata": {
74 | "kernelspec": {
75 | "display_name": "Python 3",
76 | "language": "python",
77 | "name": "python3"
78 | },
79 | "language_info": {
80 | "codemirror_mode": {
81 | "name": "ipython",
82 | "version": 3
83 | },
84 | "file_extension": ".py",
85 | "mimetype": "text/x-python",
86 | "name": "python",
87 | "nbconvert_exporter": "python",
88 | "pygments_lexer": "ipython3",
89 | "version": "3.6.4"
90 | }
91 | },
92 | "nbformat": 4,
93 | "nbformat_minor": 2
94 | }
95 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 | *$py.class
5 |
6 | # C extensions
7 | *.so
8 |
9 | # Distribution / packaging
10 | .Python
11 | build/
12 | develop-eggs/
13 | dist/
14 | downloads/
15 | eggs/
16 | .eggs/
17 | lib/
18 | lib64/
19 | parts/
20 | sdist/
21 | var/
22 | wheels/
23 | pip-wheel-metadata/
24 | share/python-wheels/
25 | *.egg-info/
26 | .installed.cfg
27 | *.egg
28 | MANIFEST
29 |
30 | # PyInstaller
31 | # Usually these files are written by a python script from a template
32 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
33 | *.manifest
34 | *.spec
35 |
36 | # Installer logs
37 | pip-log.txt
38 | pip-delete-this-directory.txt
39 |
40 | # Unit test / coverage reports
41 | htmlcov/
42 | .tox/
43 | .nox/
44 | .coverage
45 | .coverage.*
46 | .cache
47 | nosetests.xml
48 | coverage.xml
49 | *.cover
50 | *.py,cover
51 | .hypothesis/
52 | .pytest_cache/
53 |
54 | # Translations
55 | *.mo
56 | *.pot
57 |
58 | # Django stuff:
59 | *.log
60 | local_settings.py
61 | db.sqlite3
62 | db.sqlite3-journal
63 |
64 | # Flask stuff:
65 | instance/
66 | .webassets-cache
67 |
68 | # Scrapy stuff:
69 | .scrapy
70 |
71 | # Sphinx documentation
72 | docs/_build/
73 |
74 | # PyBuilder
75 | target/
76 |
77 | # Jupyter Notebook
78 | .ipynb_checkpoints
79 |
80 | # IPython
81 | profile_default/
82 | ipython_config.py
83 |
84 | # pyenv
85 | .python-version
86 |
87 | # pipenv
88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies
90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not
91 | # install all needed dependencies.
92 | #Pipfile.lock
93 |
94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow
95 | __pypackages__/
96 |
97 | # Celery stuff
98 | celerybeat-schedule
99 | celerybeat.pid
100 |
101 | # SageMath parsed files
102 | *.sage.py
103 |
104 | # Environments
105 | .env
106 | .venv
107 | env/
108 | venv/
109 | ENV/
110 | env.bak/
111 | venv.bak/
112 |
113 | # Spyder project settings
114 | .spyderproject
115 | .spyproject
116 |
117 | # Rope project settings
118 | .ropeproject
119 |
120 | # mkdocs documentation
121 | /site
122 |
123 | # mypy
124 | .mypy_cache/
125 | .dmypy.json
126 | dmypy.json
127 |
128 | # Pyre type checker
129 | .pyre/
130 |
--------------------------------------------------------------------------------
/学习资料推荐.md:
--------------------------------------------------------------------------------
1 | ## 1.算法理论基础
2 | - 视频课程
3 |
4 | 林轩田《机器学习基石》和《机器学习技法》https://www.bilibili.com/video/BV1Cx411i7op?from=search&seid=7223292421632721688 https://www.bilibili.com/video/BV1ix411i7yp?from=search&seid=7223292421632721688
5 |
6 | 李宏毅深度学习 https://www.bilibili.com/video/BV1JE411g7XF
7 |
8 | 白板推导机器学习 https://www.bilibili.com/video/BV1aE411o7qd
9 |
10 | - 书籍
11 | 李航《统计学习方法》
12 |
13 | 周志华《机器学习》(西瓜书)
14 |
15 | DeepLearning(花书)
16 |
17 | Pattern Recognition and Machine Learning
18 |
19 | The element of statistical Learning
20 |
21 | - 博客
22 |
23 | 苏剑林,理论水平和实践水平都非常牛逼的大神,经常提出自己独到的见解 https://spaces.ac.cn/
24 |
25 | 52nlp,nlp相关内容很全 http://www.52nlp.cn/
26 |
27 | ## 2.计算机基础知识
28 | 算法从理论到实际开发和上线,是离不开相关的计算机基础知识的。重点分享给非计算机专业的小伙伴们
29 |
30 | - python编程
31 | 廖雪峰教程,网站上还有SQL和git教程,如果不了解也可以看看 https://www.liaoxuefeng.com/wiki/1016959663602400
32 |
33 | - 计算机网络
34 | 网易首席架构师刘超,课程特点是结合故事和具体案例讲解枯燥琐碎的知识,最后结合双十一的故事串起整套网络协议的知识,听完会有一种通透的赶脚 https://time.geekbang.org/column/intro/85
35 |
36 | - linux操作系统
37 | 还是网易刘超,说实话这门课我趁优惠囤了还没有看完。但是就冲网络协议那么课我相信这位大佬 https://time.geekbang.org/column/intro/164
38 |
39 | - 设计模式
40 | 设计模式的内容相对上面的基础来讲(尤其是对于初学者)相对没有那么重要,因为即使没有设计模式,该解决的问题一样能解决,只是会麻烦、不优雅、容易出错。建议有一些实际的踩坑经验再来学习这门课,当然先走马观花的听一耳朵留个印象也没毛病。这课我也是趁优惠囤的还没看完,冲着王争的数据结构与算法我相信这位大佬 https://time.geekbang.org/column/intro/250
41 |
42 | ## 3.工业实战经验&综述
43 | 这部分工业应用方向以up主过去的主业推荐系统为主,其他方向也会涉及一些。
44 |
45 | - 张俊林,新浪微博推荐大佬,综述文章非常给力,每篇文章都值得精读。特点是有理论有实践,可以很快掌握一类技术的前世今生,不陷入过多细节 https://www.zhihu.com/people/zhang-jun-lin-76/posts
46 |
47 | - 王喆,同样是做推荐/广告的大佬,文章内容非常贴近工业实战,细节多,不太适合没有踩过坑的新人 https://www.zhihu.com/people/wang-zhe-58
48 |
49 | - 微信公众号datafuntalk,超级多工业级实践分享,内容涉及人工智能/机器学习/大数据的方方面面
50 |
51 | - 微信公众号小小挖掘机,《推荐系统遇上深度学习》系列,理论配合代码讲解
52 |
53 | - 浅梦,开源项目DeepCTR作者。graph embedding系列写的非常好 https://zhuanlan.zhihu.com/weichennote
54 |
55 | - 夕小瑶,主做nlp的算法女神。理论内容十分给力,但是这里特别推荐两篇,大家可以了解算法工作的真实状态。 1.在大厂和小厂做算法有什么不同?https://mp.weixin.qq.com/s/T9peHEuauLVxsRMemR5AcQ 2. 拒绝跟风,谈谈几种算法岗的区别和体验 https://mp.weixin.qq.com/s/Y0NkZFxVued3L1izu-6bCA
56 |
57 | - 微信公众号有三AI,主做cv的大牛,分免费和收费内容。我只白嫖过免费内容,质量是很高的。收费内容我相信也很不错,如果需要大家可以自行了解。
58 |
59 | - 微信公众号王的机器,主做金融工程方向的大牛,机器学习、python基础的内容也有很多。
60 |
61 | - pelhans博客,特色是kaldi/ASR相关内容,机器学习/深度学习基础也有 http://pelhans.com/
62 |
63 | - 微信公众号intro2musictech,无痛入门音乐科技,做音乐人工智能的博士女神贝茨 https://mp.weixin.qq.com/s/GNIyDXrYV9zgxJ9Ii3IRhA
64 |
65 | - 软绵绵的小熊猫,Google/Facebook/Amazon等10多家外企面试经验 https://b23.tv/BV177411G7Rj
66 |
67 | - 微博@爱可可-爱生活,b站@fly51fly,业界最前沿/最潮流内容分享,英文内容比较多。https://space.bilibili.com/23852932/?share_source=copy_link&share_medium=iphone&bbid=Z64D7961336870564B5EA852ABDECE972ADC&ts=1585262999
68 |
69 | ## 4.数据结构与算法
70 | 冬瓜哥出品,13.6k star,不仅仅是讲题,还有分类别讲解思路 https://github.com/labuladong/fucking-algorith
71 |
72 | 王争《数据结构与算法之美》,最大的亮点是结合工业应用,告诉你为什么在那个场景下就要用那种数据结构 https://time.geekbang.org/column/intro/126
73 |
74 | liuyubobobo的算法与数据结构,c++实现,一步一步手把手带着敲代码,比王争更细致一些,聚焦于性能分析不涉及工业应用场景 https://coding.imooc.com/learn/list/71.html
75 |
76 | liuyubobobo的leetcode分类讲解,c++实现。和冬瓜哥类似的分类讲解思路,亮点是每一部分都是由简单到复杂,可以体会逐步进阶的过程 https://coding.imooc.com/learn/list/82.htm
77 |
78 | 各种类型题目解题模板 https://blog.csdn.net/fuxuemingzhu/article/details/101900729l
79 |
--------------------------------------------------------------------------------
/第0期-如何用机器学习预测职业生涯.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "# 【讲人话的人工智能】第0期 - 如何用机器学习预测自己的职业生涯"
8 | ]
9 | },
10 | {
11 | "cell_type": "markdown",
12 | "metadata": {},
13 | "source": [
14 | "## 1. 为什么要看这些视频\n",
15 | "### 1.我能不能做机器学习?\n",
16 | "\n",
17 | "任何人都可以,不同人有不同的方式\n",
18 | "\n",
19 | "\n",
20 | "\n",
21 | "\n",
22 | "### 2.我想做机器学习,应该如何上手?\n",
23 | "\n",
24 | "方案一:以正规军的方式系统性学习\n",
25 | "\n",
26 | "🌟方案二:野路子搞起,边干边学\n",
27 | "\n",
28 | "\n",
29 | "\n",
30 | "### 3.排除常见误区\n",
31 | "\n",
32 | "高大上的机器学习是不是多么困难的问题都能解决?\n",
33 | "\n",
34 | "是不是越复杂的模型最厉害?\n",
35 | "\n",
36 | "\n",
37 | "\n",
38 | "## 2. 为什么可以做到\n",
39 | "1.多讲思想少推公式\n",
40 | "\n",
41 | "2.尽量结合具体的实例\n",
42 | "\n",
43 | "\n",
44 | "## 3. 问题类型以及对应的算法(算法类型以及对应能解决的问题?)\n",
45 | "### 先有问题还是先有算法?\n",
46 | "\n",
47 | "1.回归(监督学习)\n",
48 | "\n",
49 | "- 已知一个人的一系列属性(年龄/性别/毕业院校/技能熟练度..),预测能拿多少工资\n",
50 | "\n",
51 | "2.分类(监督学习)\n",
52 | "\n",
53 | "- 已知一个人的一系列属性(年龄/性别/所在公司/工作年限...),预测是否会升职\n",
54 | "\n",
55 | "3.聚类(非监督学习)\n",
56 | "\n",
57 | "- 已知一个小组leader手下有一堆人,想要根据他们的不同特质(技术水平/沟通能力/性格特点/家庭背景...)分成几类,采用不同的培养方式\n",
58 | "\n",
59 | "4.智能体&环境交互(强化学习)\n",
60 | "\n",
61 | "- alphaGo下围棋,星际争霸,flappybird\n",
62 | "- 一个应届毕业生(智能体)毕业后进入一家公司(环境),工作和接触同事们不断打怪升级(交互),根据获得的经验(正/负向激励),提升自己(学习到的策略)\n",
63 | "\n",
64 | "\n",
65 | "## 4. 几种算法的区别\n",
66 | "1.监督学习\n",
67 | "\n",
68 | "需要看参考答案(样本)来学习(训练)。已知y(label)和X(feature)求一个f(model)使得y=f(x)\n",
69 | "有了f(x)以后随便来一个x都可以算出y\n",
70 | "\n",
71 | "2.非监督学习\n",
72 | "\n",
73 | "不需要参考答案,只根据X值的分布把样本分成几堆(和分类的区别在不知道到底分几堆)\n",
74 | "\n",
75 | "- 技术水平高&沟通能力弱一些的把高难度的任务派给他\n",
76 | "- 技术水平一般&沟通能力强的负责和其他部门协作,讨论需求\n",
77 | "- 技术水平渣渣&家庭背景硬的当大爷供起来\n",
78 | "- 。。。。\n",
79 | "\n",
80 | "3.强化学习\n",
81 | "\n",
82 | "定义智能体/环境的交互规则,奖惩措施,通过暴力or机智的搜索方式让智能体找到好的策略\n",
83 | "\n",
84 | "## 5. 各种算法的经典模型\n",
85 | "\n",
86 | "### sklearn(python必学) https://scikit-learn.org/\n",
87 | "\n",
88 | "regression回归\n",
89 | "\n",
90 | "classification分类\n",
91 | "\n",
92 | "clustering聚类\n",
93 | "\n",
94 | "dimension reducing降维"
95 | ]
96 | },
97 | {
98 | "cell_type": "markdown",
99 | "metadata": {},
100 | "source": [
101 | "## 思考题\n",
102 | "你可以举出一些“问题以及对应的算法”的例子吗?"
103 | ]
104 | },
105 | {
106 | "cell_type": "code",
107 | "execution_count": null,
108 | "metadata": {},
109 | "outputs": [],
110 | "source": []
111 | }
112 | ],
113 | "metadata": {
114 | "kernelspec": {
115 | "display_name": "Python 3",
116 | "language": "python",
117 | "name": "python3"
118 | },
119 | "language_info": {
120 | "codemirror_mode": {
121 | "name": "ipython",
122 | "version": 3
123 | },
124 | "file_extension": ".py",
125 | "mimetype": "text/x-python",
126 | "name": "python",
127 | "nbconvert_exporter": "python",
128 | "pygments_lexer": "ipython3",
129 | "version": "3.6.4"
130 | }
131 | },
132 | "nbformat": 4,
133 | "nbformat_minor": 2
134 | }
135 |
--------------------------------------------------------------------------------
/第5期-OOP_keras.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "## Why-两面性\n",
8 | "- 减少重复劳动:逻辑隐藏在基类中,需要花力气找\n",
9 | "- 增加约束:避免发生低级错误"
10 | ]
11 | },
12 | {
13 | "cell_type": "markdown",
14 | "metadata": {},
15 | "source": [
16 | "## 深度学习为什么OOP\n",
17 | "- 深度学习最重要的事情:定义层是什么样子,能做什么事情\n",
18 | "- 定义结构(权重),计算逻辑,loss,metric\n",
19 | "- OOP思想应用于层的复用——完美!"
20 | ]
21 | },
22 | {
23 | "cell_type": "markdown",
24 | "metadata": {},
25 | "source": [
26 | "## keras OOP\n",
27 | "\n",
28 | "### [base_layer](https://keras.io/api/layers/base_layer/)\n",
29 | "\n",
30 | "__init__(): Defines custom layer attributes, and creates layer state variables that do not depend on input shapes, using add_weight().\n",
31 | "\n",
32 | "build(self, input_shape): This method can be used to create weights that depend on the shape(s) of the input(s), using add_weight(). __call__() will automatically build the layer (if it has not been built yet) by calling build().\n",
33 | "\n",
34 | "call(self, *args, **kwargs): Called in __call__ after making sure build() has been called. call() performs the logic of applying the layer to the input tensors (which should be passed in as argument). Two reserved keyword arguments you can optionally use in call() are: - training (boolean, whether the call is in inference mode or training mode) - mask (boolean tensor encoding masked timesteps in the input, used in RNN layers)\n",
35 | "\n",
36 | "get_config(self): Returns a dictionary containing the configuration used to initialize this layer. If the keys differ from the arguments in __init__, then override from_config(self) as well. This method is used when saving the layer or a model that contains this layer.\n",
37 | "\n",
38 | "懒加载(lazy loading)思想:用到的时候才创建\n",
39 | "\n",
40 | "为什么区分是否依赖输入维度?只想写死输出的维度,输出维度根据输入自动识别"
41 | ]
42 | },
43 | {
44 | "cell_type": "markdown",
45 | "metadata": {},
46 | "source": [
47 | "### [实战](https://keras.io/guides/making_new_layers_and_models_via_subclassing/#making-new-layers-and-models-via-subclassing)"
48 | ]
49 | },
50 | {
51 | "cell_type": "markdown",
52 | "metadata": {},
53 | "source": [
54 | "#### 最简单的wx+b如何实现(add_weight封装,简化代码)\n",
55 | "#### 固定权重,训练过程中不更新:trainable=False\n",
56 | "#### 根据输入自动推断维度\n",
57 | "#### 递归调用:层中层(不禁止套娃)\n",
58 | "#### loss\n",
59 | "- loss作为属性更新/调用\n",
60 | "- 每一轮(反向传播结束)重置\n",
61 | "\n",
62 | "#### metric\n",
63 | "- 使用方法和loss类似\n",
64 | "\n",
65 | "#### 序列化\n",
66 | "#### 训练/预测阶段做不同的事情: BatchNormalization / Dropout \n",
67 | "#### 处理序列数据:mask\n",
68 | "#### model类:把层装到一起\n",
69 | "#### 结合以上所有:MNIST数据集训练VAE\n",
70 | "#### 函数式API\n",
71 | "- 一行代码 = 一层 + 一输入 + 一输出 = 两个节点\n",
72 | "- 所有节点合起来 = DAG"
73 | ]
74 | },
75 | {
76 | "cell_type": "markdown",
77 | "metadata": {},
78 | "source": [
79 | "## 推荐学习资料\n",
80 | "https://github.com/shenweichen/DeepMatch\n",
81 | "\n",
82 | "https://github.com/shenweichen/DeepCTR\n",
83 | "\n",
84 | "https://spaces.ac.cn/tag/keras/"
85 | ]
86 | },
87 | {
88 | "cell_type": "code",
89 | "execution_count": null,
90 | "metadata": {},
91 | "outputs": [],
92 | "source": []
93 | }
94 | ],
95 | "metadata": {
96 | "kernelspec": {
97 | "display_name": "Python 3",
98 | "language": "python",
99 | "name": "python3"
100 | },
101 | "language_info": {
102 | "codemirror_mode": {
103 | "name": "ipython",
104 | "version": 3
105 | },
106 | "file_extension": ".py",
107 | "mimetype": "text/x-python",
108 | "name": "python",
109 | "nbconvert_exporter": "python",
110 | "pygments_lexer": "ipython3",
111 | "version": "3.7.0"
112 | },
113 | "toc": {
114 | "base_numbering": 1,
115 | "nav_menu": {},
116 | "number_sections": true,
117 | "sideBar": true,
118 | "skip_h1_title": false,
119 | "title_cell": "Table of Contents",
120 | "title_sidebar": "Contents",
121 | "toc_cell": false,
122 | "toc_position": {},
123 | "toc_section_display": true,
124 | "toc_window_display": false
125 | }
126 | },
127 | "nbformat": 4,
128 | "nbformat_minor": 2
129 | }
130 |
--------------------------------------------------------------------------------
/第2期-kaggle新冠预测竞赛高赞代码解读.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "## 0.目的\n",
8 | "- 实战如何跟着高赞代码学习,体验完整的机器学习流程\n",
9 | "- 推荐学习方式:先看输入输出,然后了解怎么做到这一点的\n",
10 | "- 常见数据处理思想:filter/groupby/agg/transform/join\n",
11 | "- 模型训练/预测思想:fit/predict/fit_predict/fit_transform\n",
12 | "- 模型对比\n",
13 | "- data leakage\n",
14 | "\n",
15 | "## 1.题目简介\n",
16 | "\n",
17 | "https://www.kaggle.com/c/covid19-global-forecasting-week-2\n",
18 | "- 监督学习\n",
19 | "- 时间序列"
20 | ]
21 | },
22 | {
23 | "cell_type": "code",
24 | "execution_count": 1,
25 | "metadata": {},
26 | "outputs": [],
27 | "source": [
28 | "import pandas as pd \n",
29 | "train = pd.read_csv(\"~/Downloads/train.csv\")\n",
30 | "test = pd.read_csv(\"~/Downloads/test.csv\")"
31 | ]
32 | },
33 | {
34 | "cell_type": "code",
35 | "execution_count": 2,
36 | "metadata": {},
37 | "outputs": [
38 | {
39 | "data": {
40 | "text/html": [
41 | "
\n",
42 | "\n",
55 | "
\n",
56 | " \n",
57 | " \n",
58 | " | \n",
59 | " Id | \n",
60 | " Province_State | \n",
61 | " Country_Region | \n",
62 | " Date | \n",
63 | " ConfirmedCases | \n",
64 | " Fatalities | \n",
65 | "
\n",
66 | " \n",
67 | " \n",
68 | " \n",
69 | " | 0 | \n",
70 | " 1 | \n",
71 | " NaN | \n",
72 | " Afghanistan | \n",
73 | " 2020-01-22 | \n",
74 | " 0.0 | \n",
75 | " 0.0 | \n",
76 | "
\n",
77 | " \n",
78 | " | 1 | \n",
79 | " 2 | \n",
80 | " NaN | \n",
81 | " Afghanistan | \n",
82 | " 2020-01-23 | \n",
83 | " 0.0 | \n",
84 | " 0.0 | \n",
85 | "
\n",
86 | " \n",
87 | " | 2 | \n",
88 | " 3 | \n",
89 | " NaN | \n",
90 | " Afghanistan | \n",
91 | " 2020-01-24 | \n",
92 | " 0.0 | \n",
93 | " 0.0 | \n",
94 | "
\n",
95 | " \n",
96 | " | 3 | \n",
97 | " 4 | \n",
98 | " NaN | \n",
99 | " Afghanistan | \n",
100 | " 2020-01-25 | \n",
101 | " 0.0 | \n",
102 | " 0.0 | \n",
103 | "
\n",
104 | " \n",
105 | " | 4 | \n",
106 | " 5 | \n",
107 | " NaN | \n",
108 | " Afghanistan | \n",
109 | " 2020-01-26 | \n",
110 | " 0.0 | \n",
111 | " 0.0 | \n",
112 | "
\n",
113 | " \n",
114 | "
\n",
115 | "
"
116 | ],
117 | "text/plain": [
118 | " Id Province_State Country_Region Date ConfirmedCases Fatalities\n",
119 | "0 1 NaN Afghanistan 2020-01-22 0.0 0.0\n",
120 | "1 2 NaN Afghanistan 2020-01-23 0.0 0.0\n",
121 | "2 3 NaN Afghanistan 2020-01-24 0.0 0.0\n",
122 | "3 4 NaN Afghanistan 2020-01-25 0.0 0.0\n",
123 | "4 5 NaN Afghanistan 2020-01-26 0.0 0.0"
124 | ]
125 | },
126 | "execution_count": 2,
127 | "metadata": {},
128 | "output_type": "execute_result"
129 | }
130 | ],
131 | "source": [
132 | "train.head()"
133 | ]
134 | },
135 | {
136 | "cell_type": "code",
137 | "execution_count": 3,
138 | "metadata": {},
139 | "outputs": [
140 | {
141 | "data": {
142 | "text/html": [
143 | "\n",
144 | "\n",
157 | "
\n",
158 | " \n",
159 | " \n",
160 | " | \n",
161 | " ForecastId | \n",
162 | " Province_State | \n",
163 | " Country_Region | \n",
164 | " Date | \n",
165 | "
\n",
166 | " \n",
167 | " \n",
168 | " \n",
169 | " | 0 | \n",
170 | " 1 | \n",
171 | " NaN | \n",
172 | " Afghanistan | \n",
173 | " 2020-03-19 | \n",
174 | "
\n",
175 | " \n",
176 | " | 1 | \n",
177 | " 2 | \n",
178 | " NaN | \n",
179 | " Afghanistan | \n",
180 | " 2020-03-20 | \n",
181 | "
\n",
182 | " \n",
183 | " | 2 | \n",
184 | " 3 | \n",
185 | " NaN | \n",
186 | " Afghanistan | \n",
187 | " 2020-03-21 | \n",
188 | "
\n",
189 | " \n",
190 | " | 3 | \n",
191 | " 4 | \n",
192 | " NaN | \n",
193 | " Afghanistan | \n",
194 | " 2020-03-22 | \n",
195 | "
\n",
196 | " \n",
197 | " | 4 | \n",
198 | " 5 | \n",
199 | " NaN | \n",
200 | " Afghanistan | \n",
201 | " 2020-03-23 | \n",
202 | "
\n",
203 | " \n",
204 | "
\n",
205 | "
"
206 | ],
207 | "text/plain": [
208 | " ForecastId Province_State Country_Region Date\n",
209 | "0 1 NaN Afghanistan 2020-03-19\n",
210 | "1 2 NaN Afghanistan 2020-03-20\n",
211 | "2 3 NaN Afghanistan 2020-03-21\n",
212 | "3 4 NaN Afghanistan 2020-03-22\n",
213 | "4 5 NaN Afghanistan 2020-03-23"
214 | ]
215 | },
216 | "execution_count": 3,
217 | "metadata": {},
218 | "output_type": "execute_result"
219 | }
220 | ],
221 | "source": [
222 | "test.head()"
223 | ]
224 | },
225 | {
226 | "cell_type": "markdown",
227 | "metadata": {},
228 | "source": [
229 | "## 2.评估指标\n",
230 | "\n",
231 | "- RMSLE:和RMSE相比多一个取对数操作\n",
232 | "\n",
233 | "## 3.EDA(Exploratory data analysis) / Preprocessing"
234 | ]
235 | },
236 | {
237 | "cell_type": "markdown",
238 | "metadata": {},
239 | "source": [
240 | "### filter\n",
241 | "按条件过滤"
242 | ]
243 | },
244 | {
245 | "cell_type": "code",
246 | "execution_count": null,
247 | "metadata": {},
248 | "outputs": [],
249 | "source": [
250 | "data_pred = data_pred.loc[data_pred['Day_num']>=day_start]\n",
251 | "real_data = train.loc[(train['Country_Region']==country_name) & (train['Date'].isin(dates_list))]"
252 | ]
253 | },
254 | {
255 | "cell_type": "markdown",
256 | "metadata": {},
257 | "source": [
258 | "### groupby/agg/transform\n",
259 | "分组统计"
260 | ]
261 | },
262 | {
263 | "cell_type": "code",
264 | "execution_count": null,
265 | "metadata": {},
266 | "outputs": [],
267 | "source": [
268 | "# 分组聚合统计1: 行数减少\n",
269 | "confirmed_total_date = train.groupby(['Date']).agg({'ConfirmedCases':['sum']})\n",
270 | "\n",
271 | "# 分组聚合统计2: 行数不变\n",
272 | "train['total_confirm'] = train.groupby(['Date'])['ConfirmedCases'].transform('sum')"
273 | ]
274 | },
275 | {
276 | "cell_type": "markdown",
277 | "metadata": {},
278 | "source": [
279 | "### join\n",
280 | "相当于excel里的vlookup操作"
281 | ]
282 | },
283 | {
284 | "cell_type": "code",
285 | "execution_count": null,
286 | "metadata": {},
287 | "outputs": [],
288 | "source": [
289 | "# 假设有一份数据有关于每个国家的一些信息\n",
290 | "train_extend = pd.merge(train, country_info, on='Country')\n",
291 | "df_val = pd.merge(pred_data_all,train[['Date','Country_Region','Province_State','ConfirmedCases','Fatalities']],on=['Date','Country_Region','Province_State'], how='left')"
292 | ]
293 | },
294 | {
295 | "cell_type": "markdown",
296 | "metadata": {},
297 | "source": [
298 | "### 可视化"
299 | ]
300 | },
301 | {
302 | "cell_type": "code",
303 | "execution_count": null,
304 | "metadata": {},
305 | "outputs": [],
306 | "source": [
307 | "import matplotlib.pyplot as plt\n",
308 | "import seaborn as sns\n",
309 | "import plotly"
310 | ]
311 | },
312 | {
313 | "cell_type": "markdown",
314 | "metadata": {},
315 | "source": [
316 | "### fit/predict/transform\n",
317 | "使用场景:数据转换/编码/模型训练&预测\n",
318 | "\n",
319 | "关键点:训练/预测两阶段可能用不一样的数据"
320 | ]
321 | },
322 | {
323 | "cell_type": "code",
324 | "execution_count": null,
325 | "metadata": {},
326 | "outputs": [],
327 | "source": [
328 | "from sklearn import preprocessing\n",
329 | "# 写法一:一步到位\n",
330 | "le = preprocessing.LabelEncoder()\n",
331 | "train['State_encode'] = le.fit_transform(train['State'])\n",
332 | "\n",
333 | "# 写法二:分两步\n",
334 | "le = preprocessing.LabelEncoder()\n",
335 | "le.fit(train['State'])\n",
336 | "train['State_encode'] = le.transform(train['State'])"
337 | ]
338 | },
339 | {
340 | "cell_type": "code",
341 | "execution_count": null,
342 | "metadata": {},
343 | "outputs": [],
344 | "source": [
345 | "# 模型一般分两步\n",
346 | "model1 = XGBRegressor(n_estimators=1000)\n",
347 | "model1.fit(X_Train_CS, y1_Train_CS)\n",
348 | "y1_pred = model1.predict(X_Test_CS)"
349 | ]
350 | },
351 | {
352 | "cell_type": "markdown",
353 | "metadata": {},
354 | "source": [
355 | "## 4.模型对比及思考"
356 | ]
357 | },
358 | {
359 | "cell_type": "markdown",
360 | "metadata": {},
361 | "source": [
362 | "[1. SIR模型+线性回归 1.12958](https://www.kaggle.com/saga21/covid-global-forecast-sir-model-ml-regressions#4.-Predictions-with-machine-learning-)\n",
363 | "假设:取对数后近似线性模型。简单模型,效果一般。\n",
364 | "\n",
365 | "[2. RNN 0.92425](https://www.kaggle.com/frlemarchand/covid-19-forecasting-with-an-rnn)\n",
366 | "小数据集,深度学习发不上力\n",
367 | "\n",
368 | "[3. 指数模型/SARIMA 0.09306](https://www.kaggle.com/binhlc/sars-cov-2-exponential-model-week-2) \n",
369 | "时间序列模型有明显提升\n",
370 | "\n",
371 | "[4. XGB 0.00006](https://www.kaggle.com/ashora/4ver-arima-2ver-xgboost-newbie)\n",
372 | "xgb不愧是kaggle神器?❌[小心Data-leakage](https://www.kaggle.com/c/covid19-global-forecasting-week-1/discussion/138025)\n",
373 | "\n",
374 | "5.(根据现有数据)有什么模型做不到的?预测峰值。为什么?因为和政策强相关"
375 | ]
376 | },
377 | {
378 | "cell_type": "markdown",
379 | "metadata": {},
380 | "source": [
381 | "## 总结\n",
382 | "- 监督学习整体流程\n",
383 | "- 常用数据处理思想\n",
384 | "- fit/predict/transform思想\n",
385 | "- 模型对比:there is no silver bullet\n",
386 | "- data leakage"
387 | ]
388 | },
389 | {
390 | "cell_type": "markdown",
391 | "metadata": {},
392 | "source": [
393 | "## TODO\n",
394 | "- 从kernel中积累各种用法,分类总结\n",
395 | "- 了解模型理论,通过不同的数据实践,思考为什么效果好/效果不好"
396 | ]
397 | },
398 | {
399 | "cell_type": "code",
400 | "execution_count": null,
401 | "metadata": {},
402 | "outputs": [],
403 | "source": []
404 | }
405 | ],
406 | "metadata": {
407 | "kernelspec": {
408 | "display_name": "Python 3",
409 | "language": "python",
410 | "name": "python3"
411 | },
412 | "language_info": {
413 | "codemirror_mode": {
414 | "name": "ipython",
415 | "version": 3
416 | },
417 | "file_extension": ".py",
418 | "mimetype": "text/x-python",
419 | "name": "python",
420 | "nbconvert_exporter": "python",
421 | "pygments_lexer": "ipython3",
422 | "version": "3.6.4"
423 | }
424 | },
425 | "nbformat": 4,
426 | "nbformat_minor": 2
427 | }
428 |
--------------------------------------------------------------------------------
/第1期-了解这3组概念,就可以开始机器学习实战了.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "attachments": {
5 | "image.png": {
6 | "image/png": "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"
7 | }
8 | },
9 | "cell_type": "markdown",
10 | "metadata": {},
11 | "source": [
12 | "## 0.哪3组概念?\n",
13 | "- 1.评价指标\n",
14 | "- 2.欠拟合/过拟合\n",
15 | "- 3.gridsearch/cross validation\n",
16 | "\n",
17 | "## 1.机器学习项目的目标是什么\n",
18 | "\n",
19 | "- 针对具体问题定义一个评估指标(准确率/召回率/AUC/RMSE/NDCG。。。。)\n",
20 | "- 使用现有数据训练一个好的模型\n",
21 | "\n",
22 | "## 2.一个好的机器学习模型有哪些标准\n",
23 | "\n",
24 | "- 在现有数据上评估指标高\n",
25 | "- 在未来可能见到的数据上评估指标高\n",
26 | "\n",
27 | "## 3.什么是过拟合\n",
28 | "\n",
29 | "\n",
30 | "从左到右分别是:欠拟合,好拟合,过拟合\n",
31 | "\n",
32 | "过拟合的本质:模型把数据中的噪声当作细节进行了学习\n",
33 | "\n",
34 | "## 4.为什么会发生过拟合\n",
35 | "\n",
36 | "- 数据噪声\n",
37 | "- 模型复杂度高\n",
38 | "\n",
39 | "## 5.如何抑制过拟合\n",
40 | "\n",
41 | "- 过拟合无法彻底消灭\n",
42 | "- 分train/test数据集\n",
43 | "- 选择合适的模型参数\n",
44 | "- 增加正则化(暂不深究正则化的理论,只要了解有参数可调即可)\n",
45 | "\n",
46 | "## 6.什么是gridsearch和cross validation\n",
47 | "\n",
48 | "- gridsearch:对多个可调参数的多个备选值的组合每个都试一遍\n",
49 | "- cross validation:把数据集分成N份,做N次实验。每次用其中一份做test,其他做train\n",
50 | "\n",
51 | "### Ref\n",
52 | "sklearn相关文档:https://scikit-learn.org/stable/model_selection.html#model-selection"
53 | ]
54 | },
55 | {
56 | "cell_type": "markdown",
57 | "metadata": {},
58 | "source": [
59 | "## 7.实例体会过拟合"
60 | ]
61 | },
62 | {
63 | "cell_type": "code",
64 | "execution_count": 18,
65 | "metadata": {},
66 | "outputs": [],
67 | "source": [
68 | "import numpy as np\n",
69 | "import pandas as pd\n",
70 | "import matplotlib.pyplot as pl\n",
71 | "import sklearn.learning_curve as curves\n",
72 | "from sklearn.tree import DecisionTreeRegressor\n",
73 | "from sklearn.cross_validation import ShuffleSplit, train_test_split\n",
74 | "\n",
75 | "# 让结果在notebook中显示\n",
76 | "%matplotlib inline\n",
77 | "\n",
78 | "# 载入波士顿房屋的数据集\n",
79 | "data = pd.read_csv('housing.csv')\n",
80 | "prices = data['MEDV']\n",
81 | "features = data.drop('MEDV', axis = 1)"
82 | ]
83 | },
84 | {
85 | "cell_type": "code",
86 | "execution_count": 23,
87 | "metadata": {},
88 | "outputs": [],
89 | "source": [
90 | "def ModelComplexity(X, y):\n",
91 | " \"\"\" Calculates the performance of the model as model complexity increases.\n",
92 | " The learning and testing errors rates are then plotted. \"\"\"\n",
93 | "\n",
94 | " # Create 10 cross-validation sets for training and testing\n",
95 | " cv = ShuffleSplit(X.shape[0], n_iter = 10, test_size = 0.2, random_state = 0)\n",
96 | "\n",
97 | " # Vary the max_depth parameter from 1 to 10\n",
98 | " max_depth = np.arange(1,11)\n",
99 | "\n",
100 | " # Calculate the training and testing scores\n",
101 | " train_scores, test_scores = curves.validation_curve(DecisionTreeRegressor(), X, y, \\\n",
102 | " param_name = \"max_depth\", param_range = max_depth, cv = cv, scoring = 'r2')\n",
103 | "\n",
104 | " # Find the mean and standard deviation for smoothing\n",
105 | " train_mean = np.mean(train_scores, axis=1)\n",
106 | " train_std = np.std(train_scores, axis=1)\n",
107 | " test_mean = np.mean(test_scores, axis=1)\n",
108 | " test_std = np.std(test_scores, axis=1)\n",
109 | "\n",
110 | " # Plot the validation curve\n",
111 | " pl.figure(figsize=(7, 5))\n",
112 | " pl.title('Decision Tree Regressor Complexity Performance')\n",
113 | " pl.plot(max_depth, train_mean, 'o-', color = 'r', label = 'Training Score')\n",
114 | " pl.plot(max_depth, test_mean, 'o-', color = 'g', label = 'Validation Score')\n",
115 | " pl.fill_between(max_depth, train_mean - train_std, \\\n",
116 | " train_mean + train_std, alpha = 0.15, color = 'r')\n",
117 | " pl.fill_between(max_depth, test_mean - test_std, \\\n",
118 | " test_mean + test_std, alpha = 0.15, color = 'g')\n",
119 | "\n",
120 | " # Visual aesthetics\n",
121 | " pl.legend(loc = 'lower right') \n",
122 | " pl.xlabel('Maximum Depth')\n",
123 | " pl.ylabel('Score')\n",
124 | " pl.ylim([-0.05,1.05])"
125 | ]
126 | },
127 | {
128 | "cell_type": "code",
129 | "execution_count": 26,
130 | "metadata": {},
131 | "outputs": [
132 | {
133 | "data": {
134 | "image/png": "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\n",
135 | "text/plain": [
136 | ""
137 | ]
138 | },
139 | "metadata": {},
140 | "output_type": "display_data"
141 | }
142 | ],
143 | "source": [
144 | "ModelComplexity(features, prices)"
145 | ]
146 | },
147 | {
148 | "cell_type": "markdown",
149 | "metadata": {},
150 | "source": [
151 | "## 总结\n",
152 | "- 1.评价指标\n",
153 | "- 2.过拟合\n",
154 | "- 3.gridsearch/cross validation\n",
155 | "- 4.TODO: 安装anaconda,看代码 https://www.kaggle.com/search?q=boston+housing+in%3Anotebooks 积累pandas,numpy各种数据处理技巧,"
156 | ]
157 | },
158 | {
159 | "cell_type": "markdown",
160 | "metadata": {},
161 | "source": [
162 | "## 后续内容预告\n",
163 | "- 评估指标对比\n",
164 | "- 数据处理总结\n",
165 | "- 模型在不同领域的应用\n",
166 | "- kaggle实战"
167 | ]
168 | }
169 | ],
170 | "metadata": {
171 | "kernelspec": {
172 | "display_name": "Python 3",
173 | "language": "python",
174 | "name": "python3"
175 | },
176 | "language_info": {
177 | "codemirror_mode": {
178 | "name": "ipython",
179 | "version": 3
180 | },
181 | "file_extension": ".py",
182 | "mimetype": "text/x-python",
183 | "name": "python",
184 | "nbconvert_exporter": "python",
185 | "pygments_lexer": "ipython3",
186 | "version": "3.6.4"
187 | }
188 | },
189 | "nbformat": 4,
190 | "nbformat_minor": 2
191 | }
192 |
--------------------------------------------------------------------------------