- 机器学习基础
- ML - 首页
- ML - 简介
- ML - 入门
- ML - 基本概念
- ML - 生态系统
- ML - Python 库
- ML - 应用
- ML - 生命周期
- ML - 所需技能
- ML - 实现
- ML - 挑战与常见问题
- ML - 限制
- ML - 现实生活中的例子
- ML - 数据结构
- ML - 数学
- ML - 人工智能
- ML - 神经网络
- ML - 深度学习
- ML - 获取数据集
- ML - 分类数据
- ML - 数据加载
- ML - 数据理解
- ML - 数据准备
- ML - 模型
- ML - 监督学习
- ML - 无监督学习
- ML - 半监督学习
- ML - 强化学习
- ML - 监督学习与无监督学习
- 机器学习数据可视化
- ML - 数据可视化
- ML - 直方图
- ML - 密度图
- ML - 箱线图
- ML - 相关矩阵图
- ML - 散点矩阵图
- 机器学习统计学
- ML - 统计学
- ML - 平均数、中位数、众数
- ML - 标准差
- ML - 百分位数
- ML - 数据分布
- ML - 偏度和峰度
- ML - 偏差和方差
- ML - 假设
- ML 中的回归分析
- ML - 回归分析
- ML - 线性回归
- ML - 简单线性回归
- ML - 多元线性回归
- ML - 多项式回归
- ML 中的分类算法
- ML - 分类算法
- ML - 逻辑回归
- ML - K 近邻 (KNN)
- ML - 朴素贝叶斯算法
- ML - 决策树算法
- ML - 支持向量机
- ML - 随机森林
- ML - 混淆矩阵
- ML - 随机梯度下降
- ML 中的聚类算法
- ML - 聚类算法
- ML - 基于中心点的聚类
- ML - K 均值聚类
- ML - K 中值聚类
- ML - 均值漂移聚类
- ML - 层次聚类
- ML - 基于密度的聚类
- ML - DBSCAN 聚类
- ML - OPTICS 聚类
- ML - HDBSCAN 聚类
- ML - BIRCH 聚类
- ML - 亲和传播
- ML - 基于分布的聚类
- ML - 凝聚层次聚类
- ML 中的降维
- ML - 降维
- ML - 特征选择
- ML - 特征提取
- ML - 后退消除法
- ML - 前向特征构造
- ML - 高相关性过滤器
- ML - 低方差过滤器
- ML - 缺失值比率
- ML - 主成分分析
- 强化学习
- ML - 强化学习算法
- ML - 利用与探索
- ML - Q 学习
- ML - REINFORCE 算法
- ML - SARSA 强化学习
- ML - 演员-评论家方法
- 深度强化学习
- ML - 深度强化学习
- 量子机器学习
- ML - 量子机器学习
- ML - 使用 Python 的量子机器学习
- 机器学习杂项
- ML - 性能指标
- ML - 自动工作流程
- ML - 提升模型性能
- ML - 梯度提升
- ML - 自举汇聚 (Bagging)
- ML - 交叉验证
- ML - AUC-ROC 曲线
- ML - 网格搜索
- ML - 数据缩放
- ML - 训练和测试
- ML - 关联规则
- ML - Apriori 算法
- ML - 高斯判别分析
- ML - 成本函数
- ML - 贝叶斯定理
- ML - 精度和召回率
- ML - 对抗性
- ML - 堆叠
- ML - 纪元
- ML - 感知器
- ML - 正则化
- ML - 过拟合
- ML - P 值
- ML - 熵
- ML - MLOps
- ML - 数据泄露
- ML - 机器学习的货币化
- ML - 数据类型
- 机器学习 - 资源
- ML - 快速指南
- ML - 速查表
- ML - 面试问题
- ML - 有用资源
- ML - 讨论
机器学习 - BIRCH 聚类
BIRCH(平衡迭代减少和聚类层次结构)是一种层次聚类算法,旨在有效地处理大型数据集。该算法通过递归地将数据划分为子集群来构建树状的集群结构,直到满足停止条件。
BIRCH 使用两种主要的数据结构来表示集群:聚类特征 (CF) 和子集群特征 (SCF)。CF 用于总结一组数据点的统计属性,而 SCF 用于表示子集群的结构。
BIRCH 聚类有三个主要步骤 -
初始化 - BIRCH 构造一个空的树结构并设置节点中可以存储的 CF 的最大数量。
聚类 - BIRCH 一次读取一个数据点并将它们添加到树结构中。如果节点中已经存在 CF,则 BIRCH 使用新数据点更新 CF。如果节点中没有 CF,则 BIRCH 为数据点创建一个新的 CF。然后,BIRCH 检查节点中 CF 的数量是否超过最大阈值。如果超过阈值,BIRCH 通过递归地划分节点中的 CF 来创建一个新的子集群。
细化 - BIRCH 通过合并基于距离度量的相似子集群来细化树结构。
在 Python 中实现 BIRCH 聚类
为了在 Python 中实现 BIRCH 聚类,我们可以使用 scikit-learn 库。scikitlearn 库提供了一个 BIRCH 类,该类实现了 BIRCH 算法。
以下是如何使用 BIRCH 类对数据集进行聚类的示例 -
示例
from sklearn.datasets import make_blobs from sklearn.cluster import Birch import matplotlib.pyplot as plt # Generate sample data X, y = make_blobs(n_samples=1000, centers=10, cluster_std=0.50, random_state=0) # Cluster the data using BIRCH birch = Birch(threshold=1.5, n_clusters=4) birch.fit(X) labels = birch.predict(X) # Plot the results plt.figure(figsize=(7.5, 3.5)) plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='winter') plt.show()
在此示例中,我们首先使用 scikit-learn 的 make_blobs 函数生成一个样本数据集。然后,我们使用 BIRCH 算法对数据集进行聚类。对于 BIRCH 算法,我们实例化一个 Birch 对象,并将阈值参数设置为 1.5,并将 n_clusters 参数设置为 4。然后,我们使用 fit 方法将 Birch 对象拟合到数据集,并使用 predict 方法预测集群标签。最后,我们使用散点图绘制结果。
输出
执行给定程序时,它将生成以下绘图作为输出 -
BIRCH 聚类的优点
与其他聚类算法相比,BIRCH 聚类具有以下几个优点 -
可扩展性 - BIRCH 旨在通过使用树状结构来表示集群来有效地处理大型数据集。
内存效率 - BIRCH 使用 CF 和 SCF 数据结构来总结数据点的统计属性,从而减少了存储集群所需的内存。
快速聚类 - BIRCH 可以快速聚类数据点,因为它使用增量聚类方法。
BIRCH 聚类的缺点
BIRCH 聚类也有一些缺点,包括 -
对参数设置敏感 - BIRCH 聚类的性能可能对参数的选择敏感,例如节点中可以存储的 CF 的最大数量以及用于创建子集群的阈值。
处理非球形集群的能力有限 - BIRCH 假设集群是球形的,这意味着它可能无法在具有非球形集群的数据集上表现良好。
在距离度量选择方面的灵活性有限 - BIRCH 默认使用欧几里得距离度量,这可能不适用于所有数据集。