所谓聚类分析,就是给定一个元素集合D,其中每个元素具有n个观测属性,对这些属性使用某种算法将D划分成K个子集,要求每个子集内部的元素之间相似度尽可能高,而不同子集的元素相似度尽可能低。聚类分析是一种无监督的观察式学习方法,在聚类前可以不知道类别甚至不用给定类别数量。目前聚类广泛应用于统计学、生物学、数据库技术和市场营销等领域。
聚类算法有很多种,如K-means(K均值聚类)、K中心聚类、密度聚类、谱系聚类、最大期望聚类等。这里我们重点介绍K-means聚类算法,该算法的基本思想是以空间中K个点为中心进行聚类,对最靠近它们的对象归类。通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果。K-means算法实现简单、计算速度快、原理易于理解、具有理想的聚类效果,因此该算法是公认的经典数据挖掘方法之一。
例如对于常见的二维数据集,设计K-means聚类方法,对80个二维数据点进行聚类分析。K-means算法的Python语言实现及处理过程如下:
如下图所示的80个二维样本数据集,存储为testSet文本文档。经过数据预处理和简单分析,得知该数据集共有4个类别,因而能确定聚类数K为4。
首先导入必要的模块: