ML(2): 术语及算法分类汇总

时间:2023-03-08 23:22:03
ML(2): 术语及算法分类汇总

机器学习术语


归纳总结机器学习相关的基本术语,以一批西瓜的数据为例,例如:(色泽=青绿;根蒂=蜷缩;敲声=浊响),(色泽=乌黑;根蒂=稍蜷;敲声=沉闷),(色泽=浅白;根蒂=硬挺;敲声=清脆)。。。

  • 示例(instance)/样本(sample):对于某个事件或对象的描述(上例中的一个西瓜)
  • 数据集(data set):一组记录的合集
  • 属性(attribute)/特征feature):反映事件或对象在某方面的表现或性质的事项,如:色泽、根蒂、敲声
  • 属性值(attribute value):属性上的取值,如:“青绿","乌黑"
  • 属性空间(attribute space)/样本空间(sample space)/输入空间: 属性张成的空间
  • 特征向量(feature vector):在属性空间里每个点对应一个坐标向量,把一个示例称作特征向量。如:把"色泽”、“根蒂”、“敲声”作为三个坐标轴,则他它们张成一个用于描述西瓜的三维空间,每个西瓜都可在这个空间中找到自己的坐标位置,由于空间中的每个点对应一个坐标向量,因此我们也把一个示例称为一个“特征向量”
  • 维数(dimensionality):描述样本参数的个数(也就是空间是几维的)
  • 学习(learning)/训练(training):从数据中学得模型的过程,这个过程通过执行某个学习算法来完成。
  • 训练数据(training data):训练过程中用到的数据
  • 训练样本(training sample):训练用到的每个样本
  • 训练集(training set):训练样本组成的集合
  • 假设(hypothesis):学得模型对应了关于数据的某种潜在规则,这种潜在规律自身,则称为“真相”或"真实“
  • 标记(label):关于示例的结果信息,比如这是一个“好瓜”。
  • 样例(example):拥有标记信息的示例,如下说明:
  • ML(2): 术语及算法分类汇总
  • 分类(classification):预测时离散值,比如”好瓜“、"坏瓜”之类的学习任务称为分类
  • 回归(regression):若预测的是连续值,比如西瓜成熟度0.95、0.37之类的学习任务称为“回归”
  • 聚类(clustering):把训练集中的对象分为若干组,每组称为一个簇(cluster),这些自动生成的簇可能对应一些潜在的概念划分,如:“浅色瓜”、“深色瓜”,甚至“本地瓜“、”外地瓜“
  • 有监督学习(supervised learning):训练数据拥有标记,典范--分类和回归
  • 无监督学习(unsupervised learning):训练数据无标记,从数据集中自己自动发现模式和关系,典范--聚类 (先天的判断力,无需后天培养)
  • 泛化(generalization)能力:训练出来的模型适用于新样本的能力,具有强泛化能力的模型能很好地适用于整个样本空间。

常见算法分类


根据算法的功能和形式的类似性,我们可以把算法分类,比如说基于树的算法,基于神经网络的算法等等。当然,机器学习的范围非常庞大,有些算法很难明确归类到某一类。而对于有些分类来说,同一分类的算法可以针对不同类型的问题。这里,我们尽量把常用的算法按照最容易理解的方式进行分类。

回归算法: 回归算法是试图采用对误差的衡量来探索变量之间的关系的一类算法。回归算法是统计机器学习的利器。常见的回归算法包括:

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

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

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

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

  • Ridge Regression,
  • Least Absolute Shrinkage and Selection Operator(LASSO),
  • 弹性网络(Elastic Net)

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

  • 分类及回归树(Classification And Regression Tree, CART)
  • ID3 (Iterative Dichotomiser 3),
  • C4.5
  • Chi-squared Automatic Interaction Detection(CHAID)
  • Decision Stump
  • 随机森林(Random Forest)
  • 多元自适应回归样条(MARS)
  • 梯度推进机(Gradient Boosting Machine, GBM)

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

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

基于核的算法: 基于核的算法把输入数据映射到一个高阶的向量空间, 在这些高阶向量空间里, 有些分类或者回归问题能够更容易的解决。 常见的基于核的算法包括:

  • 支持向量机(Support Vector Machine, SVM)
  • 径向基函数(Radial Basis Function ,RBF),
  • 线性判别分析(Linear Discriminate Analysis ,LDA)

聚类算法:聚类算法通常按照中心点或者分层的方式对输入数据进行归并。所以的聚类算法都试图找到数据的内在结构,以便按照最大的共同点将数据进行归类。常见的聚类算法包括:

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

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

  • Apriori算法
  • Eclat算法

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

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

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

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

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

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

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

  • Boosting
  • Bootstrapped Aggregation(Bagging)
  • AdaBoost
  • 堆叠泛化(Stacked Generalization, Blending)
  • 梯度推进机(Gradient Boosting Machine, GBM)
  • 随机森林(Random Forest)