机器学习概论3——回归、聚类问题
机器学习概论系列主要整理机器学习方面的一些理论知识,而具体实现则主要在PyTorch学习笔记中记录。本篇是机器学习学习笔记系列第三篇,本篇在观看了读芯术AI网课后整理而成。
4.3.2 回归问题
回归分析用于预测输入变量(自变量)和输出变量(因变量)之间的关系,特别是当输入变量的值发生变化时,输出变量值也随之发生变化。直观来说回归问题等价于函数拟合,选择一条函数曲线使其很好地拟合已知数据且很好地预测未知数据
- 分类
4.3.2.1 线性回归
- 定义
假设特征和结果满足线性关系。线性回归意味着可以将输入项分别乘以一些常量,再加某个常量得到输出y=ax+b - 流程
-
线性回归扩展
线性回归扩展算法用简单的基函数φ(x)替换输入变量x,这样把线性拟合形式扩展到了固定费线性函数的线性组合
其公式如下图所示
如下图所示为在某参数下线性回归扩展的函数图
可以看到,当M=9时(右下图),红色曲线能穿过每一个点,看上去性能很好,但实际上其与真实分布(绿色曲线)差距较大,因此实际使用效果并没有那么好,这可以称之为过拟合问题
解决过拟合问题的方法
-
岭回归
应用结构风险最小化的模型选择策略,在经验风险最小化的基础上加入正则化因子。当正则化因子选择为模型参数的二范数的时候,整个回归的方法就叫做岭回归
4.3.1.2 贝叶斯分类
-
定义
基于贝叶斯定理和属性特征条件独立性的一种分类方法
贝叶斯流派的核心:Proability theory is nothing but common sense reduced to calculation.概率论只不过是把常识用数学公式表达出来——拉普拉斯
-
处理流程:
1、计算先验概率
2、为每个属性计算条件概率
3、计算后验概率,并得出分类结果 -
优点
1、算法逻辑简单,易于实现
2、分类过程中时空开销小 -
缺点
理论上,朴素贝叶斯模型与其他分类方法相比具有最小的误差率,但是实际上并不如此,因为朴素贝叶斯模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,在属性个数比较多或者属性之间相关性较大时,分类效果不好 -
优化
按照贝叶斯公式,如果分子中某一个先验概率或条件概率概率为0,则计算得到的后验概率必为0,为了防止这种情况,可以使用拉普拉斯修正
4.3.1.3 支持向量机SVM
- 定义
支持向量机(Support Vector Machine , SVM)是一种有监督学习方法,主要思想是建立一个最优决策超平面,使得该平面两侧距离该平面最近的两类样本之间的距离最大化,从而对分类问题提供良好的泛化能力。
以下可用一个故事来解释SVM:
- SVM线性可分分类方法
SVM有线性可分支持向量机与软间隔最大化,和线性可分支持向量机与硬间隔最大化两种分类方法。
线性可分支持向量机与软间隔最大化:存在一些数据分类错误,但通过惩罚系数的引入,允许部分错误的存在
线性可分支持向量机与硬间隔最大化:完全线性可分,不存在有数据分类错误
- 非线性支持向量机与核函数(kernelling)
数据在二维空间中看起来是线性不可分的,但可以通过核函数进行映射,将二维的数据映射到三维空间中,从而使用超平面分开数据,使其线性可分。如下图所示为映射示意图
核函数有以下四种:
- 优点
1、相比于其他训练分类算法不需要过多样本,且由于SVM引入了核函数,所以SVM可以处理高维样本
2、结构风险小。这种风险是指分类器对问题真是模型的逼近与问题真实解之间的累积误差
3、非线性。SVM擅长应付样本数据线性不可分的情况,主要通过松弛变量(惩罚变量)和核函数技术来实现,这也是SVM的精髓所在
4.3.1.4 逻辑回归
逻辑回归可以处理二元分类以及多元分类。首先逻辑回归构造广义的线性回归函数,然后使用sigmoid函数g(z)将回归值映射到离散类别。
- 二项逻辑回归模型
- 多项逻辑回归模型
- 使用sigmoid函数的理由
如下图为sigmoid函数曲线(左)及其对应的导函数曲线(右)
- 为什么逻辑回归性能较高
因为逻辑回归是最大熵模型的特殊情况(对数线性模型)。最大熵原理指出,对一个随机事件的概率分布进行预测时,我们的预测应当满足全部已知条件,而对未知情况不要做任何主观假设(概率分布最均匀,预测的风险最小)
最大熵模型的特点:
1、形式上看,他非常简单,非常优美
2、效果上看,唯一一种既能满足各个信息源的限制条件,又能保证平滑性的模型。
3、但是他计算量巨大,在工程上实现方法的好坏决定了模型的实用与否
4.3.1.5 集成学习
-
定义
集成学习通过将多个弱分类器集成在一起,使他们共同完成学习任务,构建一个强分类器,“三个臭皮匠赛过诸葛亮”
严格意义上来说,集成学习不算一种机器学习算法,而更像是一种优化手段和策略,通常是结合多个简单的弱机器学习算法,去做更可靠的决策 -
理论基础
强可学习:比如一个学生做一套试卷拿了90+分
弱可学习:比如一个学生做一套试卷只拿了60+分
Schapire证明强可学习和弱可学习是等价的,比如一群60+分的学生按照给定方法做试卷,也能够达到90+分 -
两类集成方法
Bagging(bootstrap aggregating):基于数据随机重抽样的分类器构建方法。其利用bootstrap方法从整体数据集中采取有放回抽样得到N个数据集(如何采样?),然后在每个数据集上学习出一个模型(选择怎么样的弱分类器),最后利用N个模型的输出投票得到最后的预测结果
boosting(adaptive boosting的简称):基于错误提升分类器性能,通过集中关注被已有分类器分类错误的样本,构建新分类器。初始的分布应为等概分布,每次循环后提高错误样本的分布概率,分错的样本在训练集中所占权重增大,使得下一次循环的基分类器能够集中力量对这些错误样本进行判断;最后计算分类器的权重,识别率越高的基分类器权重越高,识别率越低的基分类器权重越低
bagging和boosting对比
都采用采样-学习-组合的方式,不同在于:
1、bagging中每个训练集互不相关,也就是每个基分类器互不相关,而boosting中训练集要再上一轮的结果上进行调整,也使得其不能并行计算
2、bagging中预测函数是均匀平等的,而boosting中预测函数是加权的 -
集成学习特点
优点:当前最先进的预测几乎都是用了算法集成,他比是用单个模型预测出来的结果要精确的多,在竞赛中得到了普遍应用。
缺点:需要大量的维护工作 -
代表算法
4.3.3 聚类问题
聚类问题是无监督学习的问题,算法思想是“物以类聚,人以群分”,聚类算法感知样本间的相似度,进行类别归纳,对新的输入进行输出预测,输出变量取有限个离散值
4.3.3.1. K-means
K-means(k-均值)聚类算法。算法思想是首先随机确定k个中心点作为聚类中心,然后把每个数据点分配给最近邻的中心点,分配完成后形成k个聚类,计算各个聚类的平均中心点,将其作为该聚类新的类中心点,然后重复迭代上述步骤直到分配过程不再产生变化
其算法流程如下所述
算法演示图如下图:
主要优缺点:
4.3.3.2 高斯混合模型
高斯混合模型指多个高斯分布函数的线性组合,是一个广泛使用的聚类算法,该方法使用了高斯分布作为参数模型
高斯分布:高斯分布有时候也被称为正态分布,是一种在自然界中大量存在的,最为常见的分布形式
其公式如下:
公式对应的函数图如下:
单高斯模型表现形式如下图
高斯混合模型:一个可以用来表示在总体分布中含有K个子分布的概率模型,换句话说,混合模型表示了观测数据在总体中的概率分布,他是一个由K个子分布组成的混合分布
其公式如下:
由两个高斯分布的高斯混合模型表现形式如下图
高斯混合模型求解:EM算法是一种迭代算法,用于含有隐变量的概率模型参数的最大似然估计。
4.3.3.3 K-means与高斯混合模型的比较
1、混合高斯和K-means很相似,相似点在于两者的分类受初始值影响;两者可能限于局部最优解;两者类别的个数都要靠猜测。混合高斯计算复杂度高于K-means
2、K-means属于硬聚类,要么属于这类,要么属于那类,而高斯混合模型属于混合式软聚类,一个样本可以有70%属于A,30%属于B
4.3.3.4 密度聚类
密度聚类:假设聚类结构能通过样本分布的紧密程度确定,算法从样本密度的角度来考差样本之间的可连接性,并基于可连接样本不断扩展聚类簇以获得最终的聚类效果
DBSCAN算法流程:
1、DBSCAN通过检查数据集中每个点的Eps邻域来搜索簇,如果点p的Eps邻域包含的点多余MinPts个,则创建一个以p为核心对象的簇;
2、然后,DBSCAN迭代地聚集从这些核心对象直接密度可达的对象,这个过程可能涉及一些密度可达簇的合并;
3、当没有新的点添加到任何簇时,该过程结束
4.3.3.5 层次聚类
层次聚类:试图在不同层次对数据集进行划分,从而形成树形的聚类结构。数据集的划分可采用“自底向上”的聚合策略,也可采用“自顶向下”的分拆策略
AGNES算法流程:
1、AGNES(agglomerative NESting)算法最初将每个对象作为一个簇,然后这些簇根据某些准则被一步步地合并,使用单链接方法
2、两个簇间的相似度由这两个不同簇中距离最近的数据点对的相似度来确定。此外当两个簇最近距离超过用户给定的阈值时聚类过程就会终止
3、聚类的合并过程反复进行直到所有的对象最终满足簇数据
4.3.3.6 谱聚类
谱聚类(Spectral Clustering,SC),是一种基于图论的聚类方法,将带权无向图划分为两个或两个以上的最优子图,使子图内部尽量相似,而子图间距离尽量距离较远,以达到常见的聚类的目的
谱聚类能够识别任意形状的样本空间且收敛于全局最优解,基本思想是利用样本数据的相似矩阵(拉普拉斯矩阵)进行特征分解后得到的特征向量进行聚类
优势:
1、、只需要待聚类点之间的相似度矩阵就可以做聚类
2、对于不规则的数据(离群点)不是那么敏感,主要体现在最小化图切割的公式中
3、K-means聚类算法比较适合于凸数据集(数据集内的任意两点之间的连线都在该数据集中,简单理解就是圆形),而谱聚类比较通用
未完待续…
目前已更新的机器学习概论系列的博客导航:
机器学习概论1——简介
机器学习概论2——分类问题
机器学习概论3——回归、聚类问题
机器学习概论4—神经网络简介