Professional Documents
Culture Documents
2
2020 年 6 月 June 2020
城市用水量曲线聚类算法的研究与实现
刘春柳,张 征*
(华中科技大学人工智能与自动化学院,武汉 430074)
摘要:准确预测城市用水量可以对智慧水务调度、报警提供支持,预测前对所有用水量曲线进行聚类可以提高
预测的精度。为满足实时性和运行效率的要求,提出基于形态特征的分段聚合近似(shape-based piecewise
aggregate approximation,SPAA)表示方法,同时为解决传统基于欧氏距离的聚类算法无法包含曲线的形状特
征的问题,提出自适应聚类数的基于序列形态相似性的 k-shape 聚类算法。另外,采用一种基于质心的聚类中
心计算方式,提取每类用水量曲线形态。最后,对某水务公司的用水量数据实例进行聚类分析。结果表明,
本文所提的 SPAA-k-shape 算法可以有效降维,减少聚类计算时间,比传统仅考虑欧氏距离的算法更准确。
关键词:市政工程;模式识别与智能系统;曲线聚类;k-shape 算法;基于形态特征的分段聚合近似
中图分类号:TU991.31 文献标识码:A 文章编号:1674-2850(2020)02-0212-09
Abstract: Accurate prediction of urban water consumption can provide support for smart water
dispatching and alarming. Clustering all the water consumption curves before forecasting can improve the
accuracy of prediction. In order to meet the requirements of real-time performance and operational
efficiency, a shape-based piecewise aggregate approximation (SPAA) method is proposed. At the same
time, in order to solve the problem that the traditional clustering algorithm based on Euclidean distance
cannot include the shape features of curves, a k-shape clustering algorithm based on sequence shape
similarity of adaptive clustering numbers is proposed. In addition, a centroid-based clustering center
calculation method is adopted to extract the curve shape of water consumption from each type of cluster.
Finally, the clustering algorithm is applied to analyze the water consumption data from a water supply
company. The result shows that the SPAA-k-shape algorithm proposed in this paper effectively reduces
the dimension and shortens the clustering calculation time, which is more accurate than the traditional
algorithms that only consider Euclidean distance.
Key words: municipal engineering; pattern recognition and intelligent system; curve clustering; k-shape
algorithm; shape-based piecewise aggregate approximation (SPAA)
0 引言
城市用水量的准确预测可以作为供水管网智能调度的依据,为异常报警提供支持,便于及时发现漏
损、检修[1]。在进行预测训练前,选取形态趋势相似的同类曲线进行训练,是常用的预处理方法。不同
的用户类型用水趋势不同,因此预测前对所有用水量曲线进行聚类尤为必要。
作者简介:刘春柳(1995—),女,硕士研究生,主要研究方向:城市智能化、数据可视化
通信联系人:张征,副教授,主要研究方向:普适计算、物联网与城市智能化、分子计算等. E-mail: leaf@mail.hust.edu.cn
Vol.13 No.2
June 2020 中国科技论文在线精品论文 213
数据时间序列包含形态分布、斜率及极值等信息,另外对数据进行分段后,每段有自己的形态特征,
或上升,或下降,或水平,因此本文在原 PAA 算法的基础上,考虑了各个序列段的波动、斜率,并将起
点和终点作为该序列段的形态特征,以在降维的同时最大限度地保持各个序列段的形态特征及趋势,即
SPAA 算法。对于波动情况,采用爬坡事件衡量[8],分段序列中最大值与最小值之差|∆x|大于阈值 δ 即为
一个爬坡事件;对于斜率情况,根据曲线斜率变化率计算边缘点个数[9],若分段序列中某点的左右点的
斜率变化大于阈值 d,则该点为一个边缘点;对于取平均值的子序列,保留首尾点,其他点取均值,以
此保留分段序列的趋势特征。基本步骤如下。
步骤 1 取序列 X 的最大值 xmax 和最小值 xmin,利用式(1)对序列 X 进行归一化处理,处理后的时
间序列为
x − xmin
x′ = . ( 1)
xmax − xmin
步骤 2 将所有序列分成 n/4 段,每段 4 个数据点,统计数据集的爬坡事件个数 a 和边缘点个数 b,
设置阈值 σ1 和阈值 σ2.
步骤 3 若 a<σ1,b<σ2,则首尾点保留,其余点取均值;若 a<σ1,b>σ2,则用极小值和极大值
替代;若 a>σ1,b<σ1,则用极大值和极小值替代;若 a≥σ1,b≥σ2,保留原数据。
步骤 4 判断维度是否达到要求。若未达到要求,则扩大阈值,重复步骤 2~4;若达到要求,则输
出序列,最终得到 x 的近似表示 x′′ .
第13 卷 第2 期
2020 年 6 月 刘春柳等:城市用水量曲线聚类算法的研究与实现 214
1.2 改进的自适应曲线形态聚类算法
对于用水量曲线的聚类方法,传统的距离度量方式适用于很多领域,但是其对于曲线的聚类没有考
虑到平移和位移不变的情况,且对噪声太敏感,鲁棒性不高。另外,序列尺度应该具有不变性,而在 SPAA
过程中已经进行了归一化处理,因此尺度不变性可以保证。基于上述讨论,可以采用互相关方法作为序
列形态相似性度量,其值在[−1,1],两序列正相关度越高,互相关系数越大:
Cw ( X , Y )
Cn, w ( X , Y ) = , ( 2)
R0 ( X , X ) R0 (Y , Y )
其中, Cw 为互相关系数;w 为序列总和; Cn,w 为归一化后的互相关系数; R0 为完全相似的时间序列不
发生相对位移时的互相关系数值。
另外,提出时间序列相似性判断:
Cw ( X , Y )
SBD( X , Y ) = 1 − max , ( 3)
w R0 ( X , X ) R0 (Y , Y )
其中,SBD 值范围为 0~2,0 代表时间序列样本完全相似。本文算法利用 SBD 对时间序列进行相似性
量度,并将其作为类簇划分的依据。
传统的 k-means、FCM、k-shape 等聚类算法,均需要自行确定聚类数。然而在实际应用过程中,对
于未知聚类情况很难给定聚类数,且给定过程没有可靠依据,不合理的聚类数将会导致预定的划分结果
与其真实结构产生严重偏差。因此,需要经过聚类结果的有效性验证才能确定理想的聚类数。另外,聚
类中心也应该代表这一类序列的曲线形态特征,传统 k-means 是通过计算每类各序列相对应数值的算术
平均值来提取每类的聚类中心,然而这种方式忽视了形态特征。
Vol.13 No.2
June 2020 中国科技论文在线精品论文 215
聚类中心的目标是找到与每类序列平方和最小的序列,根据时间序列相似性判断提出基于质心的时
间序列聚类中心计算方法,确定聚类中心:
C k∗ = argmin ∑ u ∈P SBD(C k , ui )2, ( 4)
i k
Ck
2 应用实例与结果分析
实验在 MAC 操作系统上运行,Intel Core i7,16 G
内存的计算机上进行,编码在 PyCharm 上完成。动态
时间弯曲(dynamic time warping,DTW)的研究[10]
指出,在现有的时间序列相似性度量方法中, DTW
距离度量方法的综合表现最佳,因此本文分别对比了
基于传统欧式距离的 k-means 算法、DTW 算法及本文
的 SPAA-k-shape 算法,并对结果进行了相应分析。
2.1 用水量原始曲线分析
要得到比较客观的聚类结果,在正式处理前,往
往需要结合各种实际情况对原始用水量的规律做出
分析,并根据分析的特征对原始数据进行前期处理,
以更好地进行分类及预测。 图2 SPAA-k-shape 算法流程图
很多城市用水量预测中,在特征中会加入各种相 Fig. 2 Flowchart of SPAA-k-shape algorithm
第13 卷 第2 期
2020 年 6 月 刘春柳等:城市用水量曲线聚类算法的研究与实现 216
关因素,如气候、温度、节假日、生活条件等,但这些影响因素复杂、不确定性很高,且各因素影响的
结果其实已经体现在用水数据中,故在短时用水量预测中不宜添加其他影响因素,因此在提取聚类特征
时也仅考虑各流量计的流量数据。对以往大量历史用水数据观测研究可以看出,城市短时用水量曲线呈
现周期性变化的规律,但是也存在很多异常数据。有些异常流量计会出现流量波动、急剧下降或上升等
情况,甚至会出现负值,因此对 0 值和负值的数据进行清洗,是保证聚类可靠性的前提。
数据集来自某智慧水务公司,包含每隔 5 min 的用水流量。流量计覆盖地较广,由于地理位置及职
能的不同,呈现出不同的用水趋势,且部分流量计有停用或异常状态。在降维前先对数据进行预处理。
1)清洗数据:当缺失、异常的数据达到用水量曲线数据总量的 10%或以上,剔除该条用水量曲线,
且对其余用水量曲线的缺失及异常数据进行修正。
2)数据标准化处理(即 SPAA 第一步):采用极值归一化方法,将用户用水量数据压缩在[0,1]之间。
数据清洗把明显的 0 值和负值去除,清除了流量特别异常的曲线。归一化是一种线性变换,不会使
数据“失效”,反而能提高数据的表现,使数据处理更加便捷、快速。
2.2 聚类评价指标确定
2.3 实例结果与分析
图3 SPAA-k-shape 聚类结果
Fig. 3 SPAA-k-shape clustering results
a—第一类;b—第二类;c—第三类;d—第四类;e—第五类;f—第六类
a-First class; b-Second class; c-Third class; d-Forth class; e-Fifth class; f-Sixth class
图4 DTW 聚类结果
Fig. 4 DTW clustering results
a—第一类;b—第二类;c—第三类;d—第四类;e—第五类
a-First class; b-Second class; c-Third class; d-Forth class; e-Fifth class
第13 卷 第2 期
2020 年 6 月 刘春柳等:城市用水量曲线聚类算法的研究与实现 218
图5 k-means 聚类结果
Fig. 5 k-means clustering results
a—第一类;b—第二类;c—第三类;d—第四类
a-First class; b-Second class; c-Third class; d-Forth class
从图 3 的结果分析,第一类和第二类曲线是同一流量计的两种用水模式。DTW 将这两个大波峰分在
一起,尽管形状相似,但是对预测来说,用水高值到来的点差距仍然很大,分到一起会导致预测偏差大,
因此 SPAA-k-shape 的聚类结果此时更合适。k-means 则没有考虑任何形态,将形态特征完全不同的曲线
分在一起,无法体现用水模式。对于用水量预测来说,曲线形态就代表用水模式,精确地聚类相同用水
模式的流量曲线对用水量预测起关键作用。
第三类为普通住宅居民用水曲线,数量最多,有 455 条。对于普通住宅居民,早上六点左右,人们
开始活动,直到九点左右,用水量达到峰值,晚上九点左右又一次达到峰值,之后慢慢下降,符合人们
的起居作息时间。
第四类一般是特殊区域休假日的用水量,全天用水处于低值,波动不大;第五类用水非常规律,是
特殊区域的用水特点,SPAA-k-shape 可以将特殊用水模式分离开,而其他两个方法没有考虑形态,将特
殊用水模式曲线与正常用户混在一起,不利于特殊用水模式的流量曲线预测。
最后一类为工业用户用水曲线,整体用水一直处于高值,在凌晨稍有下降,符合工业用户用水模式;
对于特征明显的用水曲线,SPAA-k-shape 由于是基于曲线形态的聚类,可以很好地聚类出同类用水模式
的曲线。因此,本算法所聚类的典型用水曲线形态特征合理,可以很好地反映各类用户的用水模式。
DTW 算法和 k-means 算法的最优聚类数分别为 5 和 4. 对于特征极为不一样的第一类和第二类曲线,
三种算法的提取效果都很好,但是 DTW 和 k-means 仍然忽略了第一类和第二类之间的区别。对于第五
类曲线,DTW 和 k-means 仅考虑距离,忽视了曲线的差异,分类的曲线形态不明确,导致一类曲线包含
两种或多种用水模式。对于用水量曲线聚类及用水量预测问题来说,曲线的形态很重要,直接代表用水
模式,因此,SPAA-k-shape 算法更适用于本研究。
为全面对比 SPAA-k-shape、k-shape、DTW、k-means 这 4 种算法的性能,且保证结果客观,研究对
每种聚类算法运行了 3 遍并取平均值,结果如表 1 所示。
从运行时间看,有 SPAA 降维处理的 k-shape 算法运行速度明显比 k-shape 和 DTW 算法快。而 k-means
算法比较简单,因此运行速度显著比其他算法快,但是从 CVI 来看,k-shape 算法的 SIL、CH、D 比其
他算法更高,SPAA-k-shape 由于降维必然会损失一些特征,但很微小,说明 SPAA 在很大程度上保留了
Vol.13 No.2
June 2020 中国科技论文在线精品论文 219
特征,而且大幅降低了运行时间。供水工作对时效性的要求高,及时报警可以快速发现问题,有效降低
损失。另外,敏捷、快速感知异常是提高未来智慧水务管理效率的关键,降低运行时间可以更快、更及
时的得到结果,提高预测效率,满足预测结果的实时性要求。权衡综合指标和运行时间,SPAA-k-shape
算法仍然优于其他算法。
表1 SPAA-k-shape、k-shape、DTW、k-means 聚类算法的 CVI 对比
Tab. 1 CVI comparison of SPAA-k-shape, k-shape, DTW, k-means clustering algorithms
SPAA-k-shape k-shape
聚类数 k
时间/s SIL CH D 时间/s SIL CH D
2 6.129 0.664 9 45 331.3 0.052 7 8.276 0.686 2 45 031.8 0.053 8
3 7.277 0.350 0 57 367.7 0.129 4 14.141 0.430 2 56 835.9 0.124 6
4 9.316 0.637 4 62 373.6 0.044 8 19.153 0.658 6 69 668.5 0.045 7
5 11.257 0.743 2 65 705.1 0.054 1 23.211 0.775 0 65 937.6 0.054 4
6 13.135 0.923 7 82 202.5 0.885 7 27.208 0.946 2 82 144.8 0.863 8
7 14.175 0.838 2 73 765.8 0.176 2 33.254 0.831 1 74 031.0 0.190 5
8 16.183 0.810 0 79 520.9 0.055 2 40.386 0.811 2 79 795.3 0.065 5
DTW k-means
聚类数 k
时间/s SIL CH D 时间/s SIL CH D
2 15.452 0.575 0 69 795.3 0.005 4 0.093 0.642 4 80 138.8 0.015 6
3 19.113 0.447 8 57 322.7 0.053 9 0.122 0.703 7 69 151.6 0.169 7
4 25.348 0.350 9 48 198.7 0.163 4 0.147 0.633 7 62 386.7 0.829 0
5 30.175 0.604 1 45 073.4 0.505 1 0.157 0.523 2 55 881.8 0.133 6
6 37.288 0.489 6 35 198.1 0.234 0 0.167 0.613 2 50 068.8 0.034 4
7 48.159 0.458 9 37 322.7 0.094 8 0.172 0.390 7 45 153.6 0.036 0
8 57.746 0.339 0 23 198.7 0.038 8 0.188 0.433 3 41 538.0 0.009 9
3 结论
本文提出了一种基于 SPAA 降维方法的城市用水量曲线形态聚类算法 SPAA-k-shape,来进行用水量
曲线聚类。主要解决了用水量曲线数据维数多、训练时间长及曲线相似性度量难的问题。SPAA 算法不
仅可以降低数据维度,降低算法时间复杂度,而且考虑了数据段波动、斜率及首尾形态趋势,对用水量
曲线特征进行了保留。在此基础上,采用一种可辨识时间序列尺度、位移变化及噪声干扰的聚类算法——
k-shape 算法对降维后的数据进行聚类,并将原始数据基于聚类结果划分为不同类以提取用户用水量特
征。实验证明,该方法降维有效、分类准确,是一种有效的基于曲线形态的聚类算法。
本文算法对用水量曲线形态特性进行了降维及聚类,在此基础上进行用水量预测将是未来研究的方向。
[参考文献] (References)
[1] HERRERA M, TORGO L, IZQUIERDO J, et al. Predictive models for forecasting hourly urban water demand[J]. Journal of
Hydrology, 2010, 387(1): 141-150.
[2] HARTIGAN J A, WONG M A. Algorithm AS 136: a k-means clustering algorithm[J]. Journal of the Royal Statistical Society,
1979, 28(1): 100-108.
[3] BEZDEK J C, EHRLICH R, FULL W. FCM: the fuzzy c-means clustering algorithm[J]. Computers & Geosciences, 1984,
10(2-3): 191-203.
[4] 丁明,黄冯,邹佳芯,等. 改进谱聚类与遗传算法相结合的电力时序曲线聚类方法[J]. 电力自动化设备,2019,39(2):
第13 卷 第2 期
2020 年 6 月 刘春柳等:城市用水量曲线聚类算法的研究与实现 220
93-99,114.
DING M, HUANG F, ZOU J X, et al. Power time series curve clustering method combining improved spectral clustering and
genetic algorithm[J]. Electric Power Automation Equipment, 2019, 39(2): 93-99, 114. (in Chinese)
[5] 周璞,江志红. 自组织映射神经网络(SOM)降尺度方法对江淮流域逐日降水量的模拟评估[J]. 气候与环境研究,2016,
21(5):512-524.
ZHOU P, JIANG Z H. Simulation and evaluation of statistical downscaling of regional daily precipitation over
Yangtze-Huaihe river basin based on self-organizing maps[J]. Climatic and Environmental Research, 2016, 21(5): 512-524.
(in Chinese)
[6] 李海林,郭崇慧. 时间序列数据挖掘中特征表示与相似性度量研究综述[J]. 计算机应用研究,2013,30(5):1285-1291.
LI H L, GUO C H. Survey of feature representations and similarity measurements in time series data mining[J]. Application
Research of Computers, 2013, 30(5): 1285-1291. (in Chinese)
[7] KEOGH E, CHAKRABARTI K, PAZZANI M, et al. Dimensionality reduction for fast similarity search in large time series
databases[J]. Knowledge and Information Systems, 2001, 3(3): 263-286.
[8] 欧阳庭辉,查晓明,秦亮,等. 风电功率爬坡事件预测时间窗选取建模[J]. 中国电机工程学报,2015,35(13):3204-3210.
OUYANG T H, ZHA X M, QIN L, et al. Modeling on selection of the time window for ramp events prediction[J].
Proceedings of the CSEE, 2015, 35(13): 3204-3210. (in Chinese)
[9] 詹艳艳,徐荣聪,陈晓云. 基于斜率提取边缘点的时间序分段线性表示方法[J]. 计算机科学,2006,33(11)
:139-142,161.
ZHAN Y Y, XU R C, CHEN X Y. Time series piecewise linear representation based on slope extract edge point[J]. Computer
Science, 2006, 33(11): 139-142, 161. (in Chinese)
[10] WANG X, MUEEN A, DING H, et al. Experimental comparison of representation methods and distance measures for time
series data[J]. Data Mining and Knowledge Discovery, 2013, 26(2): 275-309.
[11] AGHABOZORGI S, SHIRKHORSHIDI A S, WAH T Y. Time-series clustering-A decade review[J]. Information Systems,
2015, 53(C): 16-38.
[12] DIMITRIADOU E, DOLNIČAR S, WEINGESSEL A. An examination of indexes for determining the number of clusters in
binary data sets[J]. Psychometrika, 2002, 67(1): 137-159.
[13] ROUSSEEUW P J. Silhouettes: a graphical aid to the interpretation and validation of cluster analysis[J]. Journal of
Computational & Applied Mathematics, 1987, 20(20): 53-65.
[14] MILLIGAN G W, COOPER M C. An examination of procedures for determining the number of clusters in a data set[J].
Psychometrika, 1985, 50(2): 159-179.
[15] DUNN J C. A fuzzy relative of the ISODATA process and its use in detecting compact well-separated clusters[J]. Journal of
Cybernetics, 1973, 3(3): 32-57.
(责任编辑:张媛媛)