吳紹華1,李少波2,侯稀垟1,陳金坤1
?。?. 貴州大學 計算機科學與技術(shù)學院,貴州 貴陽 550025;2. 貴州大學 機械工程學院,貴州 貴陽 550025)
摘要:隨著制造業(yè)領(lǐng)域工藝技術(shù)的不斷進步,大量感知設(shè)備如同人體器官一樣,被部署到制造過程中的各個重要節(jié)點,產(chǎn)生著海量制造過程數(shù)據(jù)。針對這些海量制造過程數(shù)據(jù),制造業(yè)領(lǐng)域越來越需要科學、敏捷、高效的數(shù)據(jù)分析平臺,為制造過程數(shù)據(jù)的分析提供智力支持和決策支持。針對這種需求,文章采用高維數(shù)據(jù)聚類技術(shù)結(jié)合Spring、Mybatis等成熟的敏捷開發(fā)框架,開發(fā)了制造過程數(shù)據(jù)分析平臺。該設(shè)計不僅可以針對歷史數(shù)據(jù)進行分析,還可以實時監(jiān)控生產(chǎn)線上的動態(tài)流程數(shù)據(jù),提高數(shù)據(jù)分析和決策效率。
關(guān)鍵詞:高維數(shù)據(jù);聚類;Bootstrap;Spring;Mybatis
中圖分類號:TP311.13文獻標識碼:ADOI: 10.19358/j.issn.1674-7720.2017.01.026
引用格式:吳紹華,李少波,侯稀垟,等. 基于高維數(shù)據(jù)聚類的制造過程數(shù)據(jù)分析平臺[J].微型機與應(yīng)用,2017,36(1):86-88,92
0引言
隨著制造過程的不斷復(fù)雜化、精確化,制造過程中生產(chǎn)的線管理和監(jiān)控消耗了大量的人力和財力;而且對于生產(chǎn)線產(chǎn)生的海量實時高維數(shù)據(jù)只是進行了簡單的預(yù)處理和存儲,沒有進行有效的數(shù)據(jù)分析,并將分析結(jié)論應(yīng)用于制造過程的決策,造成了數(shù)據(jù)浪費[1]。為提高和完善制造過程中的工藝流程、生產(chǎn)參數(shù),以及對制造過程異常進行輔助決策,進一步提升產(chǎn)品質(zhì)量,以滿足實際需求,開發(fā)了該平臺,實現(xiàn)制造過程信息化和規(guī)范化。平臺服務(wù)端采用Spring、Mybatis框架,方便代碼的開發(fā)、復(fù)用、移植、擴展和維護;平臺整體采用MVC設(shè)計思想[2],通過依賴注入降低Model、View和Controler之間的耦合度,使代碼高內(nèi)聚低耦合,彼此保持相對獨立,減少模塊間依賴程度。在平臺安全性上,采用了攔截器技術(shù),以此來保證平臺安全,其次采取了平臺權(quán)限策略,對于不同的用戶身份,給予不同的訪問權(quán)限,對制造過程涉密數(shù)據(jù)進行保護。
1主要相關(guān)技術(shù)簡介
1.1高維數(shù)據(jù)聚類
隨著制造業(yè)及相關(guān)學科的飛速發(fā)展,對于制造過程中產(chǎn)生的海量數(shù)據(jù)的觀察角度和分析深度亦在逐步擴大和加深。于是,針對生產(chǎn)過程這一對象,將生產(chǎn)過程中的各個要素數(shù)據(jù)抽象成高維數(shù)據(jù)。在有效存儲這些海量高維數(shù)據(jù)的同時,需要對這些數(shù)據(jù)進行有效的分析,然后利用分析結(jié)論來輔助決策和指導(dǎo)生產(chǎn)[3]。
在高維數(shù)據(jù)分析領(lǐng)域,一個很重要的分析手段就是高維數(shù)據(jù)聚類。高維數(shù)據(jù)聚類方法又大致可以分為基于降維的聚類、基于超圖的聚類、子空間聚類、聯(lián)合聚類[4]和基于樣本加權(quán)的集成聚類算法。因為在制造業(yè)生產(chǎn)過程中每類數(shù)據(jù)對制造過程影響的程度是不同的,而且存在噪聲點,所以本文采用的是基于樣本加權(quán)的集成聚類算法[56]。
對于海量高維數(shù)據(jù)聚類,數(shù)據(jù)往往包含相異度較高的屬性,直接使用歐式距離這一相似度量屬性不再具有很高的可行性,基于經(jīng)典kmeans算法不再能產(chǎn)生高質(zhì)量的聚類結(jié)果。而加權(quán)的kmeans聚類方法解決了傳統(tǒng)聚類樣本對聚類中心影響都是等價的這一缺點,充分考慮到用戶對每個對象或?qū)傩钥粗爻潭炔煌?,通過權(quán)重分配,對樣本一次性賦權(quán)值,在聚類算法計算過程中,將樣本分配到最合適的簇中,進而提高聚類結(jié)果的質(zhì)量。
1.2平臺框架
平臺采用B/S架構(gòu)。在前端使用技術(shù)比較成熟的Bootstrap前端框架。首先,Bootstrap有非常完備的代碼規(guī)范,在其基礎(chǔ)之上創(chuàng)建項目,后期的代碼維護會十分簡單清晰;第二,基于Less、Mixin輔助完成簡單語義化的布局,這樣的CSS預(yù)處理技術(shù)大大增加了代碼可讀性;第三,Bootstrap提供了大量的、復(fù)用性強的前端組件和插件,大大提升了開發(fā)效率,豐富了平臺UI。在服務(wù)器端,采用Spring框架,使用Spring的IOC容器[7],對象的管理完全交給Spring,減少了組件之間的關(guān)聯(lián)性和耦合度,使開發(fā)人員更專注于主要的業(yè)務(wù)邏輯;Spring的AOP功能可以實現(xiàn)面向切面編程,在本平臺中,其主要用于登錄日志和異常日志的記錄和管理,增加了程序健壯性;Spring屬于輕量級服務(wù)器框架,對代碼的污染度和侵入性都很低,這種高度的代碼開放性,并不強制依賴于Spring,可以根據(jù)平臺需求,自由選擇需要的功能[8]。在數(shù)據(jù)持久層開發(fā)上,選擇了輕量級、穩(wěn)定性高的Mybatis。Mybatis將SQL語句放在XML文件中,方便了SQL語句的管理,減少了SQL語句和程序代碼的耦合度[7];Mybatis支持動態(tài)SQL,大大簡化了動態(tài)查詢過程,降低了查詢代碼量;Mybatis提供標簽映射,支持對象與數(shù)據(jù)庫的ORM字段關(guān)系映射;Mybatis以接口方式被服務(wù)層代碼調(diào)用,使持久層代碼的開發(fā)也更加面向?qū)ο螅蟠蟮胤奖懔顺绦虻拈_發(fā)和整個軟件開發(fā)周期內(nèi)的代碼維護。在數(shù)據(jù)庫選擇上,采用MySQL數(shù)據(jù)庫,它是支持多平臺、免費開源的數(shù)據(jù)庫,具有很好的安全性和并發(fā)性,十分適用于平臺開發(fā)。
2高維數(shù)據(jù)聚類模塊與Spring、Mybatis框架整合的平臺結(jié)構(gòu)
2.1平臺整體架構(gòu)
該平臺選擇Eclipse作為開發(fā)IDE,選擇Bootstrap作為前端開發(fā)框架,結(jié)合jQuery等開發(fā)技術(shù),采用Spring和Mybatis作為服務(wù)端開發(fā)框架,數(shù)據(jù)庫采用MySQL。在業(yè)務(wù)邏輯上分為表現(xiàn)層、業(yè)務(wù)邏輯層和數(shù)據(jù)持久化層。在業(yè)務(wù)邏輯層中采用加權(quán)的高維數(shù)據(jù)聚類技術(shù)[9],對制造過程高維數(shù)據(jù)進行分析,在表現(xiàn)層對數(shù)據(jù)進行可視化,展現(xiàn)給用戶。平臺的總體結(jié)構(gòu)如圖1所示。
2.2平臺設(shè)計原理
該平臺采用三層架構(gòu),自上而下分別是可視化表現(xiàn)層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久化層??梢暬憩F(xiàn)層主要應(yīng)用了Bootstrap、jQuery和Cascading Style Sheets,當瀏覽器向服務(wù)端發(fā)出請求,請求會交給前端控制器DispacherServlet處理,DispacherServlet控制器通過HandlerMapping找到相應(yīng)的Controller組件處理請求,執(zhí)行Controller組件相應(yīng)的模塊,其中最主要的模塊之一就是高維數(shù)據(jù)聚類模塊,在此部分完成對制造過程高維數(shù)據(jù)的聚類操作,在執(zhí)行完相應(yīng)模塊的業(yè)務(wù)之后,模塊可以返回一個ModelAndView對象,該對象封裝了視圖名稱信息和處理結(jié)果數(shù)據(jù)集,控制器接收到ModelAndView以后,調(diào)用ViewResolver組件定位View并傳遞信息,生成需要返回的響應(yīng)界面。
3數(shù)據(jù)分析平臺的實現(xiàn)
3.1平臺核心工作流程設(shè)計
本節(jié)主要介紹平臺的核心模塊——制造過程數(shù)據(jù)聚類模塊的工作流程。首先啟動平臺,該模塊讀取數(shù)據(jù)庫已經(jīng)存儲的高維數(shù)據(jù)和生產(chǎn)線產(chǎn)生的實時制造過程高維數(shù)據(jù);對于這些數(shù)據(jù),進行一次性分配權(quán)重,隨機生成k個類中心,每個類中心對應(yīng)一個簇;分配每條數(shù)據(jù)樣本到其最近的加權(quán)類中心,生成新的加權(quán)類中心,然后不斷迭代這個過程,直到所有類中心穩(wěn)定,或者達到平臺規(guī)定的迭代次數(shù)(避免陷入死循環(huán)),一次聚類過程到此完成[5]。具體流程圖見圖2。
3.2平臺所采用的聚類算法
在高維數(shù)據(jù)聚類模塊中,生成基聚類的算法主要是經(jīng)典的kmeans聚類算法。另一個主要的算法是計算加權(quán)中心。其中X={x1,x2,...,xn},X={xT1,xT2,...,xTn}∈Rn×d為其矩陣表示形式, d是每一個數(shù)據(jù)樣本維度,n為數(shù)據(jù)樣本的個數(shù)。C={Cr1,Cr2,...,Crk}是具有R個聚類解的集合,Cr={Cr1,Cr2,...,Crk}為每一個聚類,r=1,2,…R,即算法將數(shù)據(jù)集合X劃分為k個不相交的簇,每一次迭代中分配樣本至離樣本最近的簇,然后計算加權(quán)之后的聚類中心,計算加權(quán)中心公式如下:
其中wi為權(quán)重,xi為第i個樣本[9]。
4結(jié)論
本設(shè)計主要以高維數(shù)據(jù)聚類算法為核心,針對制造過程數(shù)據(jù)的高維稀疏性和不適定性[10],對高維數(shù)據(jù)采用了加權(quán)聚類的方式,彌補了傳統(tǒng)制造過程聚類方法聚類效果缺乏魯棒性和聚類效果不理想的缺點,一定程度上改善了聚類效果;該平臺集成了Bootstrap、Spring、Mybatis這幾種輕量級框架,采用了經(jīng)典的MVC服務(wù)器設(shè)計思想,在平臺架構(gòu)上,使模型層、視圖層、控制層這三者相對獨立[11],提高了平臺的內(nèi)聚性,降低了平臺的耦合度,便于開發(fā)人員并行開發(fā),提升了開發(fā)效率,提高了平臺可擴展性和可維護性。
參考文獻
?。?] 包洋. 面向制造業(yè)的數(shù)據(jù)挖掘技術(shù)研究與應(yīng)用[D].上海:東華大學,2006.
?。?] 李剛.輕量級Java EE企業(yè)應(yīng)用實戰(zhàn)[M].北京: 電子工業(yè)出版社,2011.