python机器学习(常用科学计算库的使用)
机器学习
机器学习概述
-
人工智能主要分支
-
人工智能和机器学习,深度学习的关系
- 机器学习是人工智能的一个实现途径
- 深度学习是机器学习的一个方法发展而来
-
主要分支
- 计算机视觉
- 语音识别
- 文本挖掘/分类
- 机器翻译
- 机器人
-
分工智能发展必备三要素
- 数据
- 算法
- 计算力
逐层、分布、并行算法能力提升 GPU、FPGA、TPU能力大幅提升
-
GPU加速计算可以将应用程序计算密集部分的工作负载转移到 GPU,同时仍由 CPU 运行其余程序代码。从用户的角度来看,应用程序的运行速度明显加快.
-
CPU 由专为顺序串行处理而优化的几个核心组成,而 GPU 则拥有一个由数以千计的更小、更高效的核心(专为同时处理多重任务而设计)组成的大规模并行计算架构
-
-
机器学习工作流程
- 什么是机器学习
- 机器学习是从数据中自动分析获得模型,并利用模型对未知数据进行预测
- 机器学习工作流程总结
- 获取数据
- 数据基本处理
- 特征工程
- 机器学习(模型训练)
- 模型评估
- 什么是机器学习
-
机器学习算法分类
- 监督学习
- 输入数据是由输入特征值和目标值所组成。
- 函数的输出可以是一个连续的值(称为回归)
- 或是输出是有限个离散值(称作分类)
- 回归
- 比如预测房价,根据样本集拟合出一条连续曲线
- 分类
- 根据肿瘤特征判断良性还是恶性,得到的是结果是"良性"或者"恶性"是离散的
- 输入数据是由输入特征值和目标值所组成。
- 无监督学习
- 输入数据是由输入特征值组成。
- 输入数据没有被标记,也没有确定的结果。样本数据类别未知,需要根据样本间的相似性对样本集进行分类(聚类,clustering)试图使类内差距最小化,类间差距最大化。
- 输入数据是由输入特征值组成。
- 半监督学习
- 半监督学习:即训练集同时包含有标记样本数据和未标记样本数据。
- 强化学习
- 强化学习:实质是,make decisions 问题,即自动进行决策,并且可以做连续决策。
- 监督学习
-
模型评估
- 分类模型评估
- 准确率
- 预测正确的数占样本总数的比例。
- 精确率
- 正确预测为正占全部预测为正的比例
- 召回率
- 正确预测为正占全部正样本的比例
- F1-score
- 主要用于评估模型的稳健性
- AUC指标
- 主要用于评估样本不均衡的情况
- 准确率
- 分类模型评估
机器学习基础环境安装与使用
-
新建一个用于人工智能环境的虚拟环境
mkvirtualenv -p python3 py3_ai
-
依赖包
matplotlib==2.2.2 numpy==1.14.2 pandas==0.20.3 tables==3.4.2 jupyter==1.0.0
-
使用pip命令安装
pip install -r requirements.txt
-
Jupyter Notebook使用
-
Jupyter Notebook介绍
Jupiter 项目是一个非盈利的开源项目,源于2014年的ipython项目,因为它逐渐发展为支持跨所有编程语言交互式数据库科学和科学计算
- Jupyter Notebook,原名IPython Notbook,是IPython的加强网页版,一个开源Web应用程序
- 名字源自Julia、Python 和 R(数据科学的三种开源语言)
- 是一款程序员和科学工作者的编程/文档/笔记/展示软件
- .ipynb文件格式是用于计算型叙述的JSON文档格式的正式规范
-
-
-
界面启动、创建文件
- 环境创建好后,本机输入jupyter notebook命令,会自动弹出浏览器窗口打开Jupyter Notebook
#进入虚拟环境 workon py3_ai jupyter notebook
-
快捷键操作
-
两种模式通用快捷键
- Shift+Enter,执行本单元代码,并跳转到下一单元
- Ctrl+Enter,执行本单元代码,留在本单元
-
cell行号前的 * ,表示代码正在运行
-
命令模式
:按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进入
- 多光标操作:
Ctrl键点击鼠标
(Mac:CMD+点击鼠标) - 回退:
Ctrl+Z
(Mac:CMD+Z) - 重做:
Ctrl+Y
(Mac:CMD+Y) - 补全代码:变量、方法后跟
Tab键
- 为一行或多行代码添加/取消注释:
Ctrl+/
(Mac:CMD+/) - 屏蔽自动输出信息:可在最后一条语句之后加一个分号
- 多光标操作:
-