3.4 基于分类性能的二重概念漂移检测机制
3.3节描述了基于K-means聚类的概念漂移检测机制,利用该算法可以快速地对数据流进行概念漂移检测,并能够识别一定的噪声。然而,基于K-means聚类的检测机制并不能检测出所有的概念漂移,该算法只对因先验概率P(X)发生变化而导致的概念漂移或数据流中出现的新的概念有较好的检测效果。对于数据流中的另一类概念漂移,即对因数据的后验概率(或条件概率)P(Y|X)发生改变而导致的概念漂移,则检测不出。基于这种原因,本节继续研究概念漂移问题。基于K-means聚类的概念漂移检测是从数据属性方面进行的,作为对3.3节方法的补充,本节讨论基于分类性能的概念漂移检测,引入一种基于伯努利分布的概念漂移检测机制。
在由一系列实例组成的数据集中,若实例的分布保持稳定,则分类错误率会减小;若实例的分布发生了改变,则分类错误率会增大[85]。文献[83]指出,分类错误率是一个服从伯努利分布的随机变量,所以可以利用伯努利分布的性质来评判分类错误率的变化,以此来检测概念漂移是否发生。
对于数据流中的某个窗口Wj,一共有n条实例,其中错误分类实例的个数为 errorj,则该数据窗口的分类错误率和标准差分别为
(3.1)
(3.2)
基于伯努利分布的概念漂移检测算法要求对每个数据窗口的分类错误率和标准差进行计算,在当前窗口Wi的数据到来后,利用分类器对其进行分类后可计算其分类错误率pi,结合上一窗口的分类错误率pi−1和标准差si−1,可根据不等式(3.3)进行概念漂移检测
(3.3)
式中,α为常数。若不等式(3.3)成立,则认为数据流中发生了概念漂移,这时,无论K-means聚类有没有检测到概念漂移现象的发生,均要对分类器进行增量式学习。反之,若不等式不成立,则认为数据稳定,未发生概念漂移。基于伯努利分布的概念漂移检测算法的伪代码如算法2所示。
算法2 基于伯努利分布的概念漂移检测算法的伪代码
基于伯努利分布的概念漂移检测算法非常简单,保证了流式数据的实时处理效果,因此在每次分类器进行分类后都可利用该方法做一次概念漂移检测。