HCIE:第四章聚类与降维问题建模(学习笔记)

一、聚类算法

(一)基本概念

无监督学习概念:是指在未加标签的数据中,根据数据之间本身的属性特征和关联性对数据进行区分,相似相近或关联性强的数据放在一起,而不相似不相近、关联性不强的数据不放在一起。最常用的场景:部分降维算法、聚类算法和关联算法。

聚类分析两个基本问题:性能度量、距离计算

性能度量:通过某种性能度量对聚类结果的好坏进行评估。分为外部指标和内部指标两类。

距离计算:欧氏距离(欧几里得距离)和余弦相似度,欧氏距离会受指标不同单位刻度影响需要先对数据进行标准化;余弦相似度不会受指标刻度影响,在[-1,1]区间值越大差异越小。

聚类算法应用场景:其他分析任务的前置过程、离群点检测、用户画像构建、业务推荐精准营销。

(二)基于原型(划分)聚类(partitioning methods)

原型:样本空间中具有代表性的点

(1)K-Means聚类算法

算法思想:输入聚类个数K和数据集(n个数据对象),将n个数据对象划分为K个聚类,最终满足:同一聚类中对象相似度高,不同聚类中对象相似度较小。

执行步骤:选取K个数据对象作为初始中心(质心),计算样本数据与中心的欧氏距离,按照距离最近分类,每类中均值作为心中心计算目标函数,判断聚类中心和目标函数是否改变,若不变则输出结果,若变则继续重新计算迭代。

K值确定的方法:人工指定、均方根、枚举法、手肘法(Elbow)、层次聚类法。

K-Means聚类优缺点:

    优点:简单易于理解运算速度快、对与大数据集保持可伸缩性和高效性、当簇接近高斯分布时效果较号。

    缺点:局部最优容易受初始质心影响、K值事先给定其选择难以估计、只能应用连续性数据、数据两非常大时算法性能(时间和计算资源)开销较大、对噪声和孤立点数据敏感。类的形状不够灵活拟合结果与实际相差较大精度有限;应用中缺少鲁棒性。

使用方法:利用python调用库sklearn中的cluster子模块,该模板包含常用聚类算法模型,如:K- Means,DBSCAN等。

(2)K-Mediods算法

算法思想:随机算去一组样本作为中心点集,每个中心点对应一个簇,计算各样本点到各中心点的距离,将样本点放入距离中心点最短的那个簇中,计算各簇中距簇内各样本点距离绝对误差最先的点作为新的中心点,若新中心点集与原来的相同则终止,如果不完全相同则重新计算。

K-Mediods与K-Means区别:

    质心计算方式:K-Means质心可以是直接计算均值(样本中可能不存在),K-Mediods质心必须是某些样本点的值;

    质心计算复杂度:K-mediods需要计算每个簇任两点之间的距离,再对每个距离进行比较获取新的质心,计算复杂度增加,运行速度会较慢。

    K-Mediods可以避免数据中的异常值带来的影响、稳定性更高执行速度变慢(小样本稳定性高,大数据集速度变慢)。

    若数据集本身不存在特别多异常值,也不需要使用K-Mediods替代K-Means。  

(3)GMM(高斯混合模型)

对K-Means模型的优化,试图找到多维高斯模型改了分布的混合表示,从而拟合出任意形状的数据分布。

算法过程:使用EM算法进行迭代,选择位置和初始形状,循环直至收敛;E对于每个点,为每个点分别计算由该混合模型内的每个分量生成的概率。M调整模型参数以最大化模型生成这些参数的可能性。该算法保障该过程内的参数总会收敛到一个局部最优解。

算法应用场景:风控领域应用,例如反欺诈中欺诈样本抓取、模型迭代中幸存者偏差等。

K-Means与GMM对比:

相同点:可用于聚类的算法、需要制定K值、使用EM算法求解、只能收敛域局部最优;

GMM相比于K-Means优点:给出一个样本属于某类的概率、用于概率密度的估计、用于生成新样本点。

(三)基于层次聚类(hierarchical methods)

层次聚类法试图在不同层次对数据集进行划分,从而形成树形的聚类结构,数据集划分可采用“自下向上”的聚合策略或者“自顶向下”的分拆策略。树根用友所有样本的唯一聚类,叶子是仅有一个样本的聚类。层次之间分割具有嵌套的关系,优点不需要输入参数,缺点终止条件必须具体指定。

典型层次聚类算法有:AGNES算法、BIRCH算法、CURE算法等。

基本概念:两个簇之间的距离判断。

    最小距离:定义簇的邻近度为不同两个簇的两个最近点之间的距离,单链接

    最大距离:定义簇的邻近度为不同两个簇的两个最远的点之间的距离,全链接

    平均距离:定义簇的邻近度为取自两个不同簇的所有店对邻近度的平均值,均链接

    方差:所有聚类内的平方差总和,Ward

(1)AGNES(Agglomerative  NESting)算法

自底向上聚合策略的层次聚类算法,最初将每个对象作为一个簇,根据某些准则一步步合并,使用单链接或者其他方法表示距离,两个簇间的相似度由不同簇中距离最近的点对的相似度确定。当两个簇最近距离超过用户给定的阈值时聚类过程终止;聚类合并过程反复进行直到所有对象最终满足簇数据。

AGNES优缺点:优点:适用于任意形状和任意属性的数据集、灵活控制不同层次的聚类力度、强聚类能力;缺点:大大延长算法执行时间、不能回溯处理。

(2)BIRCH算法(平衡迭代削减聚类法)

核心思想:用一个聚类特征3元组表示一个簇的有关信息,从而使一簇点的表示可用对应的聚类特征而不必用具体的一组点来表示。通过构造满足分支因子和簇直径限制的聚类特征树来求聚类。

3元组包含:数据点个数、数据点特征之和、数据点特征的平方和

分支因子:规定了树的每个节点的样本个数

簇直径:体现一类点的距离范围

BIRCH算法通过聚类特征可以方便的进行中心、半径、直径及类内、类间距离的运算。聚类特征树的构建过程是动态的,可以随时根据新的数据点对树进行重构,适合大规模数据集。

算法过程:第一步通过扫描数据建立聚类特征树,第二部采用某个算法对聚类特征树的叶节点进行聚类。

BIRCH算法优缺点:优点一次扫描就进行比较好的聚类;缺点要求是球形聚类,因为CF树存储的都是半径类的数据,都是球形才适合。

计算解析:聚类特征树可以动态构造,不要求所有数据读入内存,可逐个读入,可通过改变类直径修改特征树大小,控制其占内存容量。算法通过一次扫描就可以进行较好的聚类,因此该算法适于大数据集。I/O花费与数据量成线性关系。算法只适用于数据的分布呈凸形及球形的情况,并且由于BIRCH算法需提供正确的聚类个数和簇直径限制,对不可视的高维数据不可行。

(3)CURE(Clustering Using REpresentatives)算法(使用代表点的聚类法)

该算法先把每个数据点看成一类,然后合并距离最近的类直至类的个数为要求的个数为止。从每个类中抽取固定数量、分布较好的点作为此类的代表点,并将这些代表点乘以一个适当的收缩因子,使它们更加靠近类中心点。代表点的收缩特性可以调整模型匹配那些非球形的场景,而且收缩因子的使用可以减少噪音对聚类的影响。

算法步骤:从源数据对象中抽取1个随机样本S,将样本S分割成一组划分,对每个划分局部聚类,通过随机样本剔除孤立点,如果一个类增长缓慢就去除它,对局部类进行聚类,落在每个新形成的类中的代表点根据用户定义的一个收缩因子收缩或向类中心移动。这些点代表和捕捉到了类的形状。用相应的类标签来标记数据。

CURE特点:属于凝聚层次聚类、适合非球形几何形状、对孤立点的处理更加健壮、识别异常值/离群点、适应大规模数据。

CURE优点:能够处理非球形分布的应用场景,同时采用随机抽样和分区方式提高算法执行效率。可以发现复杂空间的簇、受噪点影响小

CURE缺点:参数较多(采样的大小、聚类的个数、收缩的比例等)、抽样有误差、难以发现形状非常复杂的空间簇对空间数据密度差异敏感、当数据量剧增时效率不能满足需求。

(四)基于密度聚类(density-based methods)

密度聚类是通过聚类的簇是否紧密相连来片段样本点十分属于一个簇

(1)DBSCAN(具有噪声的基于密度聚类方法)

DBSCAN算法将数据点分为三类:

    核心点:在半径𝜀内含有超过min_samples数目的点。

    边界点:在半径𝜀内的数量小于min_samples,但是落在核心点的邻域内的点。

    噪音点:既不是核心点也不是边界点的点。

DBSCAN优缺点:

    优点:可解决数据分布特殊(非凸、互相包络、长条形)的情况;对噪声不敏感速度快,不需要制定簇的个数、可适用于较大数据集;在邻域参数给定的情况下结果是确定的,只要数据进入算法的顺序不变,与初始值无关。

    缺点:簇之间密度差距过大时效果不好;数据集较大时消耗内存;对高维数据距离的计算比较麻烦,造成维数灾难。

使用方法:sklearn库中的sklearn.cluster.DBSCAN方法。

  主要参数:eps:两个样本被看作邻居节点的最大距离。min_sanples:最小样本数量。metric:距离计算方式,其中euclidean为欧式距离计算。

(2)OPTICS(Ordering Points to identify the clustering structure)算法

对点排序以此来确定簇结构,将eps从单个值放宽到范围值,对半径eps不再敏感,只要确定minpts的值,半径eps的轻微变化并不会影响聚类结果。OPTICS并不显示产生聚类粗,而是生成一个增广簇排序,这个排序代表个样本点基于密度的聚类结构,从排序中可以得到基于任何参数eps和minpts的DBSCAN算法的聚类结果。

使用方法:sklearn库中的sklearn.cluster.OPTICS方法,主要参数如下:

    min_samples:int > 1 or float 0~1 (default=5),一个点被视为核心点的邻域样本数。上下陡峭地区不能有超过min_samples连续的非陡峭点。

    max_eps:float,(default=np.inf),两个样本之间的最大距离,其中一个被视为另一个样本的邻域。默认值np.inf将识别所有规模的聚类;减少max_eps会缩短运行时间。

(五)谱聚类(spectral clustering)

谱聚类主要思想:将所有数据看作空间中的点,这些点可用边连接起来,距离较远的两点之间边权重值较低,距离较近的则高,通过对所有数据点组成的图进行切图,让切图后不同的子图间边权重和尽可能低,子图内边权重和尽可能高,从而达到聚类目的。

特点:对数据分布适应性更强、聚类效果优秀、聚类计算量小、实现不复杂。

算法流程:谱聚类主要的注意点为相似矩阵的生成方式(高斯核距离的全连接方式),切图的方式(Ncut)以及最后的聚类方式(K-means)。

优缺点:

    优点:聚类类别较小效果好,类别多不建议使用;使用降维技术更适用于高维数据;处理系数数据的聚类很有效;建立在谱图理论基础上,具有能在任意形状的样本空间上聚类且收敛域全局最优解。

    缺点:对相似度图的改变和聚类参数的选择非常敏感;适用于均衡分类问题,即各簇之间点的个数相差不大。

二、降维算法

(一)基本概念

降维是对事物的特征进行压缩和筛选,采用某种映射方法,将原高维空间中的数据点映射到低维空间。本质是学习一个映射函数f:x->y,其中x是原始数据点的表达,目前多使用向量表达,y是数据点映射后的地维向量表达,通常y的维度小于x,映射函数也可能是显式的或隐式的、线性的或非线性的。

常见降维方法:

SVD(奇异值分解)、PCA(主成分分析)、LDA(线性判别分析)、LLE(局部线性嵌入)

(二)线性降维

(1)SVD(Singular Value Decomposition)奇异值分解

原理:简单,仅涉及简单的矩阵线性变换知识,通过SVD分解获取了要研究的矩阵A的重要性质,一个大的复杂的矩阵A可以用三个小的矩阵(U、D、V)相乘来表示,小矩阵描述的是矩阵A的重要特性

性质:奇异值的减少特别的快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上的比例,即可以用最大的k个的奇异值和对应的左右奇异向量来近似描述矩阵A,这样矩阵A的信息量就被极大的压缩和去除噪声,也为后续大规模的计算提高了效率。

优缺点:可以有效处理数据噪音,三个矩阵也有相关物理含义,缺点:分解出的矩阵可解释性差计算量大

应用:降维算法中的特征分解、推荐系统、自然语言处理等、PCA降维方法的基础;可以广泛地用来求解最小二乘问题,正则化问题,低秩逼近问题,数据压缩问题,文本处理中的分类问题。

计算效率问题:计算复杂度,是一个O(N^3)的算法,需要并行计算;计算开销,在解大规模的矩阵的时候,一般使用迭代的方法,当矩阵的规模很大时(比如说维度过亿),迭代的次数也可能上亿次。

(2)PCA(Principal Component Analysis,主成分分析)

思想:将n维特征映射到K维上(K<n),k维是全新的正交特征,k维特征称为主成分,是重新构造出来的k维特征,而不是简单地从n维特征中去除其余n-k维特征(这也是与特征选择特征子集的方法的区别)。

优缺点:

优点:以方差衡量信息的无监督学习,不受样本标签限制;各主成分直接正交,可消除原始数据成分间的相互影响;计算方法简单;减少指标选择的工作量

缺点:解释含义具有一定模糊性不如原始样本特征的解释性强;方差小的非主成分可能含有对样本差异重要信息丢弃可能对后续处理有影响。

使用方法:sklearn库中,使用sklearn.decomposition.PCA,主要参数如下:

n_components:指定主成分的个数,即降维后数据的维度。

copy:在运行算法时,是否将原始训练数据复制一份。等于True表示在原始数据的副本上进行运算,原始训练数据的值不会有任何改变;等于False在原始数据上进行降维计算,原始训练数据的值会改。

Whiten:白化,使得每个特征具有相同的方差。

主要属性如下:

components_:降维后各主成分方向,并按照各主成分的方差值大小排序。

explained_variance_:降维后各主成分的方差值,方差值越大,越主要。

explained_variance_ratio_:降维后的各主成分的方差值占总方差值的比例,比例越大,则越主要。 singular_values_:奇异值分解得到的前n_components个中最大的奇异值。

(3)LDA(Linear Discriminant Analysis)

线性判别式分析,也叫Fisher线性判别,思想:投影后类内距离最小,类间距离最大。既可用来降维也可用来分类,有监督学习。

线性判别:将高维特征投影到低维的最优向量空间,以达到抽取分类信息和压缩特征空间维数的效果。

优缺点:

    优点:降维过程中可以使用类别的先验经验;在样本分类信息依赖均值而不是方差时比PCA算法较优。

    缺点:不适合对非高斯分布样本进行降维(PCA同样不适);最多降到类别数K-1的维数;在样本分类信息依赖方差不依赖均值时降维效果不好;可能过度拟合数据。

(三)非线性降维

(1)KPCA

KPCA利用核化的思想,将样本的空间映射到更高维度的空 间,再利用这个更高的维度空间进行线性降维。

算法流程:原始数据按列组成m行n列矩阵X,计算核矩阵,选的高斯镜像核函数中参数计算核矩阵K,修正核矩阵得到KL;求出协方差矩阵C,运用雅可比迭代方法计算KL特征值与特征向量;将特征向量按最优特征值大小从上到下按行排列成矩阵取前K列组成矩阵;通过施密特正交矩阵方法单位正交化特征向量得到P,Y=PX则为降维到K维后的数据。

(2)Isomap算法

ISOMAP是提供点之间的距离矩阵进行降维

算法流程:构建邻接图(方法一:指定半径阈值,半径内的点为邻近点;方法二:K邻近,在邻近点之间基于欧式距离构建一个邻接图);计算样本点测地距离举止,本质是计算样本点之间最段路径(Floyd-Warshall或者Dijkstra算法),通过MDS算法对测地距离矩阵进行降维。

优缺点:

    优点:利用流形上的测地线距离来代替欧氏距离,可以较好的保留数据的空间结构。

    缺点:拓扑不稳定性;若产生短环路测会严重影响其执行;并且对流行具有一定的限制要求,若流行不是凸的则会发生变形。若有空洞出现在流形上则也不能解决。

(3)LLE

算法思想:流形学习的一种,关注降维时保持样本局部的线性特征的方法。将高维流形分成很多小块,每一小块用平面代替,在低维中重新拼合起来,保留个点之间的拓扑关系不变。假设数据在较小的局部是线性的。

算法优缺点:

    优点:可以学习任意维的局部线性的低维流形;算法归结为系数矩阵特征分解,计算复杂度相对较小,实现容易;

    缺点:所学习的流形只能是不闭合的,样本集是稠密均匀的;对最近邻样本数的选择敏感,不同的最近邻数对最后的降维结构有很大影响。

(4)特征选择与降维的区别

解决过拟合问题;

为了使数据维度降小,但是本质完全不同:降维本质上是从一个维度空间映射到另一个维度空间,特征选择是单纯从提取到的所有特征中选择部分特征作为训练集特征;

特征选择是只从已有的特征集合中按照某一分类准则选出一组子特征集和作为降维的分类特征使用,经验上一般先进行特征选择再进行降维。

  • 25
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值