聚类分析算法是一种非监督式学习算法,它旨在将数据集中的样本划分为若干个组或“簇”,使得同一个簇内的样本相似度较高,而不同簇之间的样本相似度较低。针对的是没有响应变量而仅有特征变量的数据集,其主要作用就是快速分类。虽然是非监督式学习算法,但聚类分析也有很多应用场景,比如电商平台系统对具有相似购买行为的用户进行聚类,针对划分好的客户类别,将某用户购买的产品在同一类别用户内进行推荐,实现精准促销;或者根据以往销售记录及其他特征对产品进行聚类,若某用户购买了一款产品,则继续向他推送同一类别的其他产品。我们讲解聚类分析算法的基本原理,并结合具体实例讲解该算法在Python中的实现与应用。
聚类分析方法:
划分聚类分析是一种将数据样本分配到预定义的、不重叠的组中的方法。它主要有两种形式:K均值聚类和K中位数聚类。
K均值聚类是一种流行的方法,它通过以下步骤实现:
- K中位数聚类与K均值类似,但使用中位数作为聚类中心,这使得它对异常值更加鲁棒。
- 在进行K均值聚类时,用户需要指定聚类的数量(K值)和参与聚类的特征变量(x维特征空间)。系统会根据这些特征变量将样本点分配到最近的聚类中心,形成初始的聚类。然后,通过迭代过程不断优化聚类中心的位置,直至满足停止条件。
- K均值聚类的优势在于其计算效率高,适合处理大规模数据集。然而,它要求用户预先指定聚类的数量,这可能限制了其在探索性数据分析中的应用。此外,K均值聚类对初始聚类中心的选择敏感,可能需要多次运行以找到稳定的聚类结果。
- 为了克服这些限制,可以采用一些策略,如使用K-Means++算法来初始化聚类中心,或者使用如肘部法则等方法来确定最佳的聚类数量。此外,对数据进行标准化处理也是提高聚类质量的重要步骤。
层次聚类分析也称为系统聚类分析。与划分聚类分析方法的原理不同,层次聚类分析的基本原理是根据选定的特征来识别相对均一的个案(变量)组,使用的算法是首先将每个个案(或变量)都视为一类,然后根据类与类之间的距离或相似程度将最近的类加以合并,再计算新类与其他类之间的相似程度,并选择最相似的加以合并,这样每合并一次就减少一类,不断继续这一过程,最终实现完全聚类,即把所有的观测样本汇集到一个组中。
在实际分析中常用到的一个层次聚类分析工具是树状图,那么,到底分成了多少类呢?这取决于研究的需要和实际的情况,需要用户加入自