时间序列聚类:k-Shape、k-Means与HDBSCAN算法对比
1. k-Shape算法简介
k-Shape算法是一种强大的时间序列聚类算法,它使用归一化的互相关来计算聚类中心,并在每次迭代中更新时间序列到这些聚类的分配。该算法具有以下特点:
-尺度和位移不变性:不受数据尺度和位移的影响。
-领域无关性:可应用于多个领域。
-可扩展性:迭代细化过程的复杂度与序列数量呈线性关系,且所需参数调整极少。
k-Shape与k-Means算法类似,都采用迭代方法根据数据与最近聚类中心的距离将数据分配到不同组。但关键区别在于k-Shape使用基于形状的距离计算方法,该方法依赖于互相关。
2. 使用k-Shape对ECGFiveDays数据集进行时间序列聚类
2.1 数据准备
我们将使用UCR时间序列集合中的数据,由于文件大小超过100MB,需从UCR时间序列网站下载。该集合是最大的带类标签的时间序列数据集公共集合,共包含85个数据集,来自多个领域,可用于测试模型在不同领域的性能。每个时间序列仅属于一个类,可用于验证聚类结果。
首先,加载必要的库:
'''Main''' import numpy as np import pandas as pd import os, time, re import pickle, gzip, datetime from os import listdi