You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TAIEX模糊时间序列预测的DBSCAN/OPTICS聚类适用性与异常咨询

两项聚类应用问题的实操解答

1. DBSCAN、OPTICS的时间序列场景适用性

  • 原生算法的适配边界:DBSCAN、OPTICS核心基于密度连通性开展聚类,默认依托欧氏距离计算样本相似度。针对你当前“对TAIEX序列取值分布做聚类、输出聚类数作为模糊集划分依据”的目标,这类算法完全适配——本质是对序列的数值分布做密度分区,和普通一维数值聚类的逻辑一致,不存在场景错配。
  • 场景适配的注意事项:如果聚类目标是识别连续的时序形态片段(比如上涨、下跌、盘整的序列段聚类),原生算法无法直接使用,需要替换为DTW等时序专属距离度量;但你当前的核心需求是通过取值聚类推导模糊集划分,不需要关联时序的片段形态,直接使用原生算法即可满足研究要求。
  • OPTICS的场景优势:相比DBSCAN,OPTICS无需提前精准设置eps参数,可自动识别不同密度层级的聚类结构,对参数的鲁棒性更强,更适合需要稳定输出模糊集数量的研究场景。

2. DBSCAN聚类结果全为离群点的成因与修正方案

核心问题成因

  • 特征维度与尺度错配:如果你的聚类输入是“时间戳+指数值”的二维矩阵(对应代码中绘图用到的变量dados),此时eps=50的判定半径是同时覆盖两个维度的欧氏距离:时间轴单位通常为交易日,序列跨度可达数年,指数值的跨度可达数千点,两个维度的尺度差可达数个数量级。eps=50的半径在时间轴上仅能覆盖不到2个月的间隔,在指数值轴上仅能覆盖50点的价差,绝大多数数据点无法达到密度连通的判定要求,自然全部被识别为离群点。
  • 参数阈值设置过高:当前设置的min_samples=100,要求每个核心点在eps半径内必须包含至少100个邻域点,对于常规规模的TAIEX序列(样本量通常为数百到一千个交易日),该阈值远高于常规密度分布,即便调整eps范围,也很难满足核心点的判定条件。
  • 未做特征尺度统一:即便仅将一维的指数值作为聚类特征,TAIEX的取值范围通常在数千到上万点,未经过标准化的前提下,人为设置的eps=50属于极小的判定半径,根本围不出有效的高密度区域,参数调整完全失去参考锚点。
  • 代码细节问题:代码中聚类的输入变量为time_data,但绘图环节引用的变量为dados,变量名不统一会直接导致运行报错,无法输出正确的聚类结果。

可直接落地的修正步骤

  • 调整聚类输入:如果核心目标是对指数值的分布做聚类,仅需将序列的一维取值reshape为(样本数, 1)的二维矩阵作为聚类输入,绝对不要将时间戳作为聚类计算的特征维度——时间维度仅用于绘图展示,不参与聚类的距离计算,从根源上避免维度尺度错配问题。
  • 匹配合理参数范围:
    • 先对指数值做min-max标准化,将取值范围缩放至[0,1]区间,此时DBSCAN的eps参考范围为0.02-0.1,min_samples参考范围为3-10;可通过K距离曲线确定最优eps:将所有点到第min_samples近邻的距离按从小到大排序,取曲线拐点对应的距离值作为最终eps,无需反复盲调参数。
  • 替代方案优化:如果追求更稳定的聚类结果,可直接用OPTICS替换DBSCAN,仅需将实例化代码修改为OPTICS(min_samples=5, xi=0.05),无需手动设置eps值,即可自动识别稳定的密度分区,适配模糊集划分的需求。

内容的提问来源于stack exchange,提问作者Arthur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.23 04:27:03