公司层面聚类调整


在先前的内容中,主要介绍了监督学习中的主成分分析(PCA)部分,接下来我们将重点转向非监督学习中的聚类算法。

聚类分析,又称群集分析,是一种无监督学习的统计方法,主要用于探索(样品或指标)分类问题。它在多个领域如模式识别、图像分析、信息检索、生物信息学、数据压缩、计算机图形学及机器学习等都有着广泛应用。—WIKI

聚类是基于相似性的数据分析的一种方法,它将数据集中的模式或对象分组,使得同一组内的对象比其他组内的对象更为相似。聚类分析的过程并不是一种特定的算法,而是用来解决一般任务的方法。它可以通过不同的算法来实现,这些算法的区别主要在于对集群结构的理解和如何有效地找到这些集群。

聚类分析的过程:

A. 特征选择和提取

特征选择是确定最有效的原始特征子集用于聚类的过程,而特征提取则是将一个或多个输入特征转换为初始显著特征的过程。这一步对聚类过程至关重要,因为不恰当的特征选择可能会导致无关紧要的簇的产生。

B. 聚类算法的设计和选择

由于不存在一个能同时满足三个基本(尺度不变性、一致性和丰富性)的通用聚类算法,因此需要根据应用领域的特点来精确选择或设计算法。不同的算法基于不同的输入参数,如聚类的数量、优化/构造标准、终止条件、邻近度等。

C. 聚类验证

由于不同的聚类算法和参数设置可能会产生不同的聚类结果,因此必须对聚类结果进行验证或评估。评估标准包括内部指标、外部指标以及相对指标。

D. 结果解析

聚类过程的最后一步是展示和解析聚类结果,以便人们更好地理解原始数据并有效地分析和解决难题。

常见的聚类算法包括基于连接的聚类(如层次聚类)、基于中心的聚类(如k-means)、基于分布的聚类(如高斯混合模型)、基于密度的聚类(如核密度估计)以及基于网格的聚类等。

以层次聚类为例,它是一群方法,区别在于计算距离的方式不同。包括聚类和聚类两种类型。在聚类中,所有观测值最初分配给自己的聚类,然后计算每个聚类之间的相似度(如距离),并逐步合并最相似的聚类,直到满足停止条件。这个过程可以使用不同的链接标准来定义聚类之间的距离,如最短距离、最长距离、平均距离等。

sklearn库提供了AgglomerativeClustering类,可以方便地调用聚类算法。

参数解释:

n_clusters: 需要找到的聚类的数量。

Affinity: 用来计算linkage的度量,如欧式距离、L1距离、曼哈顿距离、余弦相似度等。

Connectivity: 定义了样本之间的连接关系。

Linkage: 使用的连接标准,决定了在不同的observation之间使用哪个距离计算方式。

Distance_threshold: 高于这个阈值的linkage distance将决定是否合并cluster。

通过调整这些参数,我们可以得到不同的聚类结果。sklearn还提供了其他相关的API和案例,方便用户学习和使用。

聚类分析是一种重要的无监督学习方法,可以帮助我们更好地理解和分析数据。通过合理的特征选择和聚类算法选择,我们可以得到更有意义的聚类结果。