聚类是一种基本且无监督的机器学习技术,它可以在没有事先标签的情况下将相似的数据点分组。本 Wiki 页面提供了聚类概念、算法以及在 ML-For-Beginners 课程中实现的技能概述,特别关注 K-均值聚类。有关将聚类应用于音乐数据的专门应用,请参阅课程第 5 部分的详细实现。
聚类是一种无监督学习,它通过将相似的项目分组来识别无标签数据中的模式。与使用标签数据进行预测的有监督学习不同,聚类算法根据数据本身的属性来发现固有的分组。
从技术角度讲,聚类算法识别的组具有
来源:5-Clustering/1-Visualize/README.md1-95
该课程涵盖了几种重要的聚类算法,每种算法都有独特的特性,适用于不同类型的数据和问题。
| 算法类型 | 特性 | 最佳用途 | 示例算法 |
|---|---|---|---|
| 层级 | 基于点之间距离的簇 | 具有层级关系的数据 | 凝聚聚类 |
| 基于质心 | 围绕中心点进行聚类 | 分离良好、球状的簇 | K-均值 |
| 基于分布 | 簇成员的概率模型 | 重叠的簇 | 高斯混合模型 |
| 基于密度 | 将密集区域与稀疏区域分隔开 | 不规则或嵌套的簇 | DBSCAN, OPTICS |
| 基于网格 | 将空间划分为网格单元 | 非常大的多维数据集 | STING |
算法的选择取决于数据特征,例如
来源:5-Clustering/1-Visualize/README.md30-97
在选择聚类算法时,理解其底层的数学概念至关重要。
平面 vs. 非平面几何:指数据存在于欧几里得空间(平面)还是需要非欧几里得测量(非平面)。
欧几里得 vs. 非欧几里得距离:确定如何测量点之间的相似性。
质心 vs. 聚类中心:表示簇“中心”的不同方式。
来源:5-Clustering/1-Visualize/README.md45-70
K-均值是最广泛使用的聚类算法,也是课程的重点。它将数据划分为 'k' 个簇,其中每个数据点都属于离其均值最近的簇。
K-均值算法遵循一个简单的三步迭代过程:
从技术上讲,该过程是:
K-均值导致数据空间被划分成类似 Voronoi 图的区域,其中每个区域代表一个簇。
来源:5-Clustering/2-K-Means/README.md14-31
K-均值的一个挑战是确定最优簇数(k)。课程教授了两种主要方法:
肘部法则:计算不同 k 值下,数据点到其分配的质心的平方距离之和(WCSS)。绘制 WCSS 与 k 的关系图,并寻找“肘部点”,即增加更多簇产生的收益递减的点。
轮廓系数:衡量一个对象与其自身簇的相似度以及与其它簇的相似度。得分范围为 -1 到 1,其中:
来源:5-Clustering/2-K-Means/README.md131-182
在实现 K-均值时,有几个技术概念很重要:
来源:5-Clustering/2-K-Means/README.md152-222
在实际应用聚类技术时,应解决几个问题:
在应用聚类算法之前,
来源:5-Clustering/2-K-Means/README.md37-86
与有监督学习不同,聚类结果的评估具有挑战性,因为没有真实标签可供比较。课程推荐:
来源:5-Clustering/2-K-Means/README.md183-222
应用聚类技术时,可能会遇到一些问题:
方差问题:当特征具有不同的尺度或分布时,簇可能会被方差较大的特征所主导。
不合适的 k 值选择:选择了错误的簇数。
算法限制:每种算法都有固有的偏见(例如,K-均值偏好球状簇)。
对异常值的敏感性:某些算法(如 K-均值)对异常值敏感。
来源:5-Clustering/2-K-Means/README.md216-235
在 ML-For-Beginners 仓库中,聚类是使用尼日利亚 Spotify 音乐数据集实现的。该实现遵循以下步骤:
来源:5-Clustering/README.md1-29 5-Clustering/2-K-Means/README.md1-246
聚类是一种强大的无监督学习技术,用于发现无标签数据中的模式。该课程侧重于 K-均值作为主要的聚类算法,同时介绍了适用于所有聚类方法的概念。在实现聚类解决方案时,仔细考虑数据特征、算法选择和评估指标对于获得有意义的结果至关重要。