机器学习分类及其工作流程
文章目录
机器学习是人工智能的一个分支,主要关于构造和研究可以从数据中学习的系统
监督学习(Supervised)
-
训练数据包含标签y (标签在训练数据中是可见变量)
-
从标签的数据中学习到一个x → y的映射f,从而对新输入的x进行预测f(x)
不同类型
- 分类(Classification):输出y为离散值
- 回归(Regression):输出y为连续值
- 排序(Ranking)
通用工作流程
非监督学习(Unsupervised)
-
发现数据中的“有意义的模式”,亦被称为知识发现
-
训练数据不包含标签,标签在训练数据中为隐含变量
不同类型
-
聚类(Clustering)
-
降维(Dimension Reduction)
-
概率密度估计(Density estimation)
通用工作流程
增强学习(Reinforcement)
-
根据延迟的奖励,通过“做”来学习
-
任务:找到一条回报值最大的路径
-
设计一个回报函数(reward function)
-
如果learning agent(如机器人、回棋AI程序)在执行一个动作后
-
获得了较好的结果,那么我们给agent一些回报(比如回报函数结果为正)
-
若得到较差的结果,则回报函数为负
其他学习任务
工具软件
推荐直接安装Anaconda, 包括
- 很多有用的工具包(包括 Pandas 和Scikit-Learn)
- The Jupyter Notebook (IPython Notebook)
- conda package manager
- Spyder IDE
数据处理工具包
-
NumPy(Numeric Python)
Python的开源数值计算扩展,可用来存储和处理大型矩阵,具有以下特点
-
N维数组( ndarray )
-
实用的线性代数、傅里叶变换和随机数生成函数
NumPy和稀疏矩阵运算包SciPy配合使用更加方便
-
-
SciPy(Scientific Library for Python)
- SciPy 是建立在NumPy基础上、是科学和工程设计的 Python 工具包,提供统计、优化和数值微积分计算等功能
- 处理106 级别的数据通常没有大问题,但当数据量达到107级别时速度开始发慢, 内存受到限制 (具体情况取决于实际内存大小)
- 当处理超大模数据集,比如1010级别, 且数据中包含大量的 0时,可采用稀疏矩阵可显著的提高速度和效率
-
Pandas(Panel data structures)
- Python语言的“关系数据库”数据结构和数据分析工具,非常高效且易于使用
- 基于 NumPy补充了大量数据操作功能,能实现统计、分组、排序、透视表(SQL语句的大部分功能)
- 2 种重要数据类型:Series:一维序列,DataFrame:二维表(机器学习数据的常用数据结构)
数据可视化工具包
-
Matplotlib
Python语言的2D图形绘制工具
-
Seaborn
基于Matplotlib的Python可视化工具包,提供更高层次的用户接口,可以给出漂亮的数据统计图
机器学习工具包
- 分类(Classification)
- 回归(Regression)
- 聚类(Clustering)
- 数据降维( Dimensionality reduction )
- 模型选择(Model Selection)
- 数据预处理(Preprocessing