系列文章目录
第二章 【机器学习】【监督学习】- 逻辑回归算法 (Logistic Regression)
第四章【机器学习】【监督学习】- K-近邻算法 (K-NN)
第五章【机器学习】【监督学习】- 决策树 (Decision Trees)
第六章【机器学习】【监督学习】- 梯度提升机 (Gradient Boosting Machine, GBM)
第七章 【机器学习】【监督学习】-神经网络 (Neural Networks)
第十一章【机器学习】【监督学习】-局部加权线性回归 (Locally Weighted Linear Regression, LWLR)
第十二章【机器学习】【监督学习】- 岭回归 (Ridge Regression)
十三、【机器学习】【监督学习】- Lasso回归 (Least Absolute Shrinkage and Selection Operator)
十四、【机器学习】【监督学习】- 弹性网回归 (Elastic Net Regression)
十七、【机器学习】【非监督学习】- K-均值 (K-Means)
十八、【机器学习】【非监督学习】- DBSCAN (Density-Based Spatial Clustering of Applications with Noise)
目录
二、层次聚类 (Hierarchical Clustering)
一、非监督学习
(一)、定义
非监督学习是一种机器学习方法,它处理的是没有标签的数据集。与监督学习不同,非监督学习算法不需要知道数据的正确分类或目标值。它的目标是通过数据内部的结构和模式来推断出有意义的信息,如数据的分布、聚类、降维或异常检测等。
(二)、训练流程
非监督学习的训练流程通常包含以下几个步骤:
-
数据准备:收集和预处理数据,可能包括数据清洗、缺失值处理、数据标准化或归一化等。
-
模型选择:根据问题的性质选择合适的非监督学习算法。
-
参数初始化:初始化模型的参数,这一步对于某些算法至关重要,如K-means聚类。
-
模型训练:使用无标签数据训练模型,寻找数据中的结构或模式。这一过程可能涉及到迭代优化,直到满足某个停止准则,如收敛或达到预定的迭代次数。
-
结果评估:评估模型的结果,这通常比监督学习更具有挑战性,因为没有明确的"正确答案"。评估可能基于内在指标(如聚类的紧凑度和分离度)或外在指标(如与已知分类的比较)。
-
应用模型:使用训练好的模型对新数据进行分析或预测,如对新数据进行聚类或降维。
(三)、基本算法分类
非监督学习算法可以大致分为以下几类:
-
聚类算法:用于将数据点分组到不同的簇中,常见的算法有K-means、层次聚类、DBSCAN、Gaussian Mixture Models等。
-
降维算法:用于减少数据的维度,同时尽可能保留数据的结构信息,常见的算法有PCA(主成分分析)、t-SNE(t-分布随机邻域嵌入)、自编码器等。
-
关联规则学习:用于发现数据集中项之间的关系,如Apriori算法和Eclat算法。
-
异常检测算法:用于识别数据集中的异常点或离群点,如Isolation Forest、Local Outlier Factor等。
-
自组织映射(SOM):一种神经网络模型,用于数据可视化和聚类,可以将高维数据映射到低维空间中。
-
生成模型:如变分自编码器(VAE)和生成对抗网络(GAN),它们可以生成类似训练数据的新样本。
非监督学习在很多场景中都有广泛应用,如客户细分、图像识别、自然语言处理、生物信息学和推荐系统等。由于其灵活性和在处理大量未标注数据时的优势,非监督学习是数据科学和人工智能领域的重要组成部分。
二、层次聚类 (Hierarchical Clustering)
(一)、定义
层次聚类(Hierarchical Clustering)是一种无监督学习的聚类算法,用于发现数据集中的自然分组或聚类。不同于k-means等迭代型聚类算法,层次聚类构建了一个聚类的层次结构,这个结构通常表现为一棵树,称为聚类树或树状图(dendrogram)。层次聚类可以分为两种主要类型:凝聚式(Agglomerative)和分裂式(Divisive)。
(二)、基本概念
- 凝聚式层次聚类:从最底层开始,每个样本被视为一个单独的聚类。算法随后计算每对聚类之间的相似度,并将距离最近的两个聚类合并。这一过程重复进行,直到所有样本被合并到一个单一的聚类,或者达到预设的停止条件。
- 分裂式层次聚类:相反,从顶层开始,所有样本被视为一个整体聚类。算法将这个聚类逐步分割成更小的聚类,直到每个样本成为一个独立的聚类,或者达到另一个预设的停止条件。
(三)、训练过程
-
初始化:
- 将数据集中的每个对象视为一个单独的聚类,形成初始的n个聚类(n为数据点的数量)。
-
计算距离矩阵:
- 构建一个距离矩阵,记录所有聚类两两之间的距离。距离可以由不同的度量方式定义,如欧氏距离、曼哈顿距离等。
- 通常,距离矩阵是基于聚类内部成员的点到点距离计算的。常用的方法有:
- 单连接(Single Linkage):两个聚类间的距离定义为它们所有成员间的最小距离。
- 完全连接(Complete Linkage):两个聚类间的距离定义为它们所有成员间的最大距离。
- 平均连接(Average Linkage):两个聚类间的距离定义为它们所有成员间距离的平均值。
- UPGMA(Unweighted Pair Group Method with Arithmetic Mean):类似于平均连接,但在构建树状图时考虑到聚类的大小。
- WPGMA(Weighted Pair Group Method with Arithmetic Mean):在UPGMA的基础上,根据聚类大小加权平均距离。
-
合并聚类:
- 找到距离矩阵中距离最小的两个聚类,并将它们合并为一个新的聚类。
- 更新距离矩阵,移除已被合并的聚类,用新聚类替换,并重新计算新聚类与其他聚类之间的距离。
-
重复合并:
- 重复步骤3,直到所有数据点被合并成一个聚类或达到预定的聚类数目。
- 每一次合并后,都会在树状图中添加一个节点,表示两个聚类的合并。
-
构建树状图:
- 随着聚类的不断合并,可以构建出一个树状图,其中的叶节点对应原始数据点,而内部节点表示聚类的合并事件。
-
确定聚类数目:
- 树状图的截断决定了最终的聚类数目。通常,可以通过观察树状图的形态、设定距离阈值或采用统计方法(如Gap Statistic)来确定合理的聚类数目。
- 截断树状图可以得到不同层次的聚类结果,提供层次结构的信息。
(四)、特点
- 可视化:层次聚类的结果可以用树状图直观地表示,便于理解和解释。
- 灵活性:用户可以在不同的层次上决定聚类的数量,而不必在算法开始前指定。
- 稳定性:一旦聚类树建立,就不会因为随机初始化而改变,这使得结果更加可靠。
- 局限性:处理大规模数据集时效率较低,因为它涉及到大量的距离计算和存储。
(五)、适用场景
- 生物信息学:基因表达数据的聚类分析。
- 市场细分:消费者行为数据的分群。
- 图像分析:图像分割和特征提取。
- 文档分类:文本数据的主题分类。
(六)、扩展和变体
- Divisive Hierarchical Clustering:与凝聚式相反,从一个包含所有数据点的大聚类开始,逐渐分割成更小的聚类。
- BIRCH (Balanced Iterative Reducing and Clustering using Hierarchies):适用于大型数据集,通过构建CF树(Clustering Feature Tree)来近似数据,减少计算距离的开销。
- CURE (Clustering Using REpresentatives):通过选择每个聚类的多个代表性点,避免了完全连接和平均连接的缺点,提高了鲁棒性。
层次聚类因其生成的树状图能够提供数据的层次结构信息,常用于生物信息学、文本分析等领域,特别适合于数据探索和理解数据的内在组织结构。
三、总结
层次聚类可以与其他技术结合,例如使用不同的距离度量或链接规则(如单链、全链、平均链等)来改进聚类效果。此外,为了提高大型数据集的处理能力,可以采用近似算法或数据降维技术。在某些情况下,层次聚类也可以与其它类型的聚类算法(如k-means)结合使用,以优化最终的聚类结果。例如,可以使用层次聚类来初步确定k-means算法中k的值,或作为预处理步骤来减少k-means的迭代次数。