机器学习——聚类算法简单汇总

聚类是机器学习中典型的无监督学习,也是一个重要的数据挖掘方法。

基本原理:根据规则划分,把样本相似度高的聚在同一类,把样本相似度低的聚在同一类。使得组内相似性大,组间相似性小,也就是“高内聚,低耦合”。

应用:笔者本文里讲述的基于密度的聚类算法可以用于人脸识别、医学图像分割、疫情封控区、管控区的划分。而本文案例是一种基于密度聚类算法的空间聚类运用,可以运用在城市规划中,使用空间聚类可以分析各种服务设施的作用以及服务区域,以帮助城市到达最佳规划。

常见有五种聚类算法及其优缺点:

机器学习——聚类算法简单汇总_第1张图片

 

⑴ 基于空间划分的聚类算法 :

首先给定一个最终需要的聚类数目,在数据集中区域主观选取初始的聚类中心,通过更换质心为新的聚类中心的方法不断进行聚类的更新,直到数据集被划分为预先指定数目的聚类个数。该算法只需要满足"类内的点要都足够得近,类间的点要都足够得远"的目标效果,也即正是根据我们所说的"启发式算法"。

此方法原理最简单、空间复杂度和时间复杂度一般都很低但是聚类的效果却和初始参数是否正确选取是有很大的关系的,结果比较容易落入局部最优。对于噪声点和离群值不具有鲁棒性、非常的敏感且只适用于凸集。

(2)基于空间层次的聚类算法:

凝聚层次聚类算法是从底部往上进行运算的,将每一个数据库对象都单独划分作为其中某一个层次聚类簇,根据基于距离的计算方法将所有的相邻层次里的各个数据库对象都单独划分为同一个层次聚合簇,直到其全部被合并为其中某的一个簇或者全部达到算法所需设定好的聚合簇阈值范围后为止。分裂层次的聚类的方法是一种自由从顶向下进行的,将在一个数据库层域中存在的几乎所有的数据库对象的集合单独作为其中某的一个簇,再然后逐步的根据最大相异性原则来逐步对几乎所有的该库对象的簇集合逐个进行分解,直到最后使得每个数据库对象簇所集中起来的集合内只包含其中任意一个的数据库对象或达到算法所需设定的阈值后为止。凝聚层次聚类算法在和分裂层次聚类算法对于数据库层次树之间的关系的分割处理上不仅拥有了一种嵌套性关系,而且在整体结构层次上形象得形成了一种树状的结构。

此方法可以清晰的看到类与类之间的层次关系,对于初始的聚类簇个数也不需要提前确定,并且也可以生成不同形状的聚类簇。但容易出现链状聚类并且计算复杂度高。

(3) 基于空间网格的聚类算法:

基本原理就是通过先将任何一个数据空间集合划分为任意一个大小可至数百个的网格单元,将所有各个数据对象集合都可以映射到每同一个网格单元进行集中,并能以此方法计算并得到所有每个网格单元数据集的空间密度。根据预先设定计算好的网格密度阈值来判断每个网格单元之间是不是构成一个相对高密度的网格单元,合并把相邻的相对稠密度的两个网格单元划分归为另一类。

网格聚类算法的一大特色就是其计算速度快,无论数据量是多还是少,其计算速度都是一样的。因为他的计算速度不是由数据量决定而是由每一维的单元数决定的。网格结构更有利于数据并行化处理和数据增量快速更新,时间管理复杂度低。但聚类质量受网格划分的影响,对于低密度、不规则分布的数据库处理起来比较困难。

(4) 基于空间模型的聚类算法:

每一个数据簇算法在数据进行数据聚类处理操作前首先都会事先给出一个假定的数据簇来自的是某种特定的模型,然后再逐步找到基于这些特定数据簇的对于其所事先指定好的特定模型可进行的各种算法最佳拟合。主要算法有可以分为以下这两类:一类通常都是直接采用一种基于概率模型的计算方法,如COBWEB算法、GMM 算法。一类方法是指基于神经网络模型的方法,如 SOM算法。以基于概率模型分析的统计方法的研究比较多,区别之于一般常见所谓的"启发式算法"方法,其一个基本理论思想也是指同一类模型的所有数据均属于同一的概率分布。

此算法使得概率数据清晰并且可视化程度高。算法用户还可以直接或根据这些概率数据在未来对于感兴趣的事件所在的特定区域上做出拟合或预测。但我们需要注意的是避免使用大数据样本信息模型去进行错误地预测。对于非凸集、密度不同的数据处理困难。

(5) 基于密度的聚类算法:

通常这种情况条件下,密度聚类算法的核心思想就是判断样本点是否为核心点的过程,密度相似的样本为一个聚类,不断扩充聚类直到所有除去噪声点的数据点都被划分到某一个聚类中。本文重点所说的DBSCAN聚类算法,其一个很主要的思想点则是认为只要每一个临近的给定的区域簇内的有效密度样本数目仍未持续超过或其接近某一个密度阀值时则都能对系统继续的进行密度聚类,即对于其临近的给定时域簇中存在的每个有效密度样本数在其某一个临近于给定时间范围簇内的区域簇中就一定必须同时并且至少又要同时包含着某一个密度阈值。

此算法不需要预先设定需要聚类的个数,不用担心离群值和噪声点对于聚类结果的影响,因为它可以检测出噪声点和离群值且可以生成任意形状的簇。但它不能很好地得反映高维的数据,难以适应密度极不稳定均匀分布的数据集、对输入参数异常敏感。

你可能感兴趣的:(聚类分析,聚类,算法,机器学习)