吴绍华1,李少波2,侯稀垟1,陈金坤1
(1. 贵州大学 计算机科学与技术学院,贵州 贵阳 550025;2. 贵州大学 机械工程学院,贵州 贵阳 550025)
摘要:随着制造业领域工艺技术的不断进步,大量感知设备如同人体器官一样,被部署到制造过程中的各个重要节点,产生着海量制造过程数据。针对这些海量制造过程数据,制造业领域越来越需要科学、敏捷、高效的数据分析平台,为制造过程数据的分析提供智力支持和决策支持。针对这种需求,文章采用高维数据聚类技术结合Spring、Mybatis等成熟的敏捷开发框架,开发了制造过程数据分析平台。该设计不仅可以针对历史数据进行分析,还可以实时监控生产线上的动态流程数据,提高数据分析和决策效率。
关键词:高维数据;聚类;Bootstrap;Spring;Mybatis
中图分类号:TP311.13文献标识码:ADOI: 10.19358/j.issn.1674-7720.2017.01.026
引用格式:吴绍华,李少波,侯稀垟,等. 基于高维数据聚类的制造过程数据分析平台[J].微型机与应用,2017,36(1):86-88,92
0引言
随着制造过程的不断复杂化、精确化,制造过程中生产的线管理和监控消耗了大量的人力和财力;而且对于生产线产生的海量实时高维数据只是进行了简单的预处理和存储,没有进行有效的数据分析,并将分析结论应用于制造过程的决策,造成了数据浪费[1]。为提高和完善制造过程中的工艺流程、生产参数,以及对制造过程异常进行辅助决策,进一步提升产品质量,以满足实际需求,开发了该平台,实现制造过程信息化和规范化。平台服务端采用Spring、Mybatis框架,方便代码的开发、复用、移植、扩展和维护;平台整体采用MVC设计思想[2],通过依赖注入降低Model、View和Controler之间的耦合度,使代码高内聚低耦合,彼此保持相对独立,减少模块间依赖程度。在平台安全性上,采用了拦截器技术,以此来保证平台安全,其次采取了平台权限策略,对于不同的用户身份,给予不同的访问权限,对制造过程涉密数据进行保护。
1主要相关技术简介
1.1高维数据聚类
随着制造业及相关学科的飞速发展,对于制造过程中产生的海量数据的观察角度和分析深度亦在逐步扩大和加深。于是,针对生产过程这一对象,将生产过程中的各个要素数据抽象成高维数据。在有效存储这些海量高维数据的同时,需要对这些数据进行有效的分析,然后利用分析结论来辅助决策和指导生产[3]。
在高维数据分析领域,一个很重要的分析手段就是高维数据聚类。高维数据聚类方法又大致可以分为基于降维的聚类、基于超图的聚类、子空间聚类、联合聚类[4]和基于样本加权的集成聚类算法。因为在制造业生产过程中每类数据对制造过程影响的程度是不同的,而且存在噪声点,所以本文采用的是基于样本加权的集成聚类算法[56]。
对于海量高维数据聚类,数据往往包含相异度较高的属性,直接使用欧式距离这一相似度量属性不再具有很高的可行性,基于经典kmeans算法不再能产生高质量的聚类结果。而加权的kmeans聚类方法解决了传统聚类样本对聚类中心影响都是等价的这一缺点,充分考虑到用户对每个对象或属性看重程度不同,通过权重分配,对样本一次性赋权值,在聚类算法计算过程中,将样本分配到最合适的簇中,进而提高聚类结果的质量。
1.2平台框架
平台采用B/S架构。在前端使用技术比较成熟的Bootstrap前端框架。首先,Bootstrap有非常完备的代码规范,在其基础之上创建项目,后期的代码维护会十分简单清晰;第二,基于Less、Mixin辅助完成简单语义化的布局,这样的CSS预处理技术大大增加了代码可读性;第三,Bootstrap提供了大量的、复用性强的前端组件和插件,大大提升了开发效率,丰富了平台UI。在服务器端,采用Spring框架,使用Spring的IOC容器[7],对象的管理完全交给Spring,减少了组件之间的关联性和耦合度,使开发人员更专注于主要的业务逻辑;Spring的AOP功能可以实现面向切面编程,在本平台中,其主要用于登录日志和异常日志的记录和管理,增加了程序健壮性;Spring属于轻量级服务器框架,对代码的污染度和侵入性都很低,这种高度的代码开放性,并不强制依赖于Spring,可以根据平台需求,自由选择需要的功能[8]。在数据持久层开发上,选择了轻量级、稳定性高的Mybatis。Mybatis将SQL语句放在XML文件中,方便了SQL语句的管理,减少了SQL语句和程序代码的耦合度[7];Mybatis支持动态SQL,大大简化了动态查询过程,降低了查询代码量;Mybatis提供标签映射,支持对象与数据库的ORM字段关系映射;Mybatis以接口方式被服务层代码调用,使持久层代码的开发也更加面向对象,大大地方便了程序的开发和整个软件开发周期内的代码维护。在数据库选择上,采用MySQL数据库,它是支持多平台、免费开源的数据库,具有很好的安全性和并发性,十分适用于平台开发。
2高维数据聚类模块与Spring、Mybatis框架整合的平台结构
2.1平台整体架构
该平台选择Eclipse作为开发IDE,选择Bootstrap作为前端开发框架,结合jQuery等开发技术,采用Spring和Mybatis作为服务端开发框架,数据库采用MySQL。在业务逻辑上分为表现层、业务逻辑层和数据持久化层。在业务逻辑层中采用加权的高维数据聚类技术[9],对制造过程高维数据进行分析,在表现层对数据进行可视化,展现给用户。平台的总体结构如图1所示。
2.2平台设计原理
该平台采用三层架构,自上而下分别是可视化表现层、业务逻辑层、数据持久化层。可视化表现层主要应用了Bootstrap、jQuery和Cascading Style Sheets,当浏览器向服务端发出请求,请求会交给前端控制器DispacherServlet处理,DispacherServlet控制器通过HandlerMapping找到相应的Controller组件处理请求,执行Controller组件相应的模块,其中最主要的模块之一就是高维数据聚类模块,在此部分完成对制造过程高维数据的聚类操作,在执行完相应模块的业务之后,模块可以返回一个ModelAndView对象,该对象封装了视图名称信息和处理结果数据集,控制器接收到ModelAndView以后,调用ViewResolver组件定位View并传递信息,生成需要返回的响应界面。
3数据分析平台的实现
3.1平台核心工作流程设计
本节主要介绍平台的核心模块——制造过程数据聚类模块的工作流程。首先启动平台,该模块读取数据库已经存储的高维数据和生产线产生的实时制造过程高维数据;对于这些数据,进行一次性分配权重,随机生成k个类中心,每个类中心对应一个簇;分配每条数据样本到其最近的加权类中心,生成新的加权类中心,然后不断迭代这个过程,直到所有类中心稳定,或者达到平台规定的迭代次数(避免陷入死循环),一次聚类过程到此完成[5]。具体流程图见图2。
3.2平台所采用的聚类算法
在高维数据聚类模块中,生成基聚类的算法主要是经典的kmeans聚类算法。另一个主要的算法是计算加权中心。其中X={x1,x2,...,xn},X={xT1,xT2,...,xTn}∈Rn×d为其矩阵表示形式, d是每一个数据样本维度,n为数据样本的个数。C={Cr1,Cr2,...,Crk}是具有R个聚类解的集合,Cr={Cr1,Cr2,...,Crk}为每一个聚类,r=1,2,…R,即算法将数据集合X划分为k个不相交的簇,每一次迭代中分配样本至离样本最近的簇,然后计算加权之后的聚类中心,计算加权中心公式如下:
其中wi为权重,xi为第i个样本[9]。
4结论
本设计主要以高维数据聚类算法为核心,针对制造过程数据的高维稀疏性和不适定性[10],对高维数据采用了加权聚类的方式,弥补了传统制造过程聚类方法聚类效果缺乏鲁棒性和聚类效果不理想的缺点,一定程度上改善了聚类效果;该平台集成了Bootstrap、Spring、Mybatis这几种轻量级框架,采用了经典的MVC服务器设计思想,在平台架构上,使模型层、视图层、控制层这三者相对独立[11],提高了平台的内聚性,降低了平台的耦合度,便于开发人员并行开发,提升了开发效率,提高了平台可扩展性和可维护性。
参考文献
[1] 包洋. 面向制造业的数据挖掘技术研究与应用[D].上海:东华大学,2006.
[2] 李刚.轻量级Java EE企业应用实战[M].北京: 电子工业出版社,2011.