聚类分析

摘自《数据挖掘导论》

聚类分析仅根据在数据中发现的描述对象及其关系的信息,将数据对象分组。其目标是,组内对象相互之间是相似的(相关的),而不同组之间的对象是不同的(不相关的)。组间的相似(同性质)越大,组建的差异越大,聚类就越好。

不同的簇类型如下(也是聚类算法的依据):



主要注意根据距离和密度的聚类。

常见的聚类算法包括K均值、凝聚的层次聚类、DBSCAN。

K均值先假设集合有K个簇,开始时随机放置K个质心,将待分类数值归于离它最近的质心,然后不断移动质心,最后使得误差最小。K均值计算过程如下:





由于K均值的质心开始时是随机放置的,所以结果有一定的随机性,可能不是全局最优,所以要多次尝试然后选择最优解。还有其他方法来减少随机性(例如二分K均值)。

K均值的有点事计算量小,理解简单,缺点是对于非球星、不同密度的簇聚类效果不好。

凝聚层次聚类

凝聚层次聚类可以分为凝聚和分裂两种过程,他们互为逆过程。

凝聚聚类开始将每个个体当做一个簇,每次操作将距离最近的两个簇合并为一个簇,只到集合只剩一个簇。





DBCAN

DBSCAN是一个根据密度的聚类算法。

DBSCAN首先确定有限半径,然后划分核心点、边缘点和噪音点:




DBSCAN的算法可以描述为:




DBSCAN是有效的根据密度的聚类算法,能够有效划分任意形状和大小的簇。缺点是有效半径需要估算,对于簇密度变化太大以及高维数据,簇密度较困难。

猜你喜欢

转载自onmyway-1985.iteye.com/blog/2088659