机器学习分类及其工作流程


机器学习是人工智能的一个分支,主要关于构造和研究可以从数据中学习的系统

监督学习(Supervised)

机器学习分类及其工作流程

  • 训练数据包含标签y (标签在训练数据中是可见变量)

  • 从标签的数据中学习到一个x → y的映射f,从而对新输入的x进行预测f(x)

不同类型

  • 分类(Classification):输出y为离散值
  • 回归(Regression):输出y为连续值
  • 排序(Ranking)

通用工作流程

estimator.fit(X_train,y_train)
estimator.predict(X_test)
estimator.score(X_test,y_train)
TrainingData
Model
TrainingLabels
Prediction
TestDtata
Evaluation
TestLabels

非监督学习(Unsupervised)

机器学习分类及其工作流程

  • 发现数据中的“有意义的模式”,亦被称为知识发现

  • 训练数据不包含标签,标签在训练数据中为隐含变量

不同类型

  • 聚类(Clustering)

    机器学习分类及其工作流程

  • 降维(Dimension Reduction)

    机器学习分类及其工作流程

  • 概率密度估计(Density estimation)

通用工作流程

transformer.fit(X_train)
transformer.transform(X_train)
transformer.transform(X_test)
TrainingData
Model
New View
TestDtata

增强学习(Reinforcement)

  • 根据延迟的奖励,通过“做”来学习

  • 任务:找到一条回报值最大的路径

  1. 设计一个回报函数(reward function)

  2. 如果learning agent(如机器人、回棋AI程序)在执行一个动作后

  3. 获得了较好的结果,那么我们给agent一些回报(比如回报函数结果为正)

  4. 若得到较差的结果,则回报函数为负

其他学习任务

机器学习分类及其工作流程

工具软件

推荐直接安装Anaconda, 包括

  • 很多有用的工具包(包括 Pandas 和Scikit-Learn)
  • The Jupyter Notebook (IPython Notebook)
  • conda package manager
  • Spyder IDE

机器学习分类及其工作流程

数据处理工具包

  1. NumPy(Numeric Python)

    Python的开源数值计算扩展,可用来存储和处理大型矩阵,具有以下特点

    • N维数组( ndarray )

    • 实用的线性代数、傅里叶变换和随机数生成函数

    NumPy和稀疏矩阵运算包SciPy配合使用更加方便

  2. SciPy(Scientific Library for Python)

    • SciPy 是建立在NumPy基础上、是科学和工程设计的 Python 工具包,提供统计、优化和数值微积分计算等功能
    • 处理106 级别的数据通常没有大问题,但当数据量达到107级别时速度开始发慢, 内存受到限制 (具体情况取决于实际内存大小)
    • 当处理超大模数据集,比如1010级别, 且数据中包含大量的 0时,可采用稀疏矩阵可显著的提高速度和效率
  3. Pandas(Panel data structures)

    • Python语言的“关系数据库”数据结构和数据分析工具,非常高效且易于使用
    • 基于 NumPy补充了大量数据操作功能,能实现统计、分组、排序、透视表(SQL语句的大部分功能)
    • 2 种重要数据类型:Series:一维序列,DataFrame:二维表(机器学习数据的常用数据结构)

数据可视化工具包

  1. Matplotlib

    Python语言的2D图形绘制工具

  2. Seaborn

    基于Matplotlib的Python可视化工具包,提供更高层次的用户接口,可以给出漂亮的数据统计图

机器学习工具包

机器学习分类及其工作流程

  • 分类(Classification)
  • 回归(Regression)
  • 聚类(Clustering)
  • 数据降维( Dimensionality reduction )
  • 模型选择(Model Selection)
  • 数据预处理(Preprocessing