传感器数据信息发掘
数据挖掘是信息发掘过程的关键部分(图 1 ),它采用一套自动和半自动的方法进行关系建模,找到隐藏在大型数据库中的模式 [2, 3] 。
|
该技术思想来源于多种学科,包括统计、机械学习、模式识别、数据基础系统、信息理论和人工智能等。
数据挖掘曾成功的应用在传感器数据分析上,例如人类活动监控 [4] 、车辆监控 [5] 、振动分析等 [6] 。本文对该技术进行简要介绍,阐述挖掘传感器数据时必须要克服的某些技术难题。
预处理步骤
在应用数据挖掘技术之前,必须先对原始数据进行一系列预处理,将其转换为适用于后续处理的格式。典型的预处理步骤包括:
- 特征提取 ——使用事件探测、特征选择、特征转换等技术(包括归一化和傅立叶或者小波变换应用等)来确定数据挖掘任务的相关属性。
- 数据清洁 ——解决数据质量问题,例如,噪声、溢出、遗漏以及失准误差等。
- 数据缩减 ——为了缩短处理时间,降低数据易变性,采用了统计抽样和数据集中等技术。
- 维数缩减 ——为减小数据挖掘算法中的特征数,常用的线性和非线性维数缩减技术包括主分量分析( PCA )、 ISOMAP 和局部线性埋入( LLE )等。
数据挖掘大致可以分成四个不同的任务,在下面的四节中分别进行讨论。
预测建模
预测建模的目的是根据目标属性过去采样样本值,建立能够预测目标属性未来数值的模型。预测建模的方法较多,包括树、规则、最近邻域、逻辑回归、人工神经网络、图形方法和支撑矢量机等 [2] 。这些方法用于解决两类预测建模任务:分类和回归。分类处理离散值目标属性;而回归处理连续值目标属性。例如,可以认为检测生产线上的产品合格与否属于分类任务,而预测夏天的降雨总量则是回归任务。
图 2 所示为分类的 2D 数据曲线实例。
A |
每一数据点代表车辆发动机上温度和振动传感器测量的数值。显示为十字叉的数据是在发动机正常工作时测得的,而正方形数据则是发动机将要出现故障时测得的。可以训练一个分类机来预测发动机是否会正常工作,是否需要维修。训练分类机意味着掌握属于不同类别、各个测量数据的判决边界。因此,落在图 2 中边界之内的任何测量数据都分类为正常工作,边界之外的则表明为故障状态。
注意,每一种分类方法都有自己的表征方式,以及掌握判决边界位置的方式。某些技术(例如,人工神经网络和最近领域分类等)能够产生非常灵活的边界,可以对任何类型的分类问题进行建模。有些技术会产生非常严格的边界,例如判决树分类法产生的超矩形等。有的技术试图拟合以前所有观察到的样本(包括噪声),结果导致出现称为 过度适配 的问题。因此,需要认真选择分类技术,确保产生的边界不会出现训练数据的过度适配。
聚类分析
聚类分析将数据集分成几个组,与不同组的数据点相比,属于同一组的数据点更具有相似性。聚类分析常用的方法包括 k 平均、自组织映射、高斯混合模型、分层聚类、子空间聚类、图形算法(例如, Chameleon 和频域聚类),以及密度算法等(例如, Denclue 和 DBScan ) [2] 。
这些方法的差别在于怎样计算数据点之间的距离,以及怎样确定数据点的分组。 K 平均使用欧几里德距离作为基本测量,将距离中心位置最近的数据点放入分组中。图 3 所示为地球科学领域中,对测量数据采用 k 平均分类后的结果。
> 图 3. 地球科学数据的 k 平均分类 |
地图上的每一位置由天气和地理特征进行表征,例如,温度、降雨、土壤湿度和植被等。科学家使用聚类分析可以确定在天气和地理样本上相似的地区。
联合分析
联合分析意在发掘从数据中提取的事件之间较强的共生关系。对发掘到的关系以逻辑标准进行编码。例如,从穿戴式人体监控设备收集到的传感器数据中产生以下标准,显示了人睡觉时传感器的典型读数:
(热通量 ∈ [4.48, 12.63] AND 加速计 ∈ [0.86, 1.04]) _ 活动 = 睡眠(精度 = 99.94% )
图 4 显示了人睡觉(红色)或者进行其他活动(蓝色)时的热通量和加速计测量数据的分布情况。
> 图 4. 人体被试的热通量和加速计读数分布;红色点表示被试睡眠时的测量结果,蓝色点表示被试进行其他活动时的测量结果。 |
注意,前面标准得出的红色点密集区是该领域专家很容易理解的逻辑描述。尽管这一标准并没有涵盖所有的睡眠情况,但是其准确度非常高( >99% )。联合分析算法还会产生许多其他标准,涉及到特征空间的其他区域,为方便阐述,这里只介绍了其中之一。
联合分析还可以发掘更复杂的结构,包括顺序和子图模式等。例如,最近开发了一种顺序模式发掘算法,用于挖掘通用汽车公司车间组装线上产生的事件记录 [7] 。采用这种方法,可以获得组装线上与不同状态码相关的模式。这些信息能够帮助提高生产线的吞吐量。
异常检测
异常检测也称为溢出或者偏移检测,用于找到数据中不正常的情况。常用方法是建立数据正常情况的特征参数(图 5 ),利用它来计算其他观察点的不正常数值。
> 图 5. 从时间片断上检测不正常情况;左上角的时间片断是正常情况,而其他曲线均含有某些不正常情况。 |
异常检测最常用的方法是 Grubbs 测试、 boxplots 、距离、密度和分组等统计方法。在基于距离的方法中,正常情况是每一观察点与其相应 k 阶最近邻域保持平均距离。如果某一观察点与其 k 阶最近邻域的距离明显大于总平均值,那么可以认为该观察点情况不正常。
异常检测算法的关键问题是要维持较高的检出率,同时又要保持较低的误报率。这就需要对正常情况建立精确而又典型的特征描述,这在大规模传感器网络应用中较难实现。
需要考虑的问题
在传感器数据处理上应用数据挖掘技术时必须考虑几个问题。首先,我们要确定合适的计算模型。有两种常用的计算模型:中心式和分布式(点对点) [8] 。在中心式模型中,每一个传感器将其采集到的数据传送给一个中心服务器,服务器汇总传感器读数,对汇总数据进行详细分析。这种方法的一个显著缺点是能量消耗大,带宽占用也较大。而且,它无法灵活处理大量传感器的情况。另一方面,分布式模型要求每一个传感器在本地完成一些计算,然后将部分结果传送给其他节点,得到全局结果。这种方法更合适一些,但是要求每一个传感器都有处理器,支持一定的存储和计算功能。
传感器数据表征是数据挖掘算法面临的另一难题。这些数据噪声较大,具有较大的不确定性。基于概率的算法比较适合处理这类问题。另一问题是由传感器故障导致的数据丢失。有多种途径可以解决这一问题,例如,在预处理或者挖掘阶段,丢掉观察数据或者根据其他数据的分布来估算真实数值等。某些应用中产生大量传感器数据,很难采用需要将全部数据存储到主存储器中的算法。在处理大量数据问题上,在线算法可以很好的替代普通的批处理算法。最后,数据挖掘算法必须考虑概念偏离的影响,被监控过程的特征随时间而变,致使已有模型过时。可以采用能够帮助模型“忘记”以前信息的机制来解决这一问题。
总之,数据挖掘为科学家和工程师提供了一系列自动工具,帮助他们发现隐藏在大量传感器数据中的有用信息。该技术也为数据挖掘研究人员提供了机会,使他们能够开发更高级的方法来处理传感器数据涉及到的某些特定问题。关于商用和已公开数据挖掘软件包的情况,请访问 www.kdnuggets.com/software/index.html 。
文章版权归西部工控xbgk所有,未经许可不得转载。