-
时间序列是一种与时间相关的数值型数据,基于时间序列的数据挖掘与分析成为目前数据研究领域中最具有挑战性的十大问题之一[1]。分类算法是时间序列数据挖掘中极为重要的任务和技术[2],有大量关于时间序列分类和挖掘的研究[3]。分类问题依赖于时间序列间的相似性度量,而相似性度量是两条时间序列相似程度的度量方法[4]。对于时间序列来说,同类时间序列间的相似性主要有时域相似性、形状相似性和变化相似性3种形式[5]。支持向量机(support vector machine, SVM)是由文献[6]提出的通过核函数将时间序列向高维空间映射的方法,可用于时间序列分类。朴素贝叶斯分类器是目前公认的一种简单而有效的概率分类方法,作为经典的机器学习算法之一,在信息检索领域有着极为重要的地位[7]。文献[8]提出了EAIW分类算法,该算法为时间序列区间赋予权值,采用集成分类的算法,通过权值对时间序列进行分类。文献[9]提出了TLCS算法,该算法提出一种新的基于时间序列的趋势离散化方法,利用LCS对其进行相似性度量。
模糊聚类由于能够描述样本类属的中介性,能更客观地反映现实世界,目前已成为聚类分析的主流,成为非监督模式识别的一个重要分支。模糊聚类分析已经成功地应用于遥感图像处理、医学图像处理、基因数据处理、模糊决策分析等领域[10]。众多的模糊聚类方法中,应用最广泛的是模糊C-均值(fuzzy C-means, FCM)算法。由于模糊C-均值算法在初始聚类中心的选择上具有随机性,对初始值比较敏感,难以取得全局最优[11]。
本文提出一种新的时间序列分类方法,即基于
$k$ -shape的时间序列模糊分类方法。该方法利用一种新的$k$ -shape聚类算法[12]对训练集中每个类的时间序列进行聚类,得到聚类中心群,并将这些中心群作为模糊分类的初始聚类中心,使用模糊C均值对时间序列测试集数据进行分类。 -
为了验证本文提出算法的有效性,在30个时间序列数据集上做分类实验。通过实验结果可以验证分类精度的有效性,也可以验证针对存在位移和扭曲特征的时间序列分类,新方法的适用性。
-
算法代码使用Python 3.7在Anaconda科学计算环境中实现,运行所用计算机的CPU型号为InterCore i5-8250U (1.60 GHz),RAM为16 GB,操作系统是Windows10 64位(DirectX 12)。
本文采用的数据集是UCR TS Archive 2015,UCR[14]是时间序列数据集,每个数据集样本都带有样本类别标签,它是目前时间序列挖掘领域重要的开源数据集资源。从UCR数据集中选取了30个训练集,为了验证新方法具有更高的分类质量和性能,这30个数据集在类别、长度和大小上具有明显差异。具体数据集信息如表1所示。
表 1 时间序列数据集
DataSet No. of Class TrainSize TestSize Length Cricket_Z 12 390 390 300 Cricket_X 12 390 390 300 ToeSegmentation1 2 40 228 277 ToeSegmentation2 2 36 130 343 DistalPhalanxTW 6 139 400 80 Ham 2 109 105 431 ProximalPhalanx-TW 6 205 400 80 ECGFiveDays 2 23 861 136 DistalPhalanxOutlineAgeGroup 3 139 400 80 Haptics 5 155 308 1092 PhalangesOutlinesCorrect 2 1800 858 80 DiatomSizeReduction 4 16 306 345 ProximalPhalanxOutlineCorrect 2 600 291 80 TwoLeadECG 2 23 1139 82 SonyAIBORobotSurface1 2 20 601 70 FacesFOUR 4 24 88 350 InlineSkate 7 100 550 1882 MiddlePhalanxTW 6 154 399 80 BeetleFly 2 20 20 512 ShapeletSim 2 20 180 500 WormsClass 5 77 181 900 MoteStrain 2 20 1252 84 Oliveioil 4 30 30 570 trace 4 100 100 275 beef 5 30 30 470 ECG200 2 100 100 96 Symbols 6 25 995 398 Coffee 2 28 28 286 Car 4 60 60 577 MiddlePhalanxOutlineCorrect 2 291 600 80 在对训练数据集进行k-shape聚类时,训练集的类别和类别数是已知的,需要用k-shape单独对训练集每一个类别包含的时间序列进行聚类,进而确定各类别的聚类中心群。
-
在进行参数讨论时,假定训练集共有w个类别,每个类别的聚类中心数都是k,因此共可得到wk个聚类中心,且每个聚类中心群都标记着本类别的标签。本文以Cricket_X数据集为例,说明利用手肘法选取最佳聚类数k的过程。k的取值为1~8 (本文设置上限为8)。如图2所示,随着k增大,SSE的下降幅度会骤减,在k=4之后下降幅度趋于平缓。因此针对Cricket_X数据集,最佳聚类中心数是4。
-
本节将提出的KFCM算法与SVM[6]、Bayes[7]、EAIW[8]和TLCS[9]这4种基准分类算法进行比较。为了进一步验证k-shape在提取聚类中心过程中的算法优势,本文利用k-means算法提取各类别的聚类中心群来作为模糊分类的初始聚类中心,同时使用模糊分类方法对时间序列数据集进行分类。该算法称为KMFCM,作为KFCM的对比算法之一。利用以上6种方法对30组UCR数据集进行分类实验,分类错误率如表2所示。利用平均分类错误率、方差和胜出率3个指标评价分类效果,如表3所示。
从表2可知,KFCM算法的平均错误率最低,错误率的总体波动幅度较小,在30个数据集中有9个数据集的错误率最小,有最高的胜出率。为了更好地表现分类结果,本文通过对错误率的两两比较,使用可视化分类比较结果展示,如图3所示。KFCM的分类准确率和胜出率都高于KMFCM,同时,在ShapeletSim、MoteStrain、InlineSkate等数据集上也有较低的分类错误率,这证明了k-shape相比于k-means在聚类过程中有明显优势。KFCM在时间序列测试集上的分类性能优于SVM和Bayes,平均准确率有一定提升。最后,KFCM分类准确率相较于TLCS和EAIW也有一定提高,个别数据集提高效果较为明显。
表 2 各分类算法分类错误率
DataSet 分类错误率 KFCM KMFCM SVM Bayes EAIW TLCS Cricket_Z 0.31 0.34 0.50 0.60 0.22 0.52 Cricket_X 0.39 0.40 0.48 0.61 0.22 0.58 ToeSegmentation1 0.15 0.22 0.38 0.44 0.16 0.23 ToeSegmentation2 0.16 0.18 0.26 0.36 0.09 0.18 DistalPhalanxTW 0.24 0.18 0.22 0.24 0.35 0.46 Ham 0.28 0.30 0.25 0.26 0.43 0.38 ProximalPhalanxTW 0.19 0.19 0.20 0.21 0.20 0.27 ECGFiveDays 0.18 0.17 0.16 0.22 0.11 0.15 DistalPhalanxOutlineAgeGroup 0.21 0.22 0.18 0.17 0.26 0.38 Haptics 0.49 0.51 0.54 0.56 0.61 0.54 PhalangesOutlinesCorrect 0.34 0.36 0.21 0.34 0.25 0.31 DiatomSizeReduction 0.09 0.11 0.10 0.21 0.31 0.14 ProximalPhalanxOutlineCorrect 0.24 0.21 0.14 0.35 0.19 0.24 TwoLeadECG 0.25 0.24 0.28 0.30 0.19 0.26 SonyAIBORobotSurface1 0.09 0.11 0.22 0.06 0.30 0.23 FacesFour 0.22 0.25 0.36 0.10 0.20 0.19 InlineSkate 0.40 0.44 0.75 0.51 0.51 0.53 MiddlePhalanxTW 0.35 0.35 0.37 0.40 0.45 0.51 BeetleFly 0.21 0.22 0.15 0.20 0.25 0.15 ShapeletSim 0.14 0.20 0.53 0.15 0.31 0.27 WormsClass 0.34 0.37 0.59 0.42 0.40 0.38 MoteStrain 0.09 0.16 0.15 0.17 0.13 0.09 Oliveioil 0.19 0.22 0.17 0.07 0.39 0.50 Trace 0.30 0.28 0.29 0.20 0.21 0.26 Beef 0.26 0.31 0.27 0.37 0.19 0.10 ECG200 0.18 0.19 0.16 0.33 0.27 0.19 Symbols 0.32 0.30 0.24 0.36 0.08 0.02 Coffee 0.08 0.07 0.05 0.07 0.18 0.04 Car 0.23 0.23 0.30 0.42 0.27 0.17 MiddlePhalanxOutlineCorrect 0.38 0.44 0.45 0.46 0.26 0.37 表 3 各类算法评价指标
参数 KFCM KMFCM SVM Bayes EAIW TLCS mean 0.25 0.26 0.30 0.31 0.27 0.29 variance 0.01 0.01 0.03 0.02 0.02 0.03 win rate 0.30 0.10 0.17 0.17 0.20 0.20 本文选取4个时间序列数据集,来说明聚类中心数
$k$ 对分类结果的影响,如图4所示。k值对各数据集的分类结果影响不同,对于BeetleFly数据集,错误率最大值和最小值之间差距达到0.23;对于OliveOil数据集,错误率最大值和最小值之间差距为0.06。由此可知,对于不同的数据集,k对最后分类效果的影响也是不同的。有的数据集如BeetleFly受影响比较大,因此参数k需根据具体数据而设定。
-
本文分析了30个时间序列训练集中部分时间序列数据的特点,将时间序列训练集按照是否存在明显位移和扭曲的特点分为两大类,计算每一类的平均错误率。横向比较,新方法KFCM在存在明显位移和扭曲特点的时间序列平均错误率要比趋势较为一致的时间序列平均错误率要低;纵向比较,对于存在明显扭曲和位移的时间序列集,新方法KFCM相比其他5个方法的错误率低,分类性能更好。
从图5中看出,InlineSkate、MoteStrain和ShapeletSim这3个时间序列数据集具有较明显的位移和扭曲,故SVM、Bayes和KMFCM在处理此类的数据集分类时存在较大的不足,但KFCM算法表现良好。Symbols、TwoLeadECG和Car这3个时间序列集中同一类时间序列数据上“几乎”不存在位移或者扭曲,故SVM、Bayes和KMFCM在这3个数据集上的分类效果比较理想。图6也表明新方法KFCM在InlineSkate、MoteStrain和ShapeletSim 时间序列数据集上有更低的错误率。
-
时间序列分类的性能不仅体现在分类效果上,而且也包含了算法的整体时间消耗。为了更直观的比较以上6种分类方法的时间效率,本文随机抽取了WormsTwoClass、Ham、Beef和FaceFour这4个时间序列数据集,进行方法运行时间效率的对比实验。
由图7可知,KFCM方法在4个时间序列数据集上的时间效率比KMFCM、SVM和Bayes低,分类时间较长。但相比于EAIW和TLCS,KFCM方法所花费的时间则相对较少。总体来讲,KFCM的时间效率要高于EAIW和TLCS,低于SVM、Bayes和KMFCM。文献[15]在大型电力负荷时间序列曲线聚类实验中证明k-shape的时间复杂度高于k-means。本文研究的时间序列分类方法主要是通过k-shape提取聚类中心群,该阶段的计算复杂度较高,导致整体算法在大数据环境下的时间效率较低,并不适用于大型数据集。但结合分类质量来看,KFCM可以使用较高的时间效率来获得较好的分类效果。
Fuzzy Classification for Time Series Data Based on K-Shape
-
摘要: 时间序列分类是数据挖掘中的重要主题,现有的大部分时间序列分类方法较少考虑到序列形状对分类结果的影响。该文提出了一种基于k-shape的时间序列模糊分类方法。该方法通过使用k-shape聚类算法对时间序列训练数据集各类别的成员进行聚类,获得各类别的聚类中心并形成聚类中心群,将每个类别的聚类中心群作为时间序列数据模糊分类的初始聚类中心,根据隶属度最大原则确定测试时间序列数据的类别标签。在30个时间序列公开数据集上的分类实验结果表明,该方法相较于SVM、Bayes、EAIW和TLCS这4种分类算法具有更好的分类性能,对具有扭曲和位移特征的时间序列数据分类有更好的可用性。Abstract: Time series classification is an important topic in data mining. Most existing time series classification methods do not consider the influence of the shape of the time series on the classification results. The paper proposes a fuzzy classification method for time series based on k-shape. The method utilizes the k-shape clustering algorithm to cluster each category of the time series training datasets and obtains the cluster centers group of each class. After utilizing the cluster center group of each class as the initial clustering center of the fuzzy classification, class labels of the test datasets are determined according to the principle of maximum membership degree. Experimental results on 30 time series public datasets show that the proposed method has better classification performance than the traditional methods, including support vector machine (SVM), Bayes, ensemble algorithm of interval weightsc (EAIW), and trend information based on longest common subsequence (TLCS), with more excellent usability for time series with distortion and displacement characteristics.
-
Key words:
- classification algorithm /
- fuzzy classification /
- k-shape /
- time series
-
表 1 时间序列数据集
DataSet No. of Class TrainSize TestSize Length Cricket_Z 12 390 390 300 Cricket_X 12 390 390 300 ToeSegmentation1 2 40 228 277 ToeSegmentation2 2 36 130 343 DistalPhalanxTW 6 139 400 80 Ham 2 109 105 431 ProximalPhalanx-TW 6 205 400 80 ECGFiveDays 2 23 861 136 DistalPhalanxOutlineAgeGroup 3 139 400 80 Haptics 5 155 308 1092 PhalangesOutlinesCorrect 2 1800 858 80 DiatomSizeReduction 4 16 306 345 ProximalPhalanxOutlineCorrect 2 600 291 80 TwoLeadECG 2 23 1139 82 SonyAIBORobotSurface1 2 20 601 70 FacesFOUR 4 24 88 350 InlineSkate 7 100 550 1882 MiddlePhalanxTW 6 154 399 80 BeetleFly 2 20 20 512 ShapeletSim 2 20 180 500 WormsClass 5 77 181 900 MoteStrain 2 20 1252 84 Oliveioil 4 30 30 570 trace 4 100 100 275 beef 5 30 30 470 ECG200 2 100 100 96 Symbols 6 25 995 398 Coffee 2 28 28 286 Car 4 60 60 577 MiddlePhalanxOutlineCorrect 2 291 600 80 表 2 各分类算法分类错误率
DataSet 分类错误率 KFCM KMFCM SVM Bayes EAIW TLCS Cricket_Z 0.31 0.34 0.50 0.60 0.22 0.52 Cricket_X 0.39 0.40 0.48 0.61 0.22 0.58 ToeSegmentation1 0.15 0.22 0.38 0.44 0.16 0.23 ToeSegmentation2 0.16 0.18 0.26 0.36 0.09 0.18 DistalPhalanxTW 0.24 0.18 0.22 0.24 0.35 0.46 Ham 0.28 0.30 0.25 0.26 0.43 0.38 ProximalPhalanxTW 0.19 0.19 0.20 0.21 0.20 0.27 ECGFiveDays 0.18 0.17 0.16 0.22 0.11 0.15 DistalPhalanxOutlineAgeGroup 0.21 0.22 0.18 0.17 0.26 0.38 Haptics 0.49 0.51 0.54 0.56 0.61 0.54 PhalangesOutlinesCorrect 0.34 0.36 0.21 0.34 0.25 0.31 DiatomSizeReduction 0.09 0.11 0.10 0.21 0.31 0.14 ProximalPhalanxOutlineCorrect 0.24 0.21 0.14 0.35 0.19 0.24 TwoLeadECG 0.25 0.24 0.28 0.30 0.19 0.26 SonyAIBORobotSurface1 0.09 0.11 0.22 0.06 0.30 0.23 FacesFour 0.22 0.25 0.36 0.10 0.20 0.19 InlineSkate 0.40 0.44 0.75 0.51 0.51 0.53 MiddlePhalanxTW 0.35 0.35 0.37 0.40 0.45 0.51 BeetleFly 0.21 0.22 0.15 0.20 0.25 0.15 ShapeletSim 0.14 0.20 0.53 0.15 0.31 0.27 WormsClass 0.34 0.37 0.59 0.42 0.40 0.38 MoteStrain 0.09 0.16 0.15 0.17 0.13 0.09 Oliveioil 0.19 0.22 0.17 0.07 0.39 0.50 Trace 0.30 0.28 0.29 0.20 0.21 0.26 Beef 0.26 0.31 0.27 0.37 0.19 0.10 ECG200 0.18 0.19 0.16 0.33 0.27 0.19 Symbols 0.32 0.30 0.24 0.36 0.08 0.02 Coffee 0.08 0.07 0.05 0.07 0.18 0.04 Car 0.23 0.23 0.30 0.42 0.27 0.17 MiddlePhalanxOutlineCorrect 0.38 0.44 0.45 0.46 0.26 0.37 表 3 各类算法评价指标
参数 KFCM KMFCM SVM Bayes EAIW TLCS mean 0.25 0.26 0.30 0.31 0.27 0.29 variance 0.01 0.01 0.03 0.02 0.02 0.03 win rate 0.30 0.10 0.17 0.17 0.20 0.20 -
[1] WU X D, KUMAR V, QUINLAN J R, et al. Top 10 algorithms in data mining[J]. Knowledge and Information Systems, 2008, 14(1): 1-37. doi: 10.1007/s10115-007-0114-2 [2] 李海林, 万校基. 基于簇中心群的时间序列数据分类方法[J]. 电子科技大学学报, 2017, 46(3): 625-630. LI H L, WAN X J. Classification for time series data based on center sequences of clusters[J]. Journal of University of Electronic Science and Technology of China, 2017, 46(3): 625-630. [3] 王子一, 商琳. 基于子段距离计算的时间序列分类方法[J]. 小型微型计算机系统, 2018, 39(7): 1387-1389. WANG Z Y, SHANG L. New method of timeseries classification based on sub-sequence distancecomputation[J]. Journal of Chinese Computer Systems, 2018, 39(7): 1387-1389. [4] 李海林, 梁叶, 王少春. 时间序列数据挖掘中的动态时间弯曲研究综述[J]. 控制与决策, 2018, 33(8): 1345-1353. LI H L, LIANG Y, WANG S C. Reviewon dynamic time warping in time series data mining[J]. Control and Decision, 2018, 33(8): 1345-1353. [5] 原继东, 王志海. 时间序列的表示与分类算法综述[J]. 计算机科学, 2015, 42(3): 1-7. doi: 10.11896/j.issn.1002-137X.2015.03.001 YUAN J D, WANG Z H. Review of time series represention and classification techniques[J]. Computer Science, 2015, 42(3): 1-7. doi: 10.11896/j.issn.1002-137X.2015.03.001 [6] VAPNIK V. SVM method of estimating density, conditional probability, and conditional density[C]//IEEE International Symposium on Circuits & Systems. [S.l.]: IEEE, 2000, 749-752. [7] 石洪波, 王志海, 黄厚宽, 等. 一种限定性的双层贝叶斯分类模型[J]. 软件学报, 2004, 15(2): 193-199. SHI H B, WANG Z H, HUANG H K, et al. A restricted double-level Bayesian classificationmodel[J]. Journal of Software, 2004, 15(2): 193-199. [8] 李建平, 王兴伟, 马连博, 等. 基于区间的时间序列分类算法的研究[J]. 网络空间安全, 2019, 10(8): 84-101. doi: 10.3969/j.issn.1674-9456.2019.08.013 LI J P, WANG X W, MA L B, et al. Research on interval time series classification algorithm[J]. Cyberspace Security, 2019, 10(8): 84-101. doi: 10.3969/j.issn.1674-9456.2019.08.013 [9] 林钱洪, 王志海, 原继东, 等. 基于趋势信息的时间序列分类方法[J]. 中国科学技术大学学报, 2019, 49(2): 139-148. LIN Q H, WANG Z H, YUAN J D, et al. Trend information for time series classification[J]. Journal of University of Science and Technology of China, 2019, 49(2): 139-148. [10] 于剑. 论模糊C均值算法的模糊指标[J]. 计算机学报, 2003, 26(8): 969-973. YU J. On the fuzziness index of the FCM algorithms[J]. Chinese Journal of Computers, 2003, 26(8): 969-973. [11] 张新波. 两阶段模糊C-均值聚类算法[J]. 电路与系统学报, 2005, 10(5): 118-120. ZHANG X B. Two stage fuzzy C-means clustering algorithm[J]. Journal of Circuits and Systems, 2005, 10(5): 118-120. [12] PAPARRIZOS J, GRAVANO L, SELLIS T K, et al. k-shape: Efficient and accurate clustering of time series[C]//Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data. Mel-bourne, Victoria: ACM, 2015: 1855-1870. [13] 陈书文, 覃华, 苏一丹. 最优正则化参数的核FCM 聚类算法[J]. 小型微型计算机系统, 2018, 39(7): 1538-1541. CHEN S W, QIN H, SU Y D. Kernel FCM clustering algorithm based on optimal regularization parameters[J]. Journal of Chinese Computer Systems, 2018, 39(7): 1538-1541. [14] CHEN Y P, KEOGH E, HU Bing, et al. The UCR time series classification archive[EB/OL]. [2019-11-12]. http://www.cs.ucr.edu/eamonn/time_series_data/. [15] 王潇笛, 刘俊勇, 刘友波, 等. 采用自适应分段聚合近似的典型负荷曲线形态聚类算法[J]. 电力系统自动化, 2019, 43(1): 110-118. WANG X D, LIU J Y, LIU Y B, et al. Typical load curve morphology clustering algorithm using adaptive segmentation aggregation approximation[J]. Automation of Electric Power Systems, 2019, 43(1): 110-118.