当前位置:首页 > 工业控制 > 工业控制
[导读]聚类是一种将数据点按一定规则分群的机器学习技术。给定一组数据点,我们可以使用聚类算法将每个数据点分类到一个特定的簇中。

聚类是一种将数据点按一定规则分群的机器学习技术。

给定一组数据点,我们可以使用聚类算法将每个数据点分类到一个特定的簇中。

理论上,属于同一类的数据点应具有相似的属性或特征,而不同类中的数据点应具有差异很大的属性或特征。

聚类属于无监督学习中的一种方法,也是一种在许多领域中用于统计数据分析的常用技术。

聚类算法在初学者,工作岗位,都是很常见的算法之一。 聚类算法的重要性不言而喻,

今天拿出最常见的 10 种聚类算法和大家聊聊~

K-means:这是最常见的聚类算法之一,用于将数据分成预定义数量的簇。

层次聚类:通过构建数据点之间的层次结构来进行聚类,可以是自底向上的凝聚方法或自顶向下的分裂方法。

DBSCAN:一种基于密度的聚类算法,能够识别任意形状的簇,同时对噪声和离群点具有较好的鲁棒性。

谱聚类:使用数据的相似性矩阵来进行聚类,特别适用于复杂形状的数据集。

高斯混合模型:是一种基于概率模型的聚类方法,适用于估计子群体的分布。

模糊C-means:与K-means相似,但允许一个数据点属于多个簇,每个簇都有一定的隶属度或概率。

K-medoids:与K-means类似,但使用数据点(medoids)而不是均值作为簇的中心。

Mean Shift:通过迭代地更新候选簇中心点来寻找数据点密度最高的区域。

OPTICS:一种基于密度的聚类算法,类似于DBSCAN,但对不同密度的数据集表现更好。

BIRCH:专为大型数据集设计的一种层次聚类方法。

这些聚类算法各有优缺点,适用于不同类型的数据和不同的应用场景。选择合适的聚类算法通常取决于具体的需求、数据的特性和计算资源。

2、基于密度的聚类算法

基于密度的聚类算法最大的优点在于无需定义类的数量,其次可以识别出局外点和噪声点、并且可以对任意形状的数据进行聚类。DBSCAN同样是基于密度的聚类算法,但其原理却与均值漂移大不相同:首先从没有被遍历的任一点开始,利用邻域距离epsilon来获取周围点;如果邻域内点的数量满足阈值则此点成为核心点并以此开始新一类的聚类;其邻域内的所有点也属于同一类,将所有的邻域内点以epsilon为半径进行步骤二的计算;重复步骤二、三直到变量完所有核心点的邻域点;此类聚类完成,同时又以任意未遍历点开始步骤一到四直到所有数据点都被处理;最终每个数据点都有自己的归属类别或者属于噪声。

3、K均值聚类

这一最著名的聚类算法主要基于数据点之间的均值和与聚类中心的聚类迭代而成。它主要的优点是十分的高效,由于只需要计算数据点与剧类中心的距离,其计算复杂度只有O(n)。其工作原理主要分为以下四步:首先我们需要预先给定聚类的数目同时随机初始化聚类中心。我们可以初略的观察数据并给出较为准确的聚类数目;每一个数据点通过计算与聚类中心的距离了来分类到最邻近的一类中;根据分类结果,利用分类后的数据点重新计算聚类中心;重复步骤二三直到聚类中心不再变化。

4、凝聚层次聚类

层次聚类法主要有自顶向下和自底向上两种方式。其中自底向上的方式,最初将每个点看做是独立的类别,随后通过一步步的凝聚最后形成独立的一大类,并包含所有的数据点。这会形成一个树形结构,并在这一过程中形成聚类。

5、均值漂移算法

这是一种基于滑动窗口的均值算法,用于寻找数据点中密度最大的区域。其目标是找出每一个类的中心点,并通过计算滑窗内点的均值更新滑窗的中心点。最终消除临近重复值的影响并形成中心点,找到其对应的类别。其工作原理主要是以下几点:首先以随机选取的点为圆心r为半径做一个圆形的滑窗。其目标是找出数据点中密度最高点并作为中心;在每个迭代后滑动窗口的中心将为想着较高密度的方向移动;连续移动,直到任何方向的移动都不能增加滑窗中点的数量,此时滑窗收敛;将上述步骤在多个滑窗上进行以覆盖所有的点。当过个滑窗收敛重叠时,其经过的点将会通过其滑窗聚类为一个类。

聚类算法

任务:将数据集中的样本划分成若干个通常不相交的子集,对特征空间的一种划分。

性能度量:类内相似度高,类间相似度低。两大类:1.有参考标签,外部指标;2.无参照,内部指标。

距离计算:非负性,同一性(与自身距离为0),对称性,直递性(三角不等式)。包括欧式距离(二范数),曼哈顿距离(一范数)等等。

1、KNN

k近邻(KNN)是一种基本分类与回归方法。

其思路如下:给一个训练数据集和一个新的实例,在训练数据集中找出与这个新实例最近的k 个训练实例,然后统计最近的k 个训练实例中所属类别计数最多的那个类,就是新实例的类。其流程如下所示:

计算训练样本和测试样本中每个样本点的距离(常见的距离度量有欧式距离,马氏距离等);

对上面所有的距离值进行排序;

选前k 个最小距离的样本;

根据这k 个样本的标签进行投票,得到最后的分类类别;

KNN的特殊情况是k =1 的情况,称为最近邻算法。对输入的实例点(特征向量)x ,最近邻法将训练数据集中与x 最近邻点的类作为其类别。

(1)一般k 会取一个较小的值,然后用过交叉验证来确定;

(2)距离度量:一般是欧式距离(二范数),或者曼哈顿距离(一范数)

(3)回归问题:取K个最近样本的平均,或者使用加权平均。

算法的优点:(1)思想简单,理论成熟,既可以用来做分类也可以用来做回归;(2)可用于非线性分类;(3)训练时间复杂度为O(n);(4)准确度高,对数据没有假设,对outlier不敏感。

缺点:计算量大;样本不平衡问题(即有些类别的样本数量很多,而其它样本的数量很少);需要大量的内存;

需要考虑问题:(1)KNN的计算成本很高;(2)所有特征应该标准化数量级,否则数量级大的特征在计算距离上会有偏移;(3)在进行KNN前预处理数据,例如去除异常值,噪音等。

KD树是一个二叉树,表示对K维空间的一个划分,可以进行快速检索(那KNN计算的时候不需要对全样本进行距离的计算了)。KD树更加适用于实例数量远大于空间维度的KNN搜索,如果实例的空间维度与实例个数差不多时,它的效率基于等于线性扫描。

2、K-Means

K-Means算法是无监督的聚类算法,它实现起来比较简单,聚类效果也不错,因此应用很广泛。

基本思想:对于给定的样本集,按照样本之间的距离大小,将样本集划分为K个簇。让簇内的点尽量紧密的连在一起,而让簇间的距离尽量的大。

算法步骤:1.随机选择k个样本作为初始均值向量;2.计算样本到各均值向量的距离,把它划到距离最小的簇;3.计算新的均值向量;4.迭代,直至均值向量未更新或到达最大次数。

时间复杂度:O(tkmn),其中,t为迭代次数,k为簇的数目,m为记录数,n为维数;

空间复杂度:O((m+k)n),其中,k为簇的数目,m为记录数,n为维数。

优点:原理比较简单,实现也是很容易,收敛速度快;聚类效果较优;算法的可解释度比较强;主要需要调参的参数仅仅是簇数k。

缺点: 1、聚类中心的个数K 需要事先给定,这个 K 值的选定是非常难以估计的。很多时候,事先并不知道给定的数据集应该分成多少个类别才最合适;一般通过交叉验证确定;

2、不同的初始聚类中心可能导致完全不同的聚类结果。算法速度依赖于初始化的好坏,初始质点距离不能太近;

3、如果各隐含类别的数据不平衡,比如各隐含类别的数据量严重失衡,或者各隐含类别的方差不同,则聚类效果不佳;

4、该方法不适于发现非凸面形状的簇或大小差别很大的簇,对于不是凸的数据集比较难收敛;

5、对噪音和异常点比较的敏感。

6、需样本存在均值(限定数据种类)。

7、采用迭代方法,得到的结果只是局部最优。

K-Means算法改进:

1、K-Means++算法就是对K-Means随机初始化质心的方法的优化。

K-Means++的对于初始化质心的优化策略也很简单,如下:

a) 从输入的数据点集合中随机选择一个点作为第一个聚类中心

b) 对于数据集中的每一个点,计算它与已选择的聚类中心中最近聚类中心的距离

c) 选择一个新的数据点作为新的聚类中心,选择的原则是:距离较大的点,被选取作为聚类中心的概率较大

d) 重复b和c直到选择出k个聚类质心

e) 利用这k个质心来作为初始化质心去运行标准的K-Means算法。

2、二分-K均值是为了解决k-均值的用户自定义输入簇值k所延伸出来的自己判断k数目,针对初始聚类中心选择问题,其基本思路是:

为了得到k个簇,将所有点的集合分裂成两个簇,从这些簇中选取一个继续分裂,如此下去,直到产生k个簇。

具体描述:比如要分成5个组,第一次分裂产生2个组,然后从这2个组中选一个目标函数产生的误差比较大的,分裂这个组产生2个,这样加上开始那1个就有3个组了,然后再从这3个组里选一个分裂,产生4个组,重复此过程,产生5个组。这算是一中基本求精的思想。

二分k均值不太受初始化的困扰,因为它执行了多次二分试验并选取具有最小误差的试验结果,还因为每步只有两个质心。

3、大样本优化Mini Batch K-Means

也就是用样本集中的一部分的样本来做传统的K-Means,这样可以避免样本量太大时的计算难题,算法收敛速度大大加快。当然此时的代价就是我们的聚类的精确度也会有一些降低。一般来说这个降低的幅度在可以接受的范围之内。

在Mini Batch K-Means中,我们会选择一个合适的批样本大小batch size,我们仅仅用batch size个样本来做K-Means聚类。那么这batch size个样本怎么来的?一般是通过无放回的随机采样得到的。为了增加算法的准确性,我们一般会多跑几次Mini Batch K-Means算法,用得到不同的随机采样集来得到聚类簇,选择其中最优的聚类簇。

3、 层次聚类

步骤:1.先将数据集中的每个样本看作一个初始聚类簇;2.找到距离最近的两个聚类簇进行合并。

优点:无需目标函数,没有局部极小问题或是选择初始点的问题。缺点:计算代价大。

4、密度聚类

DBSCAN既可以适用于凸样本集,也可以适用于非凸样本集。找到几个由密度可达关系导出的最大的密度相连样本集合。即为我们最终聚类的一个类别,或者说一个簇。

基本思想:它任意选择一个没有类别的核心对象作为种子,然后找到所有这个核心对象能够密度可达的样本集合,即为一个聚类簇。接着继续选择另一个没有类别的核心对象去寻找密度可达的样本集合,这样就得到另一个聚类簇。一直运行到所有核心对象都有类别为止。

步骤:1、找到任意一个核心点,对该核心点进行扩充;2、扩充方法是寻找从该核心点出发的所有密度相连的数据点;3、遍历该核心的邻域内所有核心点,寻找与这些数据点密度相连的点。

优点:不需要确定要划分的聚类个数,聚类结果没有偏倚;抗噪声,在聚类的同时发现异常点,对数据集中的异常点不敏感;处理任意形状和大小的簇,相对的,K-Means之类的聚类算法一般只适用于凸数据集。

缺点:数据量大时内存消耗大,相比K-Means参数多一些;样本集的密度不均匀、聚类间距差相差很大时,聚类质量较差,这时用DBSCAN聚类一般不适合;

那么我们什么时候需要用DBSCAN来聚类呢?一般来说,如果数据集是稠密的,并且数据集不是凸的,那么用DBSCAN会比K-Means聚类效果好很多。如果数据集不是稠密的,则不推荐用DBSCAN来聚类。

无监督学习是机器学习技术中的一类,用于发现数据中的模式。本文介绍用Python进行无监督学习的几种聚类算法,包括 K-Means 聚类、分层聚类、 t-SNE聚类、 DBSCAN聚类等。

无监督学习是机器学习技术中的一类,用于发现数据中的模式。无监督算法的数据没有标注,这意味着只提供输入变量(X),没有相应的输出变量。在无监督学习中,算法自己去发现数据中有意义的结构。

Facebook首席AI科学家Yan Lecun解释说,无监督学习——即教机器自己学习,不需要明确地告诉它们所做的每一件事情是对还是错,是“真正的”AI的关键。

监督学习 VS 无监督学习

在监督学习中,系统试图从之前给出的例子中学习。反之,在无监督学习中,系统试图从给出的例子中直接找到模式。因此,如果数据集有标记,那么它是有监督问题,如果数据集无标记,那么它是一个无监督问题。

如上图,左边是监督学习的例子; 我们使用回归技术来寻找特征之间的最佳拟合线。而在无监督学习中,输入是基于特征分离的,预测则取决于它属于哪个聚类(cluster)。

重要术语

特征(Feature) :用于进行预测的输入变量。

预测(Predictions) :当提供一个输入示例时,模型的输出。

示例(Example) :数据集的一行。一个示例包含一个或多个特征,可能有标签。

标签(Label) :特征的结果。

为无监督学习做准备

在本文中,我们使用 Iris数据集(鸢尾花卉数据集) 来进行我们的第一次预测。该数据集包含150条记录的一组数据,有5个属性——花瓣长度,花瓣宽度,萼片长度,萼片宽度和类别。三个类别分别是Iris Setosa(山鸢尾),Iris Virginica(维吉尼亚鸢尾)和Iris Versicolor(变色鸢尾)。对于我们的无监督算法,我们给出鸢尾花的这四个特征,并预测它属于哪一类。我们在Python中使用sklearn Library来加载Iris数据集,并使用matplotlib来进行数据可视化。以下是代码片段。

声明:该篇文章为本站原创,未经授权不予转载,侵权必究。
换一批
延伸阅读

业界应如何看待边缘人工智能?ST授权合作伙伴 MathWorks 公司的合作伙伴团队与ST 共同讨论了对边缘机器学习的看法,并与 STM32 社区分享了他们的设计经验。

关键字: AI 机器学习 处理器

双方的合作促成了尖端人工智能视觉解决方案,提高了效率、连通性和成本效益

关键字: 人工智能 智能家居 机器学习

【2024年4月24日,德国慕尼黑讯】英飞凌科技股份公司(FSE代码:IFX / OTCQX代码:IFNNY)发布全新PSOC™ Edge微控制器(MCU)系列的详细信息,该系列产品的设计针对机器学习(ML)应用进行了优...

关键字: 物联网 机器学习 MCU

TDK株式会社(东京证券交易所代码:6762)新近推出InvenSense SmartEdgeMLTM解决方案,这是一种先进的边缘机器学习解决方案,为用户提供了在可穿戴设备、可听戴设备、增强现实眼镜、物联网 (IoT)...

关键字: 机器学习 物联网 传感器

北京——2024年4月19日 亚马逊云科技宣布,Meta刚刚发布的两款Llama 3基础模型Llama 3 8B和Llama 3 70B现已在Amazon SageMaker JumpStart中提供。这两款模型是一系列...

关键字: 机器学习 基础模型

2024年4月18日 – 提供超丰富半导体和电子元器件™的业界知名新品引入 (NPI) 代理商贸泽电子 (Mouser Electronics) 很荣幸地宣布与Edge Impulse建立新的全球合作关系。Edge Im...

关键字: 机器学习 MCU CPU

北京——2024年4月18日 西门子中国和亚马逊云科技双方高层在西门子中国北京总部会晤,双方宣布签署战略合作协议,共同成立“联合创新团队”。基于亚马逊云科技在生成式AI领域的领先技术和服务,并结合西门子在工业领域的深厚积...

关键字: 生成式AI 机器学习 大数据

机器学习作为人工智能领域的重要组成部分,其过程涉及到多个核心环节。本文将详细阐述机器学习的四个主要步骤:数据准备、模型选择、模型训练与评估,以及模型部署与应用,以揭示机器学习从数据到应用的完整流程。

关键字: 数据 人工智能 机器学习

随着信息技术的迅猛发展和大数据时代的到来,机器学习成为了人工智能领域中的核心技术之一。机器学习是通过模拟人类学习行为,使计算机系统能够从数据中自动发现规律、提取特征并进行预测和决策的过程。它在诸多领域取得了广泛的应用,包...

关键字: 计算机 人工智能 机器学习

机器学习算法是人工智能领域中的核心技术之一,它通过对大量数据进行学习,自动发现数据中的规律和模式,从而实现对新数据的预测、分类、聚类等任务。本文将深入探讨机器学习算法的基本过程,包括数据准备、模型选择、训练与评估等关键步...

关键字: 数据 人工智能 机器学习
关闭