Advertisement

统计学习方法总结

阅读量:

0. 相关知识点

统计学习作为一门系统性的学科,在人工智能领域具有重要地位。它主要关注如何通过计算机技术以一种高效的方式从大量复杂的数据中提取有价值的信息,并利用这些信息改进系统的性能和决策能力。在这一过程中,
研究者通过设计算法实现从简单到复杂的数据建模,
最终目标是在实际应用中实现数据分析效率的最大化。

统计学习对数据所作的基本假设即为同类数据具有一定的统计规律性(如概率分布),这构成了统计学习的前提条件。在处理数据时进行预测与分析的过程主要依赖于构建相应的概率统计模型。其总体目标就在于探索适合的数据特征并研究相应的建模方法。以便使模型能够实现精准的数据预测与分析,并在提高学习效率方面力求做到最好。

统计学手段是建立在数据构建基础上的统计模型构建过程,并用于数据分析与预测。其中包含多种不同的学习方法。

复制代码
 监督学习(supervised learning)
    2. 非监督学习(unsupervised learning)
    3supervised learning)
    4

0x1: 监督学习

在监督学习中,统计学习的方法可以概括如下:

复制代码
 从给定的、有限的、用于学习的训练数据(training data)集合出发(训练集是人工给定的、已知label的数据集),假设数据是独立同分布产生的;
    2. 并且假设要学习的模型属于某个函数的集合(称为假设空间 hypothesis space);
    3. 应用某个评价标准(evaluation criterion)从假设空间中选取一个最优的模型,使他对已知训练数据及未知测试数据(test data)在给定的评价准则下有最优的预测;
    4

这样,在统计学习中存在三种基本要素:涵盖模型的假设空间、遵循一定的选择标准以及采用特定的学习算法;这些要素共同构成了统计学习方法的核心框架,并被简称为model, strategy, algorithm三个组成部分

实现统计学习的方法的步骤如下

复制代码
 得到一个有限的训练数据集合,包括样本特征的抽取;
    2. 确定包含所有可能的模型的假设空间(即学习模型的集合),对应判别模型和生成模型的训练中,就是建立目标模型的数学公式描述
    3. 确定模型选择的准则,即学习的策略
    4. 实现求解最优模型的算法,即学习的算法,这块常常是学习策略的具体数学化表示,算法作为策略实现的手段
    5. 通过学习方法选择最优模型,这部分又可以分为直接求出解析最优解、和逐步迭代求每轮的局部最优解从而逼近全局最优解(例如SGD)
    6

在监督学习中(supervised learning),其核心目标是训练一个系统(comprising generative models and discriminative models)。该系统能够在任意输入下对其相应的输出结果进行准确地预测。

1. 模型假设空间

监督学习的目标是通过输入数据推导出相应的输出结果。这种推导过程由所选模型来实现。这些推导出来的对应关系构成了一个完整的系统框架——假设空间(hypothesis space)。所有这些可能对应关系构成的概念域即被定义为假设空间(hypothesis space)。具体来说,这类任务的学习方法通常可分为两类:一类基于概率理论构建的概率模型;另一类则通过建立明确决策规则而非依赖概率分布来进行预测分析。

概率模型: 在学习过程中,监督学习基于输入变量X与输出变量Y之间的联合概率分布假定。这一核心假设支撑了整个监督学习体系,并且只有当数据固有的规律明确存在时才能确保建模过程能够顺利进行

决策函数(decision function): 由 Y = f(X)表示

**2. 生成模型与判别模型的联系与区别

**

联合概率及决策函数也可被称为生成方式(generative approach)与判别方式(discriminative approach),所获得的模型则统称为生成型模型(generative model)与判别型模型(discriminative model)。

生成方法: 由数据学习学习联合概率分布

,然后求出条件概率分布

作为预测的模型,即生成模型:

我们称此方法为生成方法的原因是该模型能够体现输入X到输出Y的生成过程。其中典型的代表包括朴素贝叶斯法和隐马尔科夫模型。

向生成方法输入X,生成模型的条件概率

会提供每个类别Y在整体概率分布中的具体数值,并基于这些数值选择具有最高概率的那一类作为预测结果

判别方法: 由数据直接学习决策函数

或者条件概率分布

作为分类器的构建方法中的一种类型称为判别式方法(discriminative methods)。这些方法关注的是:对于给定输入变量X值时所对应的输出变量Y取值之间的关系规律性问题。典型的判别式方法主要包括以下几种:K近邻法(k-nearest neighbor)、感知机算法(perceptron algorithm)、决策树分析(decision tree analysis)、逻辑斯蒂回归建模(logistic regression modeling)、最大熵建模(maximum entropy modeling)、支持向量机(support vector machine)以及条件随机场(conditional random field)等

将输入数据X传递给该判别方法后会生成一个输出结果Y;接着将生成的结果Y与预设的阈值进行比较;最后通过比较结果确定数据所属的类别。

复制代码

直接学习条件概率分布 P(Y|X) 或决策函数 Y=f(X) 的方式被称为判别式方法;相应的这些统计学模型被归类为判别模型。具体而言,在机器学习领域中可以使用以下几种典型的判别式方法:感知机算法(Perceptron Algorithm)、k近邻分类器(K-Nearest Neighbors, KNN)、决策树(Decision Tree)、逻辑斯蒂回归(Logistic Regression)、最大熵模型(MaxEnt Model)以及支持向量机(Support Vector Machine, SVM)。此外还有提升方法(Boosting Methods)和条件随机场(Conditional Random Fields, CRF)也被视为属于这一类别。

为了掌握联合概率分布 P(X,Y) 的计算方法,进而得到条件概率分布 P(Y|X) ,这种方法被归类为生成方法,并对应于生成模型。其中的朴素贝叶斯法和隐马尔科夫模型属于生成技术。

下图给出了部分模型之间的关系

在监督学习过程中,在应用生成方法与判别方法时需权衡各自的优缺点,在不同数据分布情况下表现出良好的适用性

复制代码
 生成方法的特点:
    1) 生成方法可以还原出联合概率分布P(X,Y),而判别方法则不能
    2) 生成方法的学习收敛速度更快,即当样本容量增加时,学到的模型可以更快地收敛于真实模型
    3) 当存在隐变量时,生成方法仍可以学习,此时判别方法则不能用
    4) 生成模型的模型数学定义更困难,例如常用高斯模型需要假设样本数据特征满足高斯分布,但是我们知道实际问题中,样本的特征分布规律是十分复杂有时候难以用一个直观的数学表达式进行描述
    5) 生成方法学习联合概率密度分布P(X,Y),所以就可以从统计的角度表示数据的分布情况,能够反映同类数据本身的相似度。但它不关心到底划分各类的那个分类边界在哪。
    
    2. 判别方法的特点:
    1X)或决策函数f(X),直接面对越策,往往学习的准确率更高
    2X)或f(X),可以对数据进行各种程度上的抽象(例如DNN多层抽象、SVM升维扭曲)、定义特征并使用特征,因此可以简化学习问题
    3) 判别模型由于不存在模型数序定义的问题,因此适合于复杂问题的场景,当样本中的规律分布不是十分明显满足某个已知概率分布的时候,可以尝试用判别模型训练分类器
    4

_基于生成模型能够推导出判别模型这一前提条件成立时,但反过来从判别模型无法反向推导出生成模型. 换个说法就是,当且仅当训练样本服从特定的概率分布时才能建立有效的生成式学习框架,而这种强分布假设条件能够进一步简化为一个弱化后的假设. 换言之,如果一个训练集合满足高斯分布的条件并被建模为高斯判别分析(Generative Model),那么我们就可以通过逻辑斯蒂回归方法建立相应的分类器;但相反地,在这种情况下就无法实现.

同样地,在考虑两类情况时

核心在于,在给定训练数据的前提下推断出条件概率P(Y|X)。即使能够推断出这一关系式,则完成分类任务也就指日可待了。然而通常情况下这一类的概率分布机制往往极其复杂,在实际问题中很难建立精确的数学模型来描述样本背后的分布机制,并且这需要投入大量的时间和精力来进行建模工作。因此发展出了另一种方法:直接通过问题特征和训练样本学习判别函数的方式进行分类判断;这种方法的一个显著优势在于无需构建复杂的概率模型。

以支持向量机为例,在其决策函数(即分类面)的本质上呈现线性特性时,则可以用数学形式表示为Y = WX + b。通过训练样本数据集来确定参数Wb后即可求得Y = WX + b

除了传统的分类器设计之外, 这种方法通过确定明确的分类标准, 直接依据已建立的类别对未知测试样本进行归类. 包括 nearest neighbor (NN) 方法, 这种方法无需在预测阶段建立概率模型 P(Y|X) 或者决策函数 Y=f(X), 而是在实际进行判别时, 将待测样本 X 与训练数据中各类别的样本 Xi 进行比较, 确定与哪些类别中的 Xi 比较相似, 最后将 X 分类到与之最接近的 Xi 对应的类别中.

举一个由高斯生成模型推导逻辑回归判别模型的例子

这里我们探讨一个相对简单的案例——高斯生成模型;亦即,在各类别中所呈现的数据分布均可通过高斯模型来进行建模。

说明

最终求得的各个参数计算公式为:

为了便于理解, 我们借助图示进行展示. 其中用圆圈表示一类数据, 叉号表示另一类数据. 采用高斯模型对这两类数据的分布情况进行建模分析. 考虑到两个高斯模型共享相同的协方差参数设置, 因此可以推断出这两个高斯分布呈现相似的整体形态, 在均值处的位置有所差异.

图示中的直线表示的是高斯模型生成的决策面,表示

接下来,我们继续推导,值得注意的是,高斯生成模型中,

这种结构正是逻辑回归的核心框架。由此可见,在运用高斯模型对各类别的特征数据进行建模的过程中,其生成机制基于多元正态分布。

复制代码
    总的说来,GDA(高斯生成算法)对数据分布进行了一定的假设(假设数据分布是高斯分布的),当数据确实符合或近似符合高斯分布时,这种计算方法是比较高效准确的;但是当数据并不符合高斯分布时,这种计算方法的效果并不是很好,而逻辑回归并不存在这样的假设,所以当数据不满足高斯分布时,逻辑回归分类的效果要更好一些
    这也就是说判别模型更适合对样本数据概率分布未知(难以建模)的情况,判别模型能自动进行特征抽象和分类

3. 学习策略

在确定了模型的假设空间之后

损失函数和风险系数 - 期望风险反映了所选模型对推导规律进行拟合的程度

监督学习问题是在假设空间

中选取模型

作为决策函数,对于给定的输入X,由

给出相应的输出Y,这个输出的预测值

由于真实值Y可能存在偏差,在统计学习中使用损失函数(loss function)或代价函数(cost function)来衡量预测偏离真实值的程度;而损失函数被定义为...]

和Y的非负实值函数,记作

统计学习常用的损失函数有以下几种:

**(1)0-1损失函数(0-1 loss function):

**

**(2)平方损失函数(quadratic loss function):

**

**(3)绝对值损失函数(absolute loss function):

**

(4)负对数似然损失函数(negative log-likelihood function)或负对数似然损失函数(negative log-likelihood function):

**

无论其形式如何

这是理论上模型

基于此计算的平均损失被称为风险函数(risk function) 或者 期望损失(expected loss)

基于统计学习理论而言, 我们致力于选择使期望风险最小化的模型; 然而, 联合分布P(X,Y)是不可知的, 实际上我们通过机器学习算法能够获取其联合分布(从某种程度上说), 期望风险在理论上是一个理想值并不具备直接应用的价值; 因此我们需要引入经验风险作为替代

**经验风险 - 反映当前选择的模型对样本的拟合程度

**

给定一个训练数据集:

,模型

基于训练数据集计算得出的平均损失被称为经验风险(Empirical Risk)或经验损失(Empirical Loss)。

,期望风险

是模型关于联合分布的期望损失,经验风险

定义为基于训练数据集计算得到的平均损失。由大数定律可知,当样本容量趋向于无穷大时,经验风险将无限接近于期望风险。因此,在实际应用中我们通常利用经验风险来估计期望风险。然而,在真实场景中样本数量通常较为有限或较少。这就会导致直接采用经验风险进行估计会导致结果不够准确(如可能出现过拟合现象)。因此接下来我们将重点讨论两种具体策略:基于经验的风险最小化和考虑结构的风险最小化。

经验风险最小化

在假设空间、损失函数以及训练数据集被充分确定的情况下,经验风险函数能够被唯一地确定出来。基于经验风险最小化(empirical risk minimization, ERM)的策略认为,在所有可能的模型中选择具有最小经验风险的那个作为最优模型;根据这一原则,在给定经验风险下寻求最优模型等价于解决一个最优化问题:

当样本量足够多时,在使用经验风险最小化策略下能够带来良好的学习效果。其中一种具体的方法是极大似然估计(maximum likelihood estimation),它正是经验风险最小化的典型代表。

在样本容量较小时,经验风险最小化学习会导致误差发生,并且可能发生'过拟合(over-fitting)'现象

结构风险最小化

为了防止模型过拟合而提出的策略... 结构风险最小化等价于在经验风险的基础上增加了表示模型复杂度的正则化项或惩罚性项:具体而言,在经验风险的基础上增加了表示模型复杂度的正则化项或惩罚性项:即通过引入正则化项(regularizer)或惩罚性项(penalty term)来提升模型泛化能力。

,式中

为模型的复杂度,是定义在假设空间

,模型 f 越复杂,复杂度

就越大。复杂度表示了对复杂模型的惩罚。

是系数,用以权衡经验风险和模型复杂度

模型复杂度是一个泛函

复制代码
 在生成模型中,它往往是先验概率分布
    2

基于结构风险最小化的策略, 人们通常视具备最小结构风险的模型为最佳模型. 因此, 寻找最优模型的过程即转化为解决相应的最优化问题: 其中寻找最优模型的过程即转化为解决相应的最优化问题.

,这样,监督学习问题就变成了经验风险或结构风险函数的最优化问题。

不同算法模型中使用的损失函数在思想的一致
1)判别模型

学习策略可通过利用损失函数来进行定量描述。在二分类的监督学习框架下,支持向量机、逻辑斯蒂回归、最大熵模型及提升方法各自采用不同的损失函数。

复制代码
 支持向量机:合页损失函数
    2. 逻辑斯蒂回归:逻辑斯蒂损失函数
    3. 最大熵模型:指数损失函数
    4

这3种损失函数都是0-1损失函数的上界,具有相似的形状,如下图所示:

因此,在机器学习中,支持向量机、逻辑斯蒂回归、最大熵模型以及提升方法各自采用不同的代理损失函数(surrogate loss function) 来表征分类任务中的损失,并通过构建经验风险或结构化风险函数的形式来完成二元分类任务的学习过程。其中的学习策略即在于优化这些预先定义的结构化风险函数:

第一项为经验风险(经验损失),第二项为正则化项,

为损失函数,

为模型的复杂项,

为系数。

支持向量机采用L2范数来衡量模型的复杂程度。原始的逻辑斯蒂回归和最大熵模型未引入任何显式的正则化机制;为了防止过拟合问题出现,在原有模型上添加L2范数作为附加的正则化解手段是可行的选择。提升方法不具备任何显式的正则化机制;不过可以通过设置早停法(early stopping)来实现类似的效果。

2)概率模型

概率模型的学习可被视为极大似然估计或贝叶斯型的最大后验密度估计。此时,学习遵循最小化对数似然函数或最小化带有正则项的对数似然损失。这些损失函数可表示为:

极大后验概率估计时,正则化项是先验概率的负对数

4. 分类问题与回归问题

在监督学习框架中,依据输入变量与输出变量的数据特性,将预测任务划分为若干类别

复制代码
 回归问题:输入变量与输出变量均为连续变量的预测问题
    2. 分类问题:输出变量为有限个离散变量的预测问题
    3

值得补充的是,在处理实际应用时往往难以清晰界定边界的情况下(即所谓的非黑即白划分并不成立),分类与回归问题的本质是一致的;通过这种视角来看待问题时(即把它们视为同一个框架下的两种表现形式),我们可以从一个方法论的高度去理解不同算法之间的关联性与差异性;反过来,在这种框架下分析,则能实现对分类器结果的有效延伸。

下面举例说明它们之间的转换关系

复制代码
 Logistic Regression 和 Linear Regression:
    1b,这个值是连续值,所以可以用来处理回归问题
    201)上,并划分一个阈值,大于阈值的分为一类,小于等于分为另一类,可以用来处理二分类问题
    3b,然后归一化,比如用 softmax 函数,最后变成N个类上的概率,根据argmax取概率最大的那一类为最后的预测结果,可以处理多分类问题 
    
    2. Support Vector Regression 和 Support Vector Machine: SVR:
    1b,即某个样本点到分类面的距离,是连续值,所以是回归模型 
    2) SVM: 把这个距离用 sign(·) 函数进行离散化处理,距离为正(在超平面一侧)的样本点是一类,为负的是另一类,所以是分类模型 
    
    3. Naive Bayes 用于分类 和 回归: 
    1x),给定 x ,输出每个类上的概率 
    2x)(即得到概率密度),就得到连续值
    
    4. 前馈神经网络(如 CNN 系列) 用于 分类 和 回归: 
    1b,是一个连续值,可以处理回归问题,跟上面 Linear Regression 思想一样 
    2b,同理可以归一化(比如用 softmax )变成 N个类上的概率,然后取概率最大的那一类作为N分类的预测结果
    3b 用一个 sigmoid,就变成多标签问题,跟多分类的区别在于,样本可以被打上多个标签
    
    5. 循环神经网络(如 RNN 系列) 用于分类 和 回归:
    11

回归问题和分类问题的本质区别在于它们采用的策略不同:

复制代码
 回归问题的策略是:模型的拟合函数和样本点的距离要尽可能近,优化的方向也是朝着不断靠近的方向优化的
    2

5. 利用模型进行预测和分析

在学习的过程中,在线学习系统基于预先收集的训练数据集,并通过一系列的学习算法(或训练过程)生成一个用于描述数据特征的条件概率模型

或决策函数

,条件概率分布或决策函数描述输入与输出随机变量之间的映射关系

在预测过程中,预测系统对于给定的测试样本集中的输入

,由模型

给出相应的输出

0x2:模型评估与模型选择

1. 训练误差与测试误差

统计学习的目标在于使构建出的模型不仅能够良好地拟合已知的数据样本而且也能有效地预测来自未知数据集的情况。从训练误差的角度来看, 它能够帮助我们评估给定问题是否适合通过特定的学习方法进行建模, 但需要注意的是这一指标仅反映了模型对训练数据的表现程度而并未具有实际意义。测试误差则直接衡量了学习方法在面对未见过的新测试数据时的表现能力, 这是统计学习中的核心指标通常我们称其为泛化能力(generalization ability)

2. 过拟合与模型选择

当假设空间包含不同复杂度(如不同参数数量)的不同模型时(例如考虑神经网络中神经元数量或决策树节点数量),就需要解决"model selection"问题。我们期望选择或构建一个合适适用的模型;若假设空间中存在"true model"(真实模型),则应尽可能接近该真实情况;若仅注重提升对训练数据的表现,则所选模型往往过于复杂;这种现象被称为over-fitting问题:即所选学习器参数过多导致其在已知数据上表现优异但泛化能力不足的现象

该图形展示了训练误差和预测误差与模型复杂度之间的关系。随着模型复杂度的增加,训练误差逐步降低直至趋近于零;而测试误差则会先下降,达到最低点后再开始上升。当选模型过于复杂时,会导致过度拟合现象出现。

在学习过程中,则需避免过度拟合,并进行最佳模型的选择。即可选择适当复杂度的模型。以便实现测试误差最小化的目标。达到这个目的需要借助一些数学工具和工程化方法

0x3:正则化与交叉验证 - 缓解过拟合的发生

1. 正则化 - 结构风险最小化策略的一种具体实现

在模型选择中常用的方法是正则化(regularization),它旨在通过在经验风险上附加一个正则项来实现结构风险最小化的策略。在经验风险的基础上添加了两个关键组件:一个是正则项(regularizer),另一个是惩罚项(penalty term)。这些额外加入的量通常是随着模型复杂性增加而单调递增的。随着模型复杂性的提升,其对应的惩罚力度也会随之增大。这种对经验风险函数进行扩展的方法被称为 regularization 策略,并通常表现为以下形式:

第一项是经验风险,第二项是正则化项,

为调整两者之间关系的系数。

我们在学习相关算法的过程中会常见到这一函数形式及其变种,在机器学习领域中使用广泛的作为模型构建的基础工具 正则化不仅是这些方法中不可或缺的一部分 更是非得依赖的一种技术手段 在实际应用中 我们通常会根据具体情况选择合适的构建方式 这一点可以从下面的例子中得到验证 在回归问题当中 损失函数通常采用平方误差的形式 而针对这种情况 正则化的实现往往会选择参数空间中的点而非仅仅约束其数值大小 这不仅能够有效减少模型复杂度 还能防止过拟合 这一策略在实际应用中取得了良好的效果

正则化项符合奥科姆剃刀(Occam;s razor)原理:

复制代码
    在所有可选的模型中,能够很好解释已知数据并且十分简单才是最好的模型,也就是应该选择的模型
    1. 从贝叶斯估计的角度来看,正则化项对应模型的先验概率,可以假设复杂的模型有较大的先验概率,简单的模型有较小的先验概率
    2

特别注意,在使用正则化时,请确保不会生成新的模型结构。它主要用来在模型空间中挑选出最合适的一个。

2. 交叉验证

另一种常用的方法是在不同领域中广泛应用的交叉验证技术。在许多实际应用场景中,我们通常面临数据量不足的问题。为了选出性能良好的模型,在采用交叉验证方法时需要遵循以下基本思路:反复利用样本数据,并将其划分为若干子集;将这些子集进一步划分成训练子集和验证子集;通过不断调整参数并优化模型结构来提高预测准确性。

简单交叉验证
复制代码
    17030);
    2. 然后用训练集在各种条件下(例如不同的参数个数)训练模型,从而得到不同的模型;
    3
S折交叉验证(S-fold cross validation)
复制代码
 首先随机地将数据切分为S个互不相交的大小相同的子集;
    211 个子集测试模型;
    3. 将这一过程对可能的 S 种选择重复进行(即进行S次);
    4
留一交叉验证

S 次交叉验证的方法基于给定数据集的大小 S = N(其中 N 表示数据集的容量),其别名是单样本交叉验证(leave-one-out cross-validation),常用于数据样本数量较小时。

0x4:学习算法

统计学习的问题有了具体的形式之后,就变成了纯数学上的最优化问题。

有时,最优化问题比较简单,解析解存在,最优解可以由公式简单计算。

但是一般情况下, 最优化问题并不存在解析解, 因此通常需要借助数值计算技术和启发式算法来进行求解

基于朴素贝叶斯和隐马尔科夫模型的监督学习方案中,其最优解等价于最大似然估计量;通过相应的概率推导过程准确得出

感知机、逻辑斯蒂回归与最大熵模型、条件随机场的学习没有解析解可以直接求取,需要通过梯度下降法和拟牛顿法等方法进行迭代优化.这些都属于一般的无约束最优化问题的解法;

支持向量机的学习用于求解凸二次规划问题的对偶形式。包括一系列其他优化方法

支持向量机的学习用于求解凸二次规划问题的对偶形式。包括一系列其他优化方法

决策树学习遵循启发式算法的指导原则,在机器学习领域中具有显著的重要性;从理论上讲,在构建决策树模型时,特征选择、生成和剪枝过程通常被视为通过正则化机制优化模型参数的过程。

该提升方法基于所采用的学习模型具有加法结构特征,并且损失函数设定为指数形式。通过某种启发式的顺序安排,在前向阶段逐步优化模型参数;其最终目标是逼近优化后的目标函数值。

EM算法属于一种用于估计潜在变量模型参数的方法。该算法具有收敛特性,在实际应用中能够逐步逼近稳定解。然而它无法确保达到全局最优解。

0x5:监督学习中的典型问题场景

1. 回归问题

回归(regression)是监督学习中的一个核心问题。在监督学习框架下,回归分析旨在预测输入空间与输出空间之间的映射关系,具体而言,它关注的是当输入空间中的数据点发生变化时,如何对应地改变其目标空间中的数值结果。构建回归模型的目标在于精确描述这一映射函数,从而实现对未知数据的有效预测能力

复制代码

回归问题基于输入自变量的数量可分为一元回归与多元回归;基于输入自变量与输出因变量之间的关联性以及模型性质的不同划分为线性回归与非线性回归。

在回归问题中,默认情况下使用的损失函数主要是二阶平方损失函数(此外还包括其他类型的损失函数),因此,在这种情况下,回归问题的求解等同于应用最小二乘法(LS)进行计算。

2. 分类问题

分类任务是监督学习的关键组成部分,在监督学习框架中,当输出变量Y限定于有限个离散类别时,预测任务转化为分类问题。相应地,输入变量X既可以呈现离散形式也可以呈现连续形式,并在此基础上构建分类模型或决策函数(即分类器 classifier)

3. 标注问题

标注(tagging)属于监督学习范畴,并被视为分类问题的一种延伸。同时,在结构预测领域中,标注问题可视为较为简单的基础形式。其输入为观测序列,在输出上则表现为标记序列;也可以理解为状态序列。

标注(tagging)属于监督学习范畴,并被视为分类问题的一种延伸。同时,在结构预测领域中,标注问题可视为较为简单的基础形式。其输入为观测序列,在输出上则表现为标记序列;也可以理解为状态序列。

标注问题旨在学习一个模型使其能够对观测序列生成标记序列作为预测值得注意的是尽管可能的标记个数有限但其组合形成的标记序列数量随着观测序列长度呈指数级增长

因此,在某种意义上讲,在分类问题中可能出现的结果数量仅为两类或多类情况,则属于标注问题这一更为广泛的情形下的一个特殊情形。具体而言,在分类任务中可能存在的预测结果包括两类或多种类别;而在标注任务中则可涵盖所有可能的标记序列组合,并且其总数呈指数增长趋势。

Relevant Link:

复制代码
    //open.163.com/movie/2008/1/A/R/M6SGF6VB4_M6SGHMFAR.html//blog..net/u014791046/article/details/51762888//blog..net/daijiguo/article/details/52218207//www.jdon.com/bigdata/a-tour-of-machine-learning-algorithms.html//www.zhihu.com/question/38677354?sort=created//www.zhihu.com/question/21329754 //blog..net/zouxy09/article/details/8195017//blog..net/Fishmemory/article/details/51711114//www.zhihu.com/question/22374366/answer/21224060//segmentfault.com/q/1010000000687677?_ea=963786//blog..net/zouxy09/article/details/8195017//blog..net/wolenski/article/details/7985426//www.jianshu.com/p/d195b887a32e//www.cnblogs.com/fanyabo/p/4067295.html

1. 各类算法横向对比

本章节系统性地比较不同算法在适用场景、模型特征以及学习策略方面的异同,并为后续各章深入探讨这些技术细节做准备

0x1: 监督学习算法适用的场景

在监督学习中,我们旨在训练一个模型以便根据输入数据生成相应的输出结果。这些任务主要包括分类 标注以及回归分析

1. 分类

分类问题是从实例的特征向量到类标记的预测问题。常见的分类方法有

复制代码
 感知机
      1)针对二分类的,可以将其扩展到多类分类
      2)具有模型直观、方法简单、实现容易等特点
    2. k近邻法
      1)常用语多分类问题
      2)具有模型直观、方法简单、实现容易等特点
    3. 朴素贝叶斯法
      1)可以解决二分类、多类分类问题
      2)具有模型直观、方法简单、实现容易等特点
    4. 决策树
      1)可以解决二分类、多类分类问题
      2)具有模型直观、方法简单、实现容易等特点
    5. 逻辑斯蒂回归
      1)可以解决二分类、多类分类问题
      2)模型更复杂但更有效的分类方法,往往分类准确度更高
    6. 最大熵模型
      1)可以解决二分类、多类分类问题
      2)模型更复杂但更有效的分类方法,往往分类准确度更高
    7. 支持向量机
      1)针对二分类的,可以将其扩展到多类分类
      2)模型更复杂但更有效的分类方法,往往分类准确度更高
    8

2. 标注

涉及将观测序列映射至标记序列(或状态序列)的过程。实际上可视为一种特殊的标注问题。其可能的结果类别包括两类或多类。然而,在标注问题中由于存在严格的一系列标记之间的顺序依赖关系(即所有可能的状态组合),因此总的解空间数量呈指数级增长

常见的标注方法有

复制代码
 隐马尔可夫模型
    2

3. 回归

样本的特征空间映射到一个连续型预测目标的问题就是回归问题。从本质上说,分类任务可视为对回归问题进行离散化处理的一种方式。

0x2: 模型特点

undone

Relevant Link:

https://www.zhihu.com/question/26726794

https://zhuanlan.zhihu.com/p/25327755

3. 感知机

感知机(Perceptron)是一种用于两类分类问题学习的方法,在模式识别领域具有重要应用价值。其输入空间中构建了一个线性决策面,在给定条件下通过优化算法寻求最优参数配置。虽然该模型无法完整表征训练数据的概率分布特性但它能够实现"最佳"意义上的经验风险最小化目标从而实现对未知测试样例的有效分类

0x1: 适用场景

该感知机模型利用超平面将实例分到其一侧之内的某个区域中,并因此仅适用于二分类问题

0x2: 模型特点

假设输入空间(特征空间) 是

,输出空间是

(二分类)。由输入空间到输出空间的如下函数:

称为感知机。其中,w(权值向量)和b(偏置)称为感知机模型参数,

表示w和x的内积,sign是符号函数,即:

感知机属于线性分类模型 ,同时作为判别模型 的一部分。其假设空间基于特征空间包含所有线性分类器(linear classification model)或(linear classification),即由这些函数组成的集合:

感知机有如下几何解释:

线性方程

对应于特征空间

在二维空间中给出一个样本集X={x₁,x₂,…,xₙ}的情况下,在该样本集中存在一个特定的分界面S(即该分界面)。分界面S的特点是其法向量为w而截距为b。这一分界面将特征空间划分为两个区域,在这两个区域中的点分别被归类为正类或负类。因此该分界面S被称为分离超平面(separating hyperplane)

关于权重向量w和偏置b的内在含义我们还需要深入思考下

复制代码
 如果说w和b两个参数确定一个超平面的话,w决定的就是这个超平面的方向,即这个超平面“倾向于”哪个维度的特征
    2

0x3: 学习策略

假设训练数据集是线性可分的,感知机学习的目标是:

复制代码

为确定这样的一个超平面, 即需要确定感知机模型的参数w和b, 必须建立一个学习策略, 即定义(基于经验的)损失函数, 并使损失函数最小化(其中学习策略需抽象化处理, 并需通过数学化的定量方法进行描述)。

复制代码
 损失函数的一个可能的选择是误分类点的总个数,但是这样的损失函数是一个离散函数,不是参数w和b的连续可导函数,不易进行迭代优化
    2

我们首先定义输入空间

中任一点

到超平面S的距离:

,这里,

是w的L2范数。然后,对于误分类的数据

来说,

,因此,误分类点

到超平面S的距离是:

令超平面S的误分类点集为M,则将所有属于集合M的误分类点到超平面S的距离进行求和。

,不考虑

得出了感知机学习中的关键损失函数表达式;
与此同时,在给定训练集T的情况下,
这种基于样本推导出的方法也被定义为经验风险模型。

是w,b的连续可导函数

复制代码

0x4: 学习算法

感知机将寻找最优超分界面的问题转换为求解损失函数最优解的问题,并且它们是等价的。其损失函数呈现出高度平滑且连续的特点。基于此分析可知, 采用随机梯角下降法进行最优化

该感知机学习算法基于误分类驱动的设计理念。随后,在初始化阶段设定初始参数w_0b_0;接着通过迭代优化过程不断降低损失函数值。

在一轮梯度下降迭代中,假设误分类点集合M是固定的,那么损失函数

的梯度由:

给出

复制代码

随机选取一个误分类点

,对w,b进行更新:

,式中

步长值,在统计学习领域中也可称为学习率(learning rate)。这样做的一个直接结果是通过迭代过程能够逐步优化损失函数。

不断减小

这样的算法工作原理在直观上可作如下说明:当某个实例点被错误地归类至分离超平面所对应的另一侧区域时,则需更新权重向量w和偏置量b,并使分隔面朝着被错分实例的那一侧发生位移。这一操作旨在降低该实例与其所属区域之间的距离直至分隔面跨越该错分实例并将之归类至正确区域为止

4. K近邻法

K近邻法(k-nearest neighbor, KNN)是一种基于数据驱动(基于实例的算法)的方法,在实现过程中主要涉及两个核心环节:分类与回归操作。这种技术本质上属于一种判别模型

这类算法通常被简称为基于记忆的学习方法(有时也被称作基于经验的学习)。这类方法并不涉及对概率分布或分类界面的明确归纳。相反,在学习过程中它是通过与存储器中的现有案例进行比较来处理新的问题。存储器在这里扮演着关键的角色。

这类算法之所以被称为基于实例的方法是因为它们能够直接利用现有的训练样本来生成预测模型。该预测模型的具体复杂性会随着数据量的增长而发生变化;在极端情况下(即当无法从中提取额外信息时),该模型可能简单地将每个新样本归类为已知类别中的一个典型代表。这种情况下,在测试时对单个新样本进行分类所需的时间复杂度为O(n),其中n表示 training样本的数量

0x1:适用场景

1. 多分类问题场景

基于多分类场景的应用中采用的K-NN算法,在接收实例描述的形式的同时也对应于特征空间中的位置;该算法将输出结果限定为具体的类别标签。该方法假定存在一个预先提供的训练样本集合,在这些样本中各实例已经被明确归类的情况下进行操作。识别新样本时,则通过考察其与多个相近邻居的关系来进行预测判断;这种学习方式无需显式的模型训练阶段,并主要通过构建决策边界来进行分类判断

2. 回归问题的场景

KNN算法不仅适用于分类任务,也可被用来解决回归问题。在具体实现上,在测试集中的一个样本实例中确定其k个最近邻训练实例后,在预测结果中将这些邻近实例属性均值计算出来即可获得该测试实例的相关预测结果。更为有效的策略是为不同距离范围内的邻居实例赋予不同权重(weight),例如权重与距离呈正相关

0x2:模型特点

输入训练数据集

,其中

为实例的特征向量,

对应实例的类别。基于给定的距离计算方式,在训练集中搜索出与实例x最接近的K个样本(其中K值需人工调节以达到最佳性能),通过预先定义好的分类决策规则,在这些选定样本的基础上判断实例x所属类别y

当k取值为1时的情况属于k近邻法的一种特殊情况,并被称为最近邻分类器;即针对输入实例点(特征向量)x而言,在训练数据集中找到与之最接近的数据点,并将其所属类别确定为该实例点x所属类别

复制代码

k-近邻模型本质上对应于将特征空间划分为若干子区域。从另一个角度看,在这种情况下,k-近邻模型直接基于样本的特征空间进行分类。一旦训练集、距离测度、参数k以及分类决策规则被设定好后,在处理新的输入实例时,其所属类别将被唯一确定下来。这等价于基于这些基本要素将特征空间划分为多个子区域,并确定每个子区域内所有点所属的类别。

在特征空间中,在每一个训练样本都具有属于自己的区域(称为单元),这些区域共同构成了特征空间的一种划分方式。每一个训练样本都具有属于自己的区域(称为单元),而这些区域共同构成了整个特征空间的一种划分结构。

复制代码

模型包含三个核心要素 - k值选择距离度量分类决策规则 ,下面我们将逐一探讨

1. K值选择

K值的选择会对k近邻法的结果产生重大影响。

复制代码
 如果选择较小的K值,就相当于用较小的邻域中的训练实例进行预测
    1)“学习”的近似误差(approximation error)会减少,只有与输入实例较近的(相似的、Lp距离较小的)训练实例才会对预测结果起作用
         2)但缺点是“学习”的估计误差(estimation error)会增大,预测结果会对近邻的实例点非常敏感,如果近邻的实例点恰巧是噪声,预测就会出错,可以理解为模型的容错性较差
    换句话说,k值的减小就意味着整体模型变得复杂(因为搜索范围小了,所以总的需要的搜索结果的存储单元就变多了),容易发生过拟合
    
    2. 如果选择较大的K值,就相当于用较大邻域中的训练实例进行预测
         1)优点是可以减少学习的估计误差,即不容易受到近邻点的波动影响
         2)但缺点是学习的近似误差会增大,这时与输入实例较远的(不相似的)训练实例也会对预测其作用,使预测发生错误
    总体来说,K值的增大就意味着整体模型变得简单

近似误差与估计误差的主要区别在于,在实际应用中, k值通常取值较小, 即我们倾向于认为邻近样本具有较强的相关性, 而远离目标样本的影响相对较小.

在实际项目中 K 值的选择与其所在样本的概率密度分布存在密切关联 并没有一种标准理论能够提供关于如何选取合适 K 值的明确指导 虽然如此 但其可能取值范围相对有限 为此 常用的方法是利用 for 循环结合交叉验证技术遍历所有候选的 K 值 通过反复进行多次实验 每次均采用不同的训练集与验证集组合来进行评估 最后考察模型对训练集与验证集的学习能力和泛化性能 从而确定最优的参数设置

2. 距离度量

在特征空间中,两个实例点之间的距离可以用来体现它们的相似程度。K近邻模型通常采用n维实数向量空间作为其特征空间。

在研究过程中,默认情况下我们假设样本数据服从正态分布,并且各个特征维度之间相互独立;

在研究过程中,默认情况下我们假设样本数据服从正态分布,并且各个特征维度之间相互独立;

设特征空间

是n维实数向量空间

的Lp距离定义为:

P = 1:曼哈顿距离(Manhattan distance):

**P = 2:欧式距离(Euclidean distance):

**

**P = 正无穷:各个坐标距离的最大值:

**

此图展示了二维空间中p取不同值时与原点的距离为1(即L_p=1)的所有点所构成的图形集合

这张图清晰地展示了采用不同距离策略对KNN算法中对邻近点的搜索范围的影响,从而导致后续的判别分类结果产生差异。

举一个实例表明,在二维空间中存在三个点时,基于不同的距离度量计算出的最近邻点彼此不同。

,我们来对比一下在p取不同的值时,Lp距离下X1的最近邻点

P值 和X2距离 和X3距离
1 4 6
2 4 4.24
3 4 3.78
4 4 3.57

可以看到,p = 1/2时,X2是X1的最近邻点;P >= 3,X3是X1的最近邻点

3. 分类决策规则

在k近邻法中使用的分类决策规则主要依据的是多数投票机制,在测试集上的表现通常优于其他方法;具体而言,在测试集上的表现通常优于其他方法;具体而言,在测试集上的表现通常优于其他方法;具体而言,在测试集上的表现通常优于其他方法;具体而言,在测试集中表现出色;具体而言,在测试集中的性能往往优于其他方法;具体而言,在测试集上的结果通常优于其他方法;具体而言,在测试集上表现出色;在测试集上具有显著优势

多数投票规则(majority voting rule)其工作原理体现在当参与投票的选项数量超过半数时被选中。在本研究中,分类采用的是0-1损失函数。

,那么误分类的概率是:

。对给定的实例

,其最近邻的 k 个训练实例点构成集合

,如果涵盖

的区域的类别是Cj,那么误分类率是:

,要使误分类率最小,即经验风险最小,就要使

最高即模型对训练样本的预测效果(拟合效果)最高。这表明多数投票规则本质上等同于基于经验风险最小化的策略。

最高即模型对训练样本的预测效果(拟合效果)最高。这表明多数投票规则本质上等同于基于经验风险最小化的策略。

复制代码
    KNN中的多数表决思想和朴素贝叶斯中选择最大后验概率的类作为实例的类的思想是一致的,都等价于期望风险最小化

探讨朴素贝叶斯法预测过程中如何通过选择最大后验概率来确定预测类别以及与期望风险最小化之间的等价推导,请参阅这篇文章(0x1:期望风险最小化)

0x3:学习策略

KNN的学习策略较为简便,在训练集中通过计算不同数据点之间的距离,在训练集中识别出与查询实例最接近的K个邻居,并通过投票决策实现经验风险最小化。这一方法也体现了最大似然估计的基本原理

0x4:学习算法

KNN方法具有高度可解释性。该算法旨在解决一个工程化问题:即在高维空间中确定k个最近邻点。当面对高维数据和大量样本时,若不采用高效算法而进行直接暴力搜索,则会导致计算时间过长。

应对该问题的方法主要是借助巧妙设计的存储架构以及配合使用特别的方法来实现目标

1. KD树(kd tree)

基于其在多维空间中高效地管理与查询实例点的能力,kd树是一种独特的数据结构

构造平衡kd树

输入:k维空间数据集

(样本数量是N),每个样本的维度是k,

(1)构造根节点,根节点对应于k维空间中包含所有实例点的超矩形区域

(2)选择

为坐标轴,以数据集T中所有实例的

取坐标轴的中位数值作为i值确定切分点;随后将当前节点的超矩形区域分割为两个子区域;接着通过该切分点分别沿着各坐标轴方向进行分割

通过垂直超平面的方式实现。根节点生成深度为1的左右子树:左子树对应坐标

小于切分点的子区域,右子节点对应于坐标

大于切分点的子区域

(3)重复过程(2),对深度为 j 的结点,选择

为切分的坐标轴,

Modulo loop based on each dimension, it continuously performs binary partitioning. By the region of this node, all instances are included.

基于坐标轴的中位数值确定为切分基准,随后将当前节点关联的超矩形空间划分为两个子空间。在确定好切分基准后,在各个坐标轴上进行定位以完成分割操作。

垂直的超平面构成了该系统的核心结构。由该结点负责生成其左右两个子节点,其中左侧子节点对应的坐标值为 (x, y, z) ,而右侧子节点则对应于另一个特定的空间位置参数。

小于切分点的子区域;右子节点对应坐标

大于切分点的子区域;将刚好落在切分超平面上的实例点保存在该结点

(4)当两个子区域不再具有实例时停止生长(即所有实例点都位于同一个超平面上),从而完成对数据空间的划分,在最后一次分割后得到的左右子矩形区域即为叶子节点

**用一个例子来说明kd树构造过程 ,给定一个二维空间的数据集:

**

(1)根节点对应包含数据集 T 的超矩形区域

(2)选择

轴,6个数据点的

坐标的中位数是7,以平面

将空间分为左、右量子子矩形(子结点)

(3)接着,左矩形的第二个维度的中位数是4,所以以

再分为两个子矩形;右矩形以

分为两个子矩形

在不断分割的过程中,在所有实例点都被正确分类到一个超平面上时

搜索kd树

完成了kd树建树后,接下来讨论如何利用kd树进行k近邻搜索

复制代码
    输入:根据train set构造的kd树;目标点x
    输出:x的最近邻
    
    1. 在kd树中找出包含目标点x的叶节点,叶子节点寻找的过程是:从根节点出发,递归地向下访问kd树,若目标点x当前维的坐标小于切分点的坐标,则移动到左子结点,否则移动到右子节点,直到子节点为叶子节点(某个不含训练实例的超矩形区域)为止
    
    2. 包含目标点的叶节点对应包含目标点的最小超矩形区域,以此叶节点的实例(落在切分超平面上的点)暂时作为“当前最近点“,注意这里说暂时是因为不一定该叶节点的实例点就真的是最近邻点了,理论上目标点的最近邻一定在以目标点为中心并且圆周通过当前最近点的超球体内部(局部最优原理),接下来的逆向回溯的目的就是尝试寻找在这个超球体区域内是否还存在其他叶节点内的实例点比“当前最近点”更近
    
    3"当前最近点"递归的向上回退,在每个结点(父节点)进行以下操作
    1"当前最近点"2) 如果该结点的另一子结点的超矩形区域与超球体相交(可能存在另一个局部最优),那么在相交的区域内寻找与目标点更近的实例点。如果存在这样的点,将此点作为新的当前最近邻点,算法转到更上一级的父节点
    3) 如果父节点的另一个子结点的超矩形区域与超球体不相交,说明另一个分支不存在另一个局部最优,则继续该分支的逆向回溯
    
    4"当前最近点"

在回退的过程中持续排查对应的目标区域附近的节点。一旦没有比当前已找到节点更接近的目标区域附近的节点就停止。这种搜索模式将范围限定在局部区域内从而使得搜索效率大幅提升(这也正是二叉树的核心理念——分而治之)。

借助下图阐述kd树的查找流程:以节点A作为根节点展开查找;该树结构包含多个子节点B、C、D、E、F和G;给定目标测试点S,请确定其最邻近的目标点。

复制代码
 首先在kd树中正向搜索,定位到最右下角那个矩形区域,随后开始逆向回溯过程
    2. 该矩形区域的实例点是D,所以暂时以D作为近似最近邻。但是理论上最近邻一定在以点S为中心通过点D的圆的内部(局部最优),因此需要继续逆向回溯 
    2. 然后返回节点D的父节点B,在节点B的另一子结点F的区域内尝试搜索,但是因为节点F的区域与超圆不相交,不可能有最近邻点
    4. 继续返回上一级父节点A,在节点A的另一子节点C的区域内尝试搜索,结点C的区域与圆相交,在超矩形区域在园内的实例点有点E,点E比点D更近,因此成为新的最近似点
    5

2. Ball Tree搜索

kd树的概念非常巧妙但也存在一些局限性 形态并非是这里最合适的选择 倾斜的数据分布会导致我们希望同时维持树的平衡性和区域正方形特性的矛盾 然而 在这里采用长方体或正方体并非是最完美选择 原因在于它们都有角 为了缓解这些问题 我们引入了Ball树 即采用超球体而非超长方体来划分区域

Ball tree通过k维超球面包裹训练样本点。见图(a),展示了二维平面包含16个观测实例;图(b)则展示了其对应的Ball树结构。Ball树中的每个节点对应一个圆,并标明该区域所包含的观测点数量。由于存在区域重叠的可能性,并且每个观测点只能属于单一区域。实际的Ball树节点存储了圆心坐标及其半径值。

构造ball tree

ball树构建过程与kd树大致相似,在具体实现上存在显著差异:每一次切分时所选切分点都是当前超球体内核心位置的一个数据样本i1,并选取与核心位置最大距离的一个观测样本i2;随后将所有与上述两个样本i1和i2均具有最小距离或相近距离的数据样本分配至对应的两个簇中心;继而为每个子节点分配相应的数据集并计算各自对应的最优包裹超球体半径;由此生成的新子节点即为新的包裹超球体结构

搜索ball tree

使用Ball树进行搜索时,在遍历树结构的过程中会首先从根节点开始向下递归,在到达包含目标数据点的目标叶子节点后

kdtree和balltree的区别和联系

kd-tree基于欧氏距离的特性:

ert x - y ert e ert x_i - y_i ert

balltree基于更一般的距离特性:

ert x - y ert + ert y - z ert e ert x - z ert

因此:
K-d树仅适用于欧氏距离度量,在处理高维数据时其应用效果欠佳。
对于K-d树能够处理的数据范围而言,B-树的效率低于其。

Relevant Link:

复制代码
    //blog..net/pipisorry/article/details/53156836

5. 朴素贝叶斯法

朴素贝叶斯(naive Bayes)算法遵循贝叶斯定理以及特征条件独立假设来进行分类任务。在给定训练数据集的前提下,在特征条件独立假设的基础上学习输入与输出之间的联合概率模型。随后,在获得该概率模型后,在面对特定输入样本x时,则通过贝叶斯定理推导出使后验概率达到最大的类别标记y。

0x1:适用场景

Naive Bayes算法可以通过最大后验概率准则(argmax)来进行多分类任务处理,在数据集各特征之间相互关联程度较低的情形下表现良好,在这种情况下通常满足条件独立假设的要求

0x2: 模型特点

复制代码
    //www.cnblogs.com/LittleHann/p/7199242.html

0x3: 学习策略

1. 模型学习过程

经验损失和结构损失的最小化(其中使用MLE作为经验风险的估计方法,并采用MAP作为结构风险的估计方法)

2. 根据模型进行判断预测

期望风险最小化

朴素贝叶斯法在预测过程中遵循最大后验概率的最大化结果作为预测结果的基本思路与K近邻算法选择K个最近邻样本作为类归属判定的基础思想具有高度的一致性。

0x4:学习算法

该方法的学习算法共有三种类型(实际上可能更多种存在),其中包括极大似然估计、贝叶斯估计以及最大后验概率估计算法(其中一种方法可被视作带正则化项的极大似然估算)。对于该方面的详细探讨,请参阅我的另一篇文章

6. 决策树

该技术是一种基础的方法...用于处理数据中的分类与回归问题。该模型具有的特点是可以表示为层次化的分支体系(基于二分法原理设计的算法模型往往具有这种特性)。

0x1:适用场景

由于其能够产出一种清晰且基于特征(feature)的选择不同预测结果的层次结构(tree-like structure),在数据分析师试图深入理解现有数据时往往会采用决策树作为一种分析工具。此外,在这种情况下使用的决策树也常被视为一种相对容易遭受攻击(vulnerable)的分类器。

此类攻击通过有意地修改某些属性来误导分类器产生误判。
常见于垃圾邮件躲避检测系统中。
由于决策树算法在底层仅依据单一条件进行判断,
攻击者只需更改少量属性即可规避监控机制。

受限于它的简单性,决策树更大的用处是作为一些更有用的算法的基石。

0x2:模型特点

在分类问题中,表示基于特征实现实例分类的过程,并且也可以被视为一系列if-then条件规则的集合;同时还可以被视为在特征空间和类别空间间建立的概率分布模型。

关于决策树的模型特点,这里说一些我自己在实践中的理解:

复制代码
 我们的原始数据集有很多不同的字段,因为每条日志都代表了一个事件,单独看一条记录不一定包含有足够的有价值信息,所以很多时候我们需要进行group by聚类处理;
    2. group by聚类背后体现的就是以一个特征为索引,得到该特征在不同label的的概率密度分布数值,聚类的结果label就是特征label,count就是其概率分布数值
    3. 我们可以逐一循环所有特征进行group by,从而得到所有特征的概率密度分布数值,然后根据一个主键将其多路join merge到一个宽表中
    4

0x3:学习策略

基于经验风险最小化的策略构建决策树的过程;反映了基于结构风险优化的剪枝操作

0x4:学习算法

决策树的学习算法即其工程化实现主要包括ID3、C4.5与CART等方法。此外读者若想深入了解可访问另一篇详细解析的文章

7. 逻辑斯蒂回归与最大熵模型

0x1:适用场景

多类别分类问题通常基于逻辑斯蒂回归的二项条件概率模型能够扩展为多元条件概率模型

0x2:模型特点

特征条件下类别(label)的条件概率分布,它本质上是一个对数线性模型

值得注意的是,在逻辑斯蒂模型中,并未对特征与类别标签之间的联合概率密度分布进行学习;它本质上属于一种判别方法

详细讨论可以参阅这篇文章

0x3:学习策略

极大似然估计;或正则化的极大似然估计(例如L1惩罚)

0x4:学习算法

1. 损失函数

该模型的损失函数使用了对数损失 ,亦即称为逻辑斯蒂损失 。这种对数损失被用于最大似然估计。参数集θ在训练数据集D下的似然值L(θ,D)表示为所有样本点概率的乘积。通常计算的是各条数据上的单个样本概率之积。为了使最大似然对应最小化损失函数(通过通过对数值变换实现了将乘法运算转化为加法运算),我们会在计算中加入负号。

其可以表示为真实分布的熵与真实分布相对于预测分布的KL散度之和。由于固定项的存在,在最小化logloss的过程中等价于缩小真实分布在预测分布上的偏差。

2. 优化算法

改进的迭代尺度算法,梯度下降,拟牛顿法

Relevant Link:

复制代码
    //www.zhihu.com/question/47744216?from=profile_question_card

7. 支持向量机

支持向量机(Support Vector Machine, SVM)是一种二元分类器。其核心机制基于特征空间中实现最大间隔线性判别系统

由于SVM引入了间隔最大化这一项约束条件的原因,则使得其在本质上与传统的感知机存在显著差异(这种约束条件确保了模型具有唯一的全局最优解,并实现了结构化风险最小化的特性)。此外,在应用核技巧方面也具有显著优势。从而能够实现实质意义上的非线性分类任务。

支持向量机模型基于支持向量与超平面之间的距离作为核心要素,在学习过程中所遵循的学习策略旨在最大化间隔。为了实现这一目标,在优化最优解的过程中所采用的具体算法会根据待分类数据集的线性特性判断是否需要借助核技巧来进行非线性的特征提取。总体而言,在这个过程中所涉及的具体步骤等价于解决凸二次规划问题,并与正则化 hinge loss 的最小化相一致。

0x1:适用场景

支持向量机(SVM)理论不仅适用于两类分类问题,在处理异常值检测方面也可实现无监督学习(one-class SVM)

0x2: 模型特点

复制代码
    //www.cnblogs.com/LittleHann/p/5717892.html

0x3: 学习策略

分离超平面 -> 硬/软间隔最小化策略;

核技巧

0x4:学习算法

序列最小最优化算法(SMO)

8. 提升方法

提升(boosting)是一种广泛应用于统计学领域的核心方法,在解决分类问题时通过动态调整训练样本的权重分布逐步构建并优化多个弱分类器最终形成一个强而有力的整体模型以提升预测准确性

0x1:适用场景

提升方法论可以用于二类分类,也可以用在回归拟合问题中

0x2: 模型特点

复制代码
    //www.cnblogs.com/LittleHann/p/7512397.html

0x3: 学习策略

最小化叠加型模型的指数损失,此外还可以采用MSE损失和一般化损失函数,在这种情况下其优化过程会发生相应调整

0x4:学习算法

前向分布加法算法(forward stagewise algorithm)

9. EM算法

Expectation Maximization (EM) algorithm is an iterative algorithm formulated by Dempster, Laird, and Rubin in 1977. It is designed to estimate parameters in probabilistic models that include hidden variables. The method specifically targets maximum likelihood estimation or maximum a posteriori estimation for these models. Each iteration consists of two steps: the Expectation step (E-step) and the Maximization step (M-step). The former involves calculating the expected value of the log-likelihood function with respect to the hidden variables, while the latter seeks to maximize this expectation. Hence, this algorithm is also referred to as the EM algorithm.

0x1:适用场景

在包含隐变量的概率模型中,进行参数估计。

0x2: 模型特点

复制代码
    //www.cnblogs.com/LittleHann/p/7565525.html//www.cnblogs.com/LittleHann/p/8446491.html

0x3: 学习策略

E(极大似然估计)、M(极大后验概率估计)交替进行

0x4:学习算法

迭代算法

10. HMM(隐马尔可夫模型)

该概率模型主要用于处理时间序列数据,并通过一个隐藏的马尔可夫链来隐含地生成不可观察的状态序列。随后,每个状态根据自身的特性产生相应的观察结果从而形成可见的状态序列

0x1:适用场景

  • 解析问题情境(如语音编码过程)
  • 标注任务(识别隐藏状态序列)
  • 计算发生概率(进行概率预测)

0x2: 模型特点

复制代码
    //www.cnblogs.com/LittleHann/p/7609060.html

观测序列与状态序列的联合概率分布模型

0x3: 学习策略

极大似然估计、极大后验概率估计

0x4:学习算法

概率计算公式、以及EM算法

****************************************************************************************************Copyright (c) 2017 LittleHann All rights reserved****************************************************************************************************

全部评论 (0)

还没有任何评论哟~