- 机器学习基础
- 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 - K近邻算法 (KNN)
- 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 - 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 - 讨论
机器学习 - OPTICS 聚类
OPTICS 类似于 DBSCAN(基于密度的噪声应用空间聚类),另一种流行的基于密度的聚类算法。但是,OPTICS 比 DBSCAN 具有几个优势,包括能够识别不同密度的聚类、能够处理噪声以及能够生成层次聚类结构。
在 Python 中实现 OPTICS
为了在 Python 中实现 OPTICS 聚类,我们可以使用 scikit-learn 库。scikit-learn 库提供了一个名为 OPTICS 的类,它实现了 OPTICS 算法。
以下是如何在 scikit-learn 中使用 OPTICS 类对数据集进行聚类的示例:
示例
from sklearn.cluster import OPTICS from sklearn.datasets import make_blobs import matplotlib.pyplot as plt # Generate sample data X, y = make_blobs(n_samples=2000, centers=4, cluster_std=0.60, random_state=0) # Cluster the data using OPTICS optics = OPTICS(min_samples=50, xi=.05) optics.fit(X) # Plot the results labels = optics.labels_ plt.figure(figsize=(7.5, 3.5)) plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='turbo') plt.show()
在此示例中,我们首先使用 **scikit-learn** 中的 make_blobs 函数生成一个样本数据集。然后,我们实例化一个 OPTICS 对象,并将 **min_samples** 参数设置为 50,并将 xi 参数设置为 0.05。**min_samples** 参数指定形成聚类所需的最小样本数,**xi** 参数控制聚类层次结构的陡峭程度。然后,我们使用 fit 方法将 OPTICS 对象拟合到数据集。最后,我们使用散点图绘制结果,其中每个数据点根据其聚类标签着色。
输出
执行此程序时,它将生成以下绘图作为输出:
OPTICS 聚类的优势
以下是使用 OPTICS 聚类的优势:
能够处理不同密度的聚类 - 与其他一些需要聚类具有均匀密度的聚类算法不同,OPTICS 可以处理具有不同密度的聚类。
能够处理噪声 - OPTICS 可以识别不属于任何聚类的噪声数据点,这对于从数据集中去除异常值很有用。
层次聚类结构 - OPTICS 生成一个层次聚类结构,可用于在不同粒度级别分析数据集。
OPTICS 聚类的缺点
以下是使用 OPTICS 聚类的一些缺点。
对参数敏感 - OPTICS 需要仔细调整其参数,例如 min_samples 和 xi 参数,这可能具有挑战性。
计算复杂度 - 对于大型数据集,OPTICS 的计算成本可能很高,尤其是在使用高 min_samples 值时。