
本系列文章md笔记(已分享)主要讨论人工智能相关知识。主要内容包括,了解机器学习定义以及应用场景,掌握机器学习基础环境的安装和使用,掌握利用常用的科学计算库对数据进行展示、分析,学会使用jupyter notebook平台完成代码编写运行,应用Matplotlib的基本功能实现图形显示,应用Matplotlib实现多图显示,应用Matplotlib实现不同画图种类,学习Numpy运算速度上的优势,知道Numpy的数组内存块风格,了解Numpy与Pandas的不同,学习Pandas的使用,应用crosstab和pivot_table实现交叉表与透视表,应用Pandas实现数据的读取和存储,并且了解完整机器学习项目的流程。
全套笔记和代码自取移步gitee仓库: gitee仓库获取完整文档和代码
感兴趣的小伙伴可以自取哦,欢迎大家点赞转发~
共 7 章,33 子模块


机器学习概述
学习目标
- 了解人工智能发展历程
- 了解机器学习定义以及应用场景
- 知道机器学习算法监督学习与无监督学习的区别
- 知道监督学习中的分类、回归特点
- 知道机器学习的开发流程
1.7 Azure机器学习模型搭建实验
学习目标
-
目标
-
了解Azure机器学习平台,知道机器学习流程
Azure平台简介

Azure Machine Learning(简称"AML")是微软在其公有云Azure上推出的基于Web使用的一项机器学习服务,机器学习属人工智能的一个分支,它技术借助算法让电脑对大量流动数据集进行识别。这种方式能够通过历史数据来预测未来事件和行为,其实现方式明显优于传统的商业智能形式。
微软的目标是简化使用机器学习的过程,以便于开发人员、业务分析师和数据科学家进行广泛、便捷地应用。
这款服务的目的在于"将机器学习动力与云计算的简单性相结合"。
AML目前在微软的Global Azure云服务平台提供服务,用户可以通过站点:https://studio.azureml.net/ 申请免费试用。

Azure机器学习实验
- 实验目的:了解机器学习从数据到建模并最终评估预测的整个流程。
1.8 深度学习简介
学习目标
-
目标
-
了解什么是深度学习
1 深度学习 ------ 神经网络简介
深度学习(Deep Learning)(也称为深度结构学习【Deep Structured Learning】、层次学习【Hierarchical Learning】或者是深度机器学习【Deep Machine Learning】)是一类算法集合,是机器学习的一个分支。

深度学习方法近年来,在会话识别、图像识别和对象侦测等领域表现出了惊人的准确性。
但是,"深度学习"这个词语很古老,它在1986年由Dechter在机器学习领域提出,然后在2000年有Aizenberg等人引入到人工神经网络中。而现在,由于Alex Krizhevsky在2012年使用卷积网络结构赢得了ImageNet比赛之后受到大家的瞩目。
卷积网络之父:Yann LeCun


2 深度学习各层负责内容
神经网络各层负责内容:
1层:负责识别颜色及简单纹理

2层:一些神经元可以识别更加细化的纹理,布纹,刻纹,叶纹等

3层:一些神经元负责感受黑夜里的黄色烛光,高光,萤火,鸡蛋黄色等。

4层:一些神经元识别萌狗的脸,宠物形貌,圆柱体事物,七星瓢虫等的存在。

5层:一些神经元负责识别花,黑眼圈动物,鸟,键盘,原型屋顶等。

4 小结
- 深度学习的发展源头--神经网络【了解】
- 多层神经网络,在最初几层是识别简单内容,后面几层是识别一些复杂内容。【了解】
机器学习基础环境安装与使用
学习目标
-
完成机器学习基础阶段的环境安装
-
学会使用jupyter notebook平台完成代码编写运行
2.1 库的安装
学习目标
-
目标
-
搭建好机器学习基础阶段的环境
整个机器学习基础阶段会用到Matplotlib、Numpy、Pandas等库,为了统一版本号在环境中使用,将所有的库及其版本放到了文件requirements.txt当中,然后统一安装
新建一个用于人工智能环境的虚拟环境
python mkvirtualenv ai
python matplotlib==2.2.2 numpy==1.14.2 pandas==0.20.3 tables==3.4.2 jupyter==1.0.0
注意:
- 每个包安装的过程中,尽量指定稳定版本进行安装
使用pip命令安装
python pip3 install -r requirements.txt
小结
-
机器学习(科学计算库)阶段环境的搭建和基本库的安装
-
注意:最好安装指定的稳定版本
2.2 Jupyter Notebook使用
学习目标
-
目标
-
学会使用Jupyter Notebook
1 Jupyter Notebook介绍
Jupyter项目是一个非盈利的开源项目,源于2014年的ipython项目,因为它逐渐发展为支持跨所有编程语言的交互式数据科学和科学计算
- Jupyter Notebook,原名IPython Notbook,是IPython的加强网页版,一个开源Web应用程序
- 名字源自Julia、Python 和 R(数据科学的三种开源语言)
- 是一款程序员和科学工作者的编程/文档/笔记/展示软件
- .ipynb 文件格式是用于计算型叙述的JSON文档格式的正式规范

2 为什么使用Jupyter Notebook?
-
传统软件开发:工程/目标明确
-
需求分析,设计架构,开发模块,测试
-
数据挖掘:艺术/目标不明确
-
目的是具体的洞察目标,而不是机械的完成任务
-
通过执行代码来理解问题
-
迭代式地改进代码来改进解决方法
实时运行的代码、叙事性的文本和可视化被整合在一起,方便使用代码和数据来讲述故事
对比Jupyter Notebook和Pycharm
- 画图

- 数据展示

- 总结:Jupyter Notebook 相比 Pycharm 在画图和数据展示方面更有优势。
3 Jupyter Notebook的使用-helloworld
3.1 界面启动、创建文件
3.1.1 界面启动
环境搭建好后,本机输入jupyter notebook命令,会自动弹出浏览器窗口打开Jupyter Notebook
```python
进入虚拟环境
workon ai
输入命令
jupyter notebook ```
本地notebook的默认URL为:http://localhost:8888
想让notebook打开指定目录,只要进入此目录后执行命令即可

3.1.2 新建notebook文档
- notebook的文档格式是
.ipynb

3.1.3 内容界面操作-helloworld
**标题栏:**点击标题(如Untitled)修改文档名
编辑栏:

3.2 cell操作
-
什么是cell?
-
cell:一对In Out会话被视作一个代码单元,称为cell
-
cell行号前的 * ,表示代码正在运行
Jupyter支持两种模式:
-
编辑模式(Enter)
-
命令模式下
回车Enter
或鼠标双击
cell进入编辑模式 -
可以操作cell内文本或代码,剪切/复制/粘贴移动等操作
-
命令模式(Esc)
-
按
Esc
退出编辑,进入命令模式 -
可以操作cell单元本身进行剪切/复制/粘贴/移动等操作
3.2.1 鼠标操作

3.2.2 快捷键操作
-
两种模式通用快捷键
-
Shift+Enter
,执行本单元代码,并跳转到下一单元 -
Ctrl+Enter
,执行本单元代码,留在本单元 -
命令模式:按ESC进入
-
Y
,cell切换到Code模式 -
M
,cell切换到Markdown模式 -
A
,在当前cell的上面添加cell -
B
,在当前cell的下面添加cell -
其他(了解)
-
双击D
:删除当前cell -
Z
,回退 -
L
,为当前cell加上行号 <!-- -
Ctrl+Shift+P
,对话框输入命令直接运行 -
快速跳转到首个cell,
Crtl+Home
-
快速跳转到最后一个cell,
Crtl+End
--> -
编辑模式:按Enter进入
-
补全代码:变量、方法后跟
Tab键
-
为一行或多行代码添加/取消注释:
Ctrl+/
(Mac:CMD+/) -
其他(了解):
-
多光标操作:
Ctrl键点击鼠标
(Mac:CMD+点击鼠标) -
回退:
Ctrl+Z
(Mac:CMD+Z) -
重做:
Ctrl+Y
(Mac:CMD+Y)
3.3 markdown演示
掌握标题和缩进即可

一级标题
二级标题
三级标题
四级标题
五级标题
-
缩进
-
二级缩进
- 三级缩进
4 Jupyter Notebook中自动补全代码等相关功能拓展【了解】
效果展示:

4.1 安装jupyter_contrib_nbextensions库
安装该库的命令如下:
shell python -m pip install jupyter_contrib_nbextensions
然后执行:
shell jupyter contrib nbextension install --user --skip-running-check
在原来的基础上勾选: "Table of Contents" 以及 "Hinterland"
部分功能:

5 小结
-
是什么
-
是一个ipython的web加强版
-
为什么要使用jupyter
-
用于数据探索过程
-
怎么用
-
1.通过jupyter notebook 就可以使用
-
2.保存文件是.ipynb
-
3.每个内容,都对应的是一个cell
-
快捷键
-
Shift+Enter,执行本单元代码,并跳转到下一单元
-
Ctrl+Enter,执行本单元代码,留在本单元
Matplotlib
学习目标
- 应用Matplotlib的基本功能实现图形显示
- 应用Matplotlib实现多图显示
- 应用Matplotlib实现不同画图种类
3.1 Matplotlib之HelloWorld
学习目标
-
目标
-
了解什么是matplotlib
-
为什么要学习matplotlib
-
matplotlib简单图形的绘制
1 什么是Matplotlib

-
是专门用于开发2D图表(包括3D图表)
-
以渐进、交互式方式实现数据可视化
2 为什么要学习Matplotlib
可视化是在整个数据挖掘的关键辅助工具,可以清晰的理解数据,从而调整我们的分析方法。
- 能将数据进行可视化,更直观的呈现
- 使数据更加客观、更具说服力
例如下面两个图为数字展示和图形展示:

3 实现一个简单的Matplotlib画图 --- 以折线图为例
3.1 matplotlib.pyplot模块
matplotlib.pytplot包含了一系列类似于matlab的画图函数。
python import matplotlib.pyplot as plt
3.2 图形绘制流程:
-
1.创建画布 -- plt.figure()
-
python plt.figure(figsize=(), dpi=) figsize:指定图的长宽 dpi:图像的清晰度 返回fig对象
-
2.绘制图像 -- plt.plot(x, y)
-
python 以折线图为例
-
3.显示图像 -- plt.show()
3.3 折线图绘制与显示
举例:展现上海一周的天气,比如从星期一到星期日的天气温度如下
```python import matplotlib.pyplot as plt
1.创建画布
plt.figure(figsize=(10, 10), dpi=100)
2.绘制折线图
plt.plot([1, 2, 3, 4, 5, 6 ,7], [17,17,18,15,11,11,13])
3.显示图像
plt.show() ```

4 认识Matplotlib图像结构(了解)

5 小结
-
什么是matplotlib【了解】
-
是专门用于开发2D(3D)图表的包
-
绘制图像流程【掌握】
-
1.创建画布 -- plt.figure(figsize=(20,8))
-
2.绘制图像 -- plt.plot(x, y)
-
3.显示图像 -- plt.show()