文章目录


机器学习算法

1 机器学习分类依据

1.1 按照任务是否需要和环境进行交互获取经验

1.1.1 监督学习
  • 1 按照训练数据是否存在标签

    • 监督学习

      监督学习是从 标记的训练数据 来推断一个功能的机器学习任务。在监督学习中,每个实例都是由一个输入对象(通常为矢量)和一个期望的输出值(也称为监督信号)组成。监督学习算法是分析该训练数据,并产生一个推断的功能,其可以用于映射出新的实例。一个最佳的方案将允许该算法来正确地决定那些看不见的实例的类标签。

    • 无监督学习

      所有数据 只有特征向量没有标签 ,但是可以发现这些数据呈现出聚群的结构,本质是一个相似的类型的会聚集在一起。把这些没有标签的数据分成一个一个组合,就是聚类(Clustering)

    • 半监督学习

      半监督学习在训练阶段结合了大量 未标记的数据少量标签数据 。与使用所有标签数据的模型相比,使用训练集的训练模型在训练时可以更为准确,而且训练成本更低。

  • 2 按照标签是连续还是离散的

    • 分类问题

    • 回归问题

      探索自变量与因变量之间的关系的问题,回归算法试图采用对误差的衡量来探索变量之间的关系。

1.1.2 强化学习

智能系统 从环境到行为映射 的学习,以使 奖励信号(强化信号)函数值最大 。如果 Agent 的某个行为策略导致环境正的奖赏 (强化信号),那么 Agent 以后产生这个行为策略的趋势便会加强

在这里插入图片描述
  • 常见算法
    • Q-Learning
    • 时间差学习(Temporal difference learning)
  • 应用场景
    • 动态系统
    • 机器人控制

1.2 按照算法功能和形式的类似性

1.2.1 回归算法

回归算法是试图采用对误差的衡量来探索变量之间的关系的一类算法。回归算法是统计机器学习的利器。在机器学习领域,人们说起回归,有时候是指一类问题,有时候是指一类算法,这一点常常会使初学者有所困惑。

常见的算法:

  • 最小二乘法(Ordinary Least Square)
  • 逻辑回归(Logistic Regression)
  • 逐步式回归(Stepwise Regression)
  • 多元自适应回归样条(Multivariate Adaptive Regression Splines)
  • 本地散点平滑估计(Locally Estimated Scatterplot Smoothing)
1.2.2 基于实例的算法

基于实例的算法常常用来对决策问题建立模型,这样的模型常常先选取一批样本数据,然后根据某些近似性把新数据与样本数据进行比较。通过这种方式来寻找最佳的匹配。因此,基于实例的算法常常也被称为 “赢家通吃” 学习或者 “基于记忆的学习”。

常见的算法:

  • k-Nearest Neighbor(KNN)
  • 学习矢量量化(Learning Vector Quantization, LVQ)
  • 以及自组织映射算法(Self-Organizing Map , SOM)
1.2.3 正则化方法

正则化方法是其他算法(通常是回归算法)的延伸,根据算法的复杂度对算法进行调整。正则化方法通常对简单模型予以奖励而对复杂算法予以惩罚。

常见的算法:

  • 岭回归(Ridge Regression)

  • LASSO 回归(Least Absolute Shrinkage and Selection Operator)

  • 弹性网络(Elastic Net)

1.2.4 决策树学习

决策树算法根据数据的属性采用树状结构建立决策模型, 决策树模型常常用来解决分类和回归问题。

常见的算法:

  • CART 树(Classification And Regression Tree)

  • ID3 (Iterative Dichotomiser 3)

  • C4.5

  • Chi-squared Automatic Interaction Detection(CHAID)

  • Decision Stump

  • 随机森林(Random Forest)

  • 多元自适应回归样条(MARS)

  • 梯度推进机(Gradient Boosting Machine, GBM)

1.2.5 贝叶斯方法

贝叶斯方法算法是基于贝叶斯定理的一类算法,主要用来解决分类和回归问题。

常见的算法:

  • 朴素贝叶斯算法
  • 平均单依赖估计(Averaged One-Dependence Estimators, AODE)
  • Bayesian Belief Network(BBN)
1.2.6 基于核的算法

基于核的算法中最著名的莫过于支持向量机(SVM)了。 基于核的算法把输入数据映射到一个高阶的向量空间, 在这些高阶向量空间里, 有些分类或者回归问题能够更容易的解决。

常见的算法:

  • 支持向量机(Support Vector Machine, SVM)

  • 径向基函数(Radial Basis Function ,RBF)

  • 线性判别分析(Linear Discriminate Analysis ,LDA)

1.2.7 聚类算法

聚类,就像回归一样,有时候人们描述的是一类问题,有时候描述的是一类算法。聚类算法通常按照中心点或者分层的方式对输入数据进行归并。所以的聚类算法都试图找到数据的内在结构,以便按照最大的共同点将数据进行归类。

常见的算法:

  • k-Means 算法

  • 期望最大化算法(Expectation Maximization, EM)

1.2.8 关联规则学习

关联规则学习通过寻找最能够解释数据变量之间关系的规则,来找出大量多元数据集中有用的关联规则。

常见的算法:

  • Apriori 算法

  • Eclat 算法

1.2.9 人工神经网络

人工神经网络算法模拟生物神经网络,是一类模式匹配算法。通常用于解决分类和回归问题。人工神经网络是机器学习的一个庞大的分支,有几百种不同的算法。

常见的算法:

  • 感知器神经网络(Perceptron Neural Network)
  • 反向传递(Back Propagation)
  • Hopfield 网络
  • 自组织映射(Self-Organizing Map, SOM)
  • 学习矢量量化(Learning Vector Quantization, LVQ)
1.2.10 深度学习

深度学习算法是对人工神经网络的发展。 在近期赢得了很多关注, 特别是百度也开始发力深度学习后, 更是在国内引起了很多关注。 在计算能力变得日益廉价的今天,深度学习试图建立大得多也复杂得多的神经网络。很多深度学习的算法是半监督式学习算法,用来处理存在少量未标识数据的大数据集。

常见的算法:

  • 受限波尔兹曼机(Restricted Boltzmann Machine, RBN)
  • Deep Belief Networks(DBN)
  • 卷积网络(Convolutional Network)
  • 堆栈式自动编码器(Stacked Auto-encoders)
1.2.11 降低维度算法

像聚类算法一样,降低维度算法试图分析数据的内在结构,不过降低维度算法是以非监督学习的方式试图利用较少的信息来归纳或者解释数据。这类算法可以用于高维数据的可视化或者用来简化数据以便监督式学习使用。

常见的算法:

  • 主成份分析(Principle Component Analysis, PCA)
  • 偏最小二乘回归(Partial Least Square Regression,PLS)
  • Sammon 映射
  • 多维尺度(Multi-Dimensional Scaling, MDS)
  • 投影追踪(Projection Pursuit)
1.2.12 集成算法

集成算法用一些相对较弱的学习模型独立地就同样的样本进行训练,然后把结果整合起来进行整体预测。集成算法的主要难点在于究竟集成哪些独立的较弱的学习模型以及如何把学习结果整合起来。这是一类非常强大的算法,同时也非常流行。

常见的算法:

  • Boosting

  • Bootstrapped Aggregation(Bagging)

  • AdaBoost,堆叠泛化(Stacked Generalization, Blending)

  • 梯度推进机(Gradient Boosting Machine, GBM)

  • 随机森林(Random Forest)

2 监督学习

2.1 有监督学习

2.1.1 K - 近邻算法

最近邻 (k-Nearest Neighbors, KNN) 算法是一种分类算法, 1968 年由 Cover 和 Hart 提出, 应用场景有字符识别、 文本分类、 图像识别等领域。
该算法的思想是: 一个样本与数据集中的 k 个样本最相似, 如果这 k 个样本中的大多数属于某一个类别, 则该样本也属于这个类别。

KNN 算法流程:

  • 1)计算已知类别数据集中的点与当前点之间的距离
  • 2)按距离递增次序排序
  • 3)选取与当前点距离最小的 k 个点
  • 4)统计前 k 个点所在的类别出现的频率
  • 5)返回前 k 个点出现频率最高的类别作为当前点的预测分类
2.1.2 决策树和随机森林算法

决策树(Decision Trees) 是一种树形结构,为人们提供决策依据,决策树可以用来回答 yes 和 no 问题,它通过树形结构将各种情况组合都表示出来,每个分支表示一次选择(选择 yes 还是 no),直到所有选择都进行完毕,最终给出正确答案。

在这里插入图片描述

随机森林(Random Forests)

  • 专为决策树分类器设计的集成算法,是装袋法(Bagging)的一种拓展。

GBDT (梯度提升决策树)

  • 在不改变原来模型结构的基础上提升模型的拟合能力

  • 利用梯度下降,同损失函数的 负梯度值 作为 残差值 来拟合回归决策树。

  • 较为出色的是 XGBoost 树提升系统

2.1.3 朴素贝叶斯
在这里插入图片描述

P (A|B) 是后验概率, P (B|A) 是似然,P (A) 为先验概率,P (B) 为我们要预测的值。

具体应用有:垃圾邮件检测、文章分类、情感分类、人脸识别等。

2.1.4 线性回归

线性回归 (Linear Regression) 的基本思想:找到一条线使得平面内的所有点到这条线的欧式距离和最小。这条线就是我们要求取得线。线性指的是用一条线对数据进行拟合,距离代表的是数据误差,最小二乘法可以看做是误差最小化。

在这里插入图片描述
2.1.5 逻辑回归

逻辑回归 (Logistic Regression) 模型是一个二分类模型,它选取不同的特征与权重来对样本进行概率分类,用一个 log 函数计算样本属于某一类的概率。即一个样本会有一定的概率属于一个类,会有一定的概率属于另一类,概率大的类即为样本所属类。

在这里插入图片描述

具体应用有:信用评级、营销活动成功概率、产品销售预测、某天是否将会地震发生。

2.1.6 支持向量机

支持向量机 (Support Vector Machines) 是一个二分类算法,它可以在 N 维空间找到一个 (N-1) 维的超平面,这个超平面可以将这些点分为两类。也就是说,平面内如果存在线性可分的两类点,SVM 可以找到一条最优的直线将这些点分开。

在这里插入图片描述

具体应用有:广告展示、性别检测、大规模图像识别等。

2.1.7 集成学习

集成学习就是将很多分类器集成在一起,每个分类器有不同的权重,将这些分类器的分类结果合并在一起,作为最终的分类结果。最初集成方法为贝叶斯决策,现在多采用 error-correcting output coding, bagging, and boosting 等方法进行集成。

在这里插入图片描述

那么为什集成分类器要比单个分类器效果好呢?

1. 偏差均匀化 :如果你将民主党与共和党的投票数算一下均值,肯定会得到你原先没有发现的结果,集成学习与这个也类似,它可以学到其它任何一种方式都学不到的东西。

2. 减少方差 :总体的结果要比单一模型的结果好,因为其从多个角度考虑问题。类似于股票市场,综合考虑多只股票肯定要比只考虑一只股票好,这就是为什么多数据比少数据效果好原因,因为其考虑的因素更多。

3. 不容易过拟合 。如果的一个模型不过拟合,那么综合考虑多种因素的多模型就更不容易过拟合了。

2.1.8 神经网络

神经网络 (也称之为人工神经网络,ANN)(Neural networks) 算法是 80 年代机器学习界非常流行的算法,不过在 90 年代中途衰落。现在,携着 “深度学习” 之势,神经网络重装归来,重新成为最强大的机器学习算法之一。

一个简单的神经网络的逻辑架构分成输入层,隐藏层,和输出层。输入层负责接收信号,隐藏层负责对数据的分解与处理,最后的结果被整合到输出层。每层中的一个圆代表一个处理单元,可以认为是模拟了一个神经元,若干个处理单元组成了一个层,若干个层再组成了一个网络,也就是” 神经网络”。

2.2 无监督学习

常见的无监督学习算法分为三类:

  • 聚类(Clustering)

    • k-Means
    • Hierarchical Cluster Analysis (HCA)
    • Expectation Maximization
  • 可视化与降维(Visualization and dimensionality reduction)

    • Principal Component Analysis (PCA)
    • Kernel PCA
    • Locally-Linear Embedding (LLE)
    • t-distributed Stochastic Neighbor Embedding (t-SNE)
  • 关联规则学习(Association rule learning)

    • Apriori
    • Eclat
2.2.1 聚类算法

聚类算法就是将一堆数据进行处理,根据它们的相似性对数据进行聚类。

在这里插入图片描述

聚类算法有很多种,具体如下:中心聚类、关联聚类、密度聚类、概率聚类、降维、神经网络 / 深度学习。

2.2.2 主成分分析(PCA)

主成分分析是利用正交变换将一些列可能相关数据转换为线性无关数据,从而找到主成分。

在这里插入图片描述

PCA 主要用于简单学习与可视化中数据压缩、简化。但是 PCA 有一定的局限性,它需要你拥有特定领域的相关知识。对噪音比较多的数据并不适用。

2.2.3 SVD 矩阵分解

SVD 矩阵是一个复杂的实复负数矩阵,给定一个 m 行、n 列的矩阵 M, 那么 M 矩阵可以分解为 M = UΣV。U 和 V 是酉矩阵,Σ 为对角阵。

在这里插入图片描述

PCA 实际上就是一个简化版本的 SVD 分解。在计算机视觉领域,第一个脸部识别算法就是基于 PCA 与 SVD 的,用特征对脸部进行特征表示,然后降维、最后进行面部匹配。尽管现在面部识别方法复杂,但是基本原理还是类似的。

2.2.4 独立成分分析 (ICA)

ICA 是一门统计技术,用于发现存在于随机变量下的隐性因素。ICA 为给观测数据定义了一个生成模型。在这个模型中,其认为数据变量是由隐性变量,经一个混合系统线性混合而成,这个混合系统未知。并且假设潜在因素属于非高斯分布、并且相互独立,称之为可观测数据的独立成分。

在这里插入图片描述
2.2.5 EM 算法

EM 算法也称期望最大化(Expectation-Maximum, 简称 EM)算法。

它是一个基础算法,是很多机器学习领域算法的基础,比如隐式马尔科夫算法(HMM)等等。

EM 算法是一种迭代优化策略,由于它的计算方法中每一次迭代都分两步,

  • 一个为期望步(E 步)
  • 一个为极大步(M 步)

所以算法被称为 EM 算法(Expectation-Maximization Algorithm)。

EM 算法受到缺失思想影响,最初是为了 解决数据缺失情况下的参数估计问题 ,其算法基础和收敛有效性等问题在 Dempster、Laird 和 Rubin 三人于 1977 年所做的文章《Maximum likelihood from incomplete data via the EM algorithm》中给出了详细的阐述。其基本思想是:

  • 首先根据己经给出的观测数据,估计出模型参数的值;
  • 然后再依据上一步估计出的参数值估计缺失数据的值,再根据估计出的缺失数据加上之前己经观测到的数据重新再对参数值进行估计;
  • 然后反复迭代,直至最后收敛,迭代结束。
在这里插入图片描述

2.3 半监督学习

3 强化学习

强化学习又称再励学习、评价学习或增强学习。智能系统 从环境到行为映射 的学习,以使 奖励信号(强化信号)函数值最大 。如果 Agent 的某个行为策略导致环境正的奖赏 (强化信号),那么 Agent 以后产生这个行为策略的趋势便会加强。强化学习四要素: 状态(state)动作(action)策略(policy)奖励(reward)

在这里插入图片描述

3.1 概念解释

名词 解释
智能体 学习器与决策者的角色
环境 智能体之外一切组成的、与之交互的事物
动作 智能体的行为表征
状态 智能体从环境中获取的信息
奖励 环境对于动作的反馈
策略 智能体根据状态进行下一步动作的函数
状态转移概率 智能体做出动作后进入下一状态的概率

3.2 常见算法

  • Q-Learning
  • 时间差学习(Temporal difference learning)

3.3 应用场景

  • 动态系统
  • 机器人控制
× 请我吃糖~
打赏二维码