基于改进随机森林的城市污水处理过程运行数据清洗方法
2021-05-26韩红桂赵子凡伍小龙杨士恒
韩红桂, 赵子凡, 伍小龙, 杨士恒, 何 政, 赵 楠
(1.北京工业大学信息学部, 北京 100124; 2.计算智能与智能系统北京市重点实验室, 北京 100124;3.北京城市排水集团有限责任公司, 北京 100044)
城市污水处理数据是实现污水处理过程运行状态监测、操作优化控制以及故障诊断等环节的重要依据,是提高城市污水处理效率和运营监管水平的信息基础. 由于城市污水处理过程运行环境复杂,多处于泥水混合状态,具有腐蚀性强、干扰多等特点,检测设备获取的数据受污染严重,易出现缺失、离群等异常现象,这为城市污水处理过程数据的分析、处理和运用带来困扰. 如何获取高质量数据、降低异常数据影响已成为污水处理过程数据应用面临的挑战. 为此,城市污水处理厂通常在数据应用过程中采用数据清洗方法,识别异常数据特征,并对异常数据进行剔除和补偿,保证数据的可信度. 然而,城市污水处理过程数据存在异常特征多样,包括离群数据、重复数据和缺失数据等,异常数据难以被识别和重新补偿,导致数据清洗效果不理想.
针对异常数据特征难以识别的问题,基于概率分布的异常数据识别方法被广泛应用. 该方法主要通过分析污水处理过程数据的分布特性,给定正常数据置信区间,当数据超出置信区间时则判定为异常数据[1-2]. 该方法主要适用于变量数据存在可辨识的分布特性,如高斯分布、泊松分布等[3],但污水处理数据采集受进水波动、工况变化影响,往往不完全服从单一的分布特性,导致基于概率分布的分析方法无法准确判别异常数据的存在. 为了提高异常数据识别精度,一类聚类算法通过对比数据或数组之间的相似,分析数据存在的离群特征,能够判别数据异常. 例如,费欢等[4]采用K均值聚类算法计算数据点的聚类中心,并定义异常数据离群距离,判定远离聚类中心的数据为异常数据;黄艳国等[5]设计了改进的模糊C均值聚类异常值识别方法,在模糊C均值聚类算法的基础上加入历史先验数据进行初始聚类中心的优化,用非整数单位化方法对异常值描述;Chen等[6]提出一种改进K均值聚类算法进行异常数据识别,通过最大距离选取初始聚类中心,引入信息熵计算各个属性的权重,计算各样本数据的加权欧氏距离,并依据距离对比判定异常数据. 虽然聚类算法依据样本数据点的距离计算识别异常数据,克服了概率分布方法需要寻找特定概率分布的特性,提高了异常值识别的正确率,但当数据密度大且差异大时,基于聚类算法的异常数据识别方法仅能找出数据的全局离群点,而难以识别局部数据的离群特征. 为此,Breunig等[7]提出了局部离群因子(local outlier factor,LOF)算法,计算邻近数据间距离,根据数据相对于周围邻域的孤立程度,确定异常数据[7]. 该算法虽然解决了基于聚类算法的异常数据识别方法易忽略数据局部异常问题,但通过反复计算邻域距离和密度确定异常数据,计算量大,异常数据剔除效率差.
针对异常数据识别后剔除和补偿,城市污水处理厂通常采用格拉布斯检验方法补偿异常数据. 该方法主要通过依次检验数据中的最值是否属于离群值,并用检验后数据集的中位数、平均数或众数代替[8-9],但该方法用固定数值代替异常数据,与真实数据仍然存在显著差距. 李攀宏等[10]提出了一种双重插值方法,用线性插值方法估计参数,再用拉格朗日线性插值获得待插值数据的校正值,从而获得异常数据补偿值,但污水处理过程变量变化成非线性时变特征,当数据变化剧烈时,线性插值往往不能准确补偿异常值;刘峻清等[11]提出了一种周期时间序列的数据补偿算法,用时间序列分解将污水处理数据划分为趋势项、周期项和残余项,用异常值剔除前的趋势项与周期项之和代替异常值. 该方法能够拟合多种工况下变量数据的变化趋势,并在趋势内插值补偿异常值,但该方法过于依赖异常数据随时间的变化值,对存在复杂变化且连续异常的数据补偿效果较差. 为此,Purwar等[12]在近邻算法研究中给出了处理连续异常数据的补偿方案,该方案在完整数据集中使用样本距离计算数据间的相似度,以若干个最相似完整样本的均值连续补偿异常值;李国和等[13]提出一种基于聚类的递归充填方法,使用同类簇的均值对连续缺失数据进行预填充,并运用同类簇的均值修正异常数据补偿值. 但上述方法过于依赖异常数据近邻域的数据质量,无法针对数据集中任意连续或间断性异常数据进行准确补偿. 为了解决该问题,Zhang等[14]利用T-S模糊神经网络实现数据段任意异常值的补偿,该方法通过真实数据模拟变量数据变化的趋势,并利用在线学习算法和检测数据不断校正网络参数,确保数据集中任意段异常数据补偿的准确性;Peng等[15]提出一种基于反向传播神经网络的数据清洗方法,用遗传算法对神经网络初始权值的阈值进行优化,并借助其他相关变量的有效数据,获得精度较高的异常数据补偿值. 然而,T-S模糊神经网络和反向传播神经网络在进行异常数据补偿前,需要确保训练网络数据的有效,因此还需要其他异常数据识别方法辅助判别数据的有效性. 此外,实际污水处理数据中,异常数据不仅包含单个变量的连续异常或间断异常特征,而且还包含多个变量数据的同步或异步等多种异常特征的混合类型,而现有的异常数据补偿方法还无法针对混合类型的异常数据进行有效补偿.
通过对上述问题的分析,文中提出了一种基于改进随机森林的数据清洗方法,实现对混合类型污水异常数据的清洗. 首先,设计了一个基于孤立森林异常数据识别模型对污水数据的离群点进行识别并剔除;其次,建立了一种改进型随机森林回归模型,实现对数据变化趋势的拟合预测;最后,用改进的随机森林方法对剔除后的数据集进行补偿. 文中提出的随机森林算法不仅实现异常数据的快速识别,同时能够针对混合类型的异常数据进行任意补偿. 综合实验表明,基于改进随机森林的数据清洗方法能够有效清洗混合类型异常数据,提高城市污水处理过程数据的质量.
1 污水异常数据
1.1 污水运行数据特点
城市污水处理过程是一个复杂的工业过程,运行数据是从现场传感器采集到,通过在线监测设备局域网储存到服务器中的数据,为污水处理过程状态估计和性能分析提供依据. 然而,城市污水处理过程数据出现异常现象频率高,易影响数据的处理和使用,常见的异常数据特点如下:
1) 数据缺失严重. 受到检测设备机械或数据传输故障影响,城市污水处理数据易存在丢包现象,导致数据存在连续或间断性缺失;此外,人为的误操作会导致数据的格式化、误分区、误删除等,易引发数据文件丢失.
2) 数据离群度高. 城市污水处理过程具有腐蚀性、时变性等特点,导致设备在线检测的结果易出现较大偏差;同时局限于当前污水处理参数检测技术,当变量波动范围大时,易出现超量程或漂移等现象,导致数据离群度较高.
3) 数据异常随机性大. 根据城市污水处理过程机理分析可知,污水处理过程变量存在相关性,但变量数据发生异常现象相互独立,不同时间随机发生异常,往往在同一检测时段存在单个或几个变量的异常,且异常特征不同(连续或者间断性异常).
1.2 污水异常数据分类
通过对污水原始数据分析可知,污水异常数据主要分为以下3类:离群数据、重复数据和缺失数据. 离群数据是明显偏离其余数值的数据;重复数据为多个时刻出现同一数值的数据,根据污水处理过程动态特性,该类数据被判定为异常数据;缺失数据是某时刻没有采集到的数据或出现数据空缺. 而污水数据变量、参数众多,异常数据不以单一类型出现,往往是以多种异常特征同时出现. 当前对污水数据清洗研究局限于针对单一类型异常数据的清洗方法,尚没有针对不同类型混合的异常数据清洗方法,当沿用传统的概率分布、聚类算法以及智能算法等对不同类型混合的异常数据清洗时,效果仍然难以满足污水处理过程对数据质量的要求. 因此本文提出一种基于改进随机森林的数据清洗方法,以实现对不同类型混合的异常数据进行清洗.
2 异常数据剔除
2.1 孤立森林异常数据识别模型
为了快速准确识别异常数据,文中构建了基于孤立森林(isolation forest,IF)的异常数据识别模型. IF是一种决策树集成学习方法,IF算法首先对已知且连续时间的数据集进行随机划分,然后通过利用异常数据和正常数据的差异性,实现快速准确的识别. 与基于距离的异常识别算法相比,IF算法不需要经过距离或密度计算来识别异常数据,具有较低的计算复杂度[16-17]. IF模型由a棵隔离树组成,如图1所示,算法步骤如下.
图1 孤立森林模型Fig.1 Isolated forest model
步骤1从训练数据矩阵X中随机抽取一个子样本矩阵Xz,作为第b棵树根节点的集合,其中b=1, 2, 3,…,a,a为根节点的个数,训练数据矩阵X、子样本矩阵Xz用公式表示为
X=[x1,x2,x3,…,xn]
(1)
Xz=[x1,x2,x3,…,xnz]
(2)