分析2019Neurocomputing 1区论文Multivariate time series clustering based on common principal component analysis
论文作者:中国华侨大学 Hailin Li
论文代码:在实验部分只提到使用MATLAB2010,但尚未见公开
论文语言风格比较适合Chinese,共PDF20页,可一天读完,在此做下阅读分析和感悟。
一、论文总体框架
一共分为5个部分,
1、Introduction:介绍一元时序数据和多元时序数据的各自常用方法,分析DTW的困境,列举基于传统方法之上需要继续研究的3个问题,最后阐述本文所解决的问题以及算法思路。
2、Preliminaries:简要介绍PCA,涉及到协方差矩阵和奇异值分解。需要了解主成分分析法,作者提出的算法也是基于此。
3、 MTS clustering based on CPCA:本文的一个核心部分,可以分为这几个部分,第一是提出要融合DTW和PCA的特点(PCA关注变量之间的关系,DTW关注序列(MTS)的值);第二是对问题的描述;第三是算法描述,画出框架图;第四是时间复杂度分析。
4、Experimental evaluation,作者分为了三个部分:数据库、算法结果对比展示和时间consumption对比
二、总结
1、论文要解决的问题是序列的聚类问题,需要区别于一个整长序列的分割。算法的输入样本数据为:,任意一个
是一个任意长度的子序列,每个子序列长度都可以不等,但有相同的维度(m个variables)。需要将N个子序列划分到K类中。
2、作者提出本文算法(Mc2PCA)类似k-means,主要分两步,计算误差和样本reassign
3、文中强调算法兼顾变量之间的relationship以及变量值的相似性,it is very important for MTS data mining in the two aspects, the original values and the relationships of variables. 这一点可以从作者构建的算法中的误差来理解。
3、文中的一个创新是error的计算。传统的k-means算法是用样本点欧拉距离或其他范数形式来表示Loss,作者在构建error时利用PCA算法将高维数据X转换到低维,再将低维数据转换回去,得到Y,X和Y肯定是不同的,作者使用此error作为算法对样本assignment的指导,使得总体的Error最小化。
4、具体算法理解(理解不对的地方欢迎评论指正):
a.首先将样本初始化到K个类中(文中一共测试13种数据库,每个数据库的K值提前给出)。
b.计算公共空间的投影轴,每一类有一个独立的投影轴(掌握PCA算法协方差矩阵的奇异值分解、特征值以及特征向量,作者将其表达为projection axes只一种比较好的描述)
c.序列重构(可以理解为再将低维空间投影回去,,但此时投影回去的Y包含了该类所有元素的部分信息)
d.利用X与Y的误差指导样本进行分类,当两次改变都比较stable时停止。
算法伪代码及结果:
5、利用其它算法作为对比,13中数据库,有7个效果比较好,两个效果不太理想,主要原因是原始数据并不是高维的,这也体现算法主要是针对高维数据。高维数据才有各维度变量之间的relationship。
6、文中13中数据库可以找到,有几个在UCI数据中,没有仔细去找
http://archive.ics.uci.edu/ml/datasets.php
三、个人感悟
1、本文章在构建误差上的方法比较有创意,在此之前还未遇见这种方式。
2、需掌握基本的知识PCA和DTW
3、算法思路确实很像k-means方法,后期可以尝试代码实现【目前未完成,具体算法效果不知如何】
4、缺少一种理论性的证明支撑,即此方法构建的error对precision的提高是否有理论依据
5、可以作为英文文献阅读的锻炼,文中很多写作方式也值得借鉴