李敏波 丁 鐸 易 泳
1.復旦大學軟件學院, 上海,200433 2.復旦大學上海市數(shù)據(jù)科學重點實驗室, 上海,200433
隨著工業(yè)化與信息化的深度融合,信息技術滲透到工業(yè)企業(yè)產(chǎn)業(yè)鏈的各個環(huán)節(jié),條形碼/二維碼、RFID、工業(yè)傳感器、工業(yè)自動控制系統(tǒng)、ERP、MES、CAD/CAM/CAE/CAI 等技術廣泛應用于制造業(yè),尤其是隨著互聯(lián)網(wǎng)、移動互聯(lián)網(wǎng)、工業(yè)物聯(lián)網(wǎng)等新一代信息技術在工業(yè)領域的應用,制造企業(yè)所擁有的數(shù)據(jù)日益豐富。由工業(yè)設備所產(chǎn)生、生產(chǎn)過程采集和處理的數(shù)據(jù)量遠大于企業(yè)中計算機和人工產(chǎn)生的數(shù)據(jù),企業(yè)已經(jīng)進入“工業(yè)大數(shù)據(jù)”時代,其數(shù)據(jù)的多樣性和復雜性正以創(chuàng)紀錄的速度迅速增長[1]。
工業(yè)大數(shù)據(jù)是指在工業(yè)領域信息化應用中所產(chǎn)生的海量數(shù)據(jù),是為決策問題服務的大數(shù)據(jù)集、大數(shù)據(jù)技術和大數(shù)據(jù)應用的總稱。由于缺少有效的分析工具以及高效的計算技術來提取有用信息,工業(yè)大數(shù)據(jù)價值還未被充分利用。對于大多數(shù)制造企業(yè),大數(shù)據(jù)應用仍以內部數(shù)據(jù)為主,多數(shù)停留在擴大數(shù)據(jù)來源與增加數(shù)量的初級階段,將生產(chǎn)數(shù)據(jù)、設備運行數(shù)據(jù)、質量檢驗數(shù)據(jù)實時采集并存檔,提供數(shù)據(jù)的統(tǒng)計查詢,僅在需要時進行數(shù)據(jù)恢復與分析,而不是像亞馬遜、谷歌、阿里巴巴等互聯(lián)網(wǎng)公司將歷史數(shù)據(jù)視為數(shù)據(jù)資產(chǎn)而用于運營與決策過程中。
隨著智能制造的應用推廣,越來越多的工業(yè)企業(yè)開始重視工業(yè)大數(shù)據(jù)的價值,圍繞產(chǎn)品研發(fā)創(chuàng)新、生產(chǎn)線監(jiān)測與預警、設備故障診斷與維護、供應鏈優(yōu)化管理、質量監(jiān)測預測等方面開展工業(yè)大數(shù)據(jù)集成應用。工業(yè)大數(shù)據(jù)面臨的挑戰(zhàn)在于挖掘歷史大數(shù)據(jù)中蘊含的知識,但知識不是直接呈現(xiàn)在數(shù)據(jù)中,而是呈現(xiàn)在用于揭示數(shù)據(jù)的模型中[2]。YAN等[3]提出了工業(yè)大數(shù)據(jù)問題的一種框架, 并介紹了智能制造、工業(yè)大數(shù)據(jù)帶來的挑戰(zhàn),如可靠性與安全性。張潔等[4]提出了一種大數(shù)據(jù)驅動的“關聯(lián)+預測+調控”決策模式,幫助企業(yè)深層次地挖掘工業(yè)生產(chǎn)規(guī)律,提供精準決策。針對制造企業(yè)質量異常數(shù)據(jù)分析,可以采用ADTree決策樹、FP-Growth[5]等算法。
本文選取輪胎行業(yè)制造大數(shù)據(jù)作為研究背景,通過整合輪胎企業(yè)各個生產(chǎn)環(huán)節(jié)的多源數(shù)據(jù),構建結構化的質量分析數(shù)據(jù)集。對質量分析數(shù)據(jù)集進行關聯(lián)分析挖掘,可以幫助輪胎企業(yè)發(fā)現(xiàn)產(chǎn)品制造過程中的質量異常及其影響因素,不僅能夠精確定位質量問題, 而且能幫助企業(yè)改善工藝流程參數(shù)。傳統(tǒng)的FP-Growth算法存在頻繁項樹構建效率低的不足,本文改進了FP-Growth算法的頻繁項樹建樹策略,提升了其性能,使其適用于輪胎行業(yè)質量大數(shù)據(jù)分析。
對輪胎企業(yè)來說,其產(chǎn)品質量控制是非常關鍵的。在輪胎制造過程中,企業(yè)積累了大量輪胎生產(chǎn)數(shù)據(jù)與輪胎檢測數(shù)據(jù)。在大數(shù)據(jù)時代,如何利用工業(yè)大數(shù)據(jù)的挖掘技術,從海量時間序列生產(chǎn)制造數(shù)據(jù)中尋找質量傳遞的規(guī)律,實現(xiàn)產(chǎn)品質量的有效控制與改善,是輪胎企業(yè)面臨的新難題,由此,質量數(shù)據(jù)分析成為工業(yè)大數(shù)據(jù)的重要需求。針對采集到的輪胎生產(chǎn)過程數(shù)據(jù),利用傳統(tǒng)概率統(tǒng)計方法以及數(shù)據(jù)挖掘算法來構建完整的、有針對性的分析模型,可通過關聯(lián)分析找出影響輪胎質量的關鍵因素,為后續(xù)的質量改進、生產(chǎn)工藝改進提供合理的數(shù)據(jù)支持。
輪胎制造過程數(shù)據(jù)是產(chǎn)品在生產(chǎn)過程中產(chǎn)生的相關數(shù)據(jù),包括制造過程中產(chǎn)生的中間狀態(tài),如溫度、壓力等信息,操作工位的工位/設備編號,使用工裝或夾具的編碼信息,工位/設備報警類信息,合格、不合格產(chǎn)品信息,工序加工時間,質量檢測數(shù)據(jù)與產(chǎn)品物料追溯信息。
輪胎質量檢測分為成品胎外觀檢測、X射線掃描、動平衡檢測與均勻性檢測以及產(chǎn)品抽樣性能試驗,這些檢測數(shù)據(jù)由企業(yè)MES系統(tǒng)管理。輪胎動平衡檢測數(shù)據(jù)包括產(chǎn)品編號、各個檢測項目和檢測結果,動平衡檢測結果較為重要的3個檢測指標為BAL_RANK(上面不平衡量)、RO_RANK(靜不平衡量)與UFM_RANK(偶不平衡量),每個指標值對應在1~5之間取值,只要這3個指標中至少有一個指標為4或5,則產(chǎn)品為不合格品。
質量檢測數(shù)據(jù)定義如下:
insp_Data=product_id,insp_items,insp_result
式中,product_id為輪胎編號;insp_items為輪胎檢驗項目;insp_result為輪胎檢測結果。
制造數(shù)據(jù)是輪胎生產(chǎn)過程中產(chǎn)生的相關數(shù)據(jù),單工序的制造數(shù)據(jù)定義如下:
product_Data=(product_id,equip_id,proc_time,
shift,operator,proc_parameters)
其中,product_id是產(chǎn)品編號;equip_id是設備編號;proc_time是生產(chǎn)時間;shift是班組編號;operator是操作人員編號;proc_parameters是該工序的工藝參數(shù)集。
以上兩種數(shù)據(jù)可以用product_id關聯(lián)起來,形成結構化的質量分析數(shù)據(jù)集。
輪胎生產(chǎn)制造過程中產(chǎn)生的各種數(shù)據(jù)存儲在企業(yè)的MES、ERP、質量檢測等不同系統(tǒng)中,這些多源異構數(shù)據(jù)需要集中獲取并整合為結構化數(shù)據(jù),從而用于數(shù)據(jù)挖掘。首先使用數(shù)據(jù)采集系統(tǒng)將這些數(shù)據(jù)存儲在關系型數(shù)據(jù)庫中;然后利用Sqoop開源工具配置關系型數(shù)據(jù)庫與HDFS Hive數(shù)據(jù)倉庫之間的數(shù)據(jù)連接,以增量導入的方式獲取所有質量相關數(shù)據(jù),構建輪胎生產(chǎn)制造數(shù)據(jù)倉庫,實現(xiàn)數(shù)據(jù)集中管理。使用Hive數(shù)據(jù)倉庫建立質量檢測數(shù)據(jù)與制造過程數(shù)據(jù)多表合并的結構化質量分析數(shù)據(jù)集Quality_DataSet,該數(shù)據(jù)集將應用于后續(xù)的質量數(shù)據(jù)關聯(lián)分析。
質量數(shù)據(jù)的分析流程見圖1,數(shù)據(jù)分析流程包括數(shù)據(jù)獲取與整合、數(shù)據(jù)預處理、質量分析和分析結果整理4個階段。根據(jù)質量分析的主題和產(chǎn)品對象SKU,使用Hive SQL查詢語句由Hive質量分析數(shù)據(jù)集中生成某產(chǎn)品SKU質量分析數(shù)據(jù)子集Quality_SubDataSet。數(shù)據(jù)預處理負責重復數(shù)據(jù)的剔除、異常數(shù)據(jù)的刪除、缺失數(shù)據(jù)的補全或去除處理等。
針對輪胎檢測不合格品的質量異常,要從輪胎生產(chǎn)制造過程的“人、機、料、法、環(huán)”5個方面分析產(chǎn)品質量的影響因素。造成輪胎質量異常的影響因素數(shù)據(jù)(包括輪胎成形與硫化過程溫度、壓力等屬性)均是一系列時序數(shù)據(jù),對這些屬性進一步細化,抽取其統(tǒng)計指標作為輔助性特征,這些統(tǒng)計特征包括平均值、方差、最大值、最小值、極差等,然后添加到質量異常數(shù)據(jù)追溯分析數(shù)據(jù)集中,作為后續(xù)關聯(lián)分析的輸入。
質量分析分為單因素分析與多因素分析,單因素分析就是使用統(tǒng)計的方式,通過執(zhí)行Hive SQL查詢語句,得到單個因素(操作人員、班組、加工設備、工藝控制參數(shù)等)與產(chǎn)品不合格率的關系。對山東某輪胎公司千萬數(shù)量級的輪胎質量數(shù)據(jù)進行單因素分析,可以得到以下初步結論:不同物料編碼的輪胎不合格率差異十分明顯,其中,21種物料編碼的輪胎占產(chǎn)品總數(shù)的0.7%,卻產(chǎn)生了13.3%的不合格品。單因素分析同樣能排除一些影響因素,例如,輪胎硫化班組分早、中、晚班,容易想到晚班的工人是否會因為精力不濟導致不合格率增加,但是統(tǒng)計結果表明,3個班組的平均合格率幾乎相同。
產(chǎn)品質量的多因素分析可使用數(shù)據(jù)挖掘的方法來找到造成不良品的影響因素。本文使用FP Growth關聯(lián)分析作為輪胎質量分析的算法,例如把輪胎生產(chǎn)過程中的硫化工序工藝參數(shù)特征值(內溫,內壓,模溫,板溫的最大值、最小值、平均值、方差)、硫化操作人員編號(CUR_ZJS_ID)、成形操作人員編號(ZJS_ID)、各生產(chǎn)設備編號(POT_ID,EQUIP_ID,EQUIP_CODE)、生產(chǎn)班次編號(CLASS)、生產(chǎn)車間編號(WORK_SHOP_CODE)、生產(chǎn)模具編號(MOLD_ID)、生產(chǎn)批次編號(CUR_BATCH_ID)等屬性作為FP-Growth算法的輸入,并將qualified字段設為標記字段,該字段為1代表產(chǎn)品合格, 為2則代表產(chǎn)品不合格。FP-Growth算法將輸出一系列滿足支持度與置信度要求的關聯(lián)規(guī)則作為挖掘結果, 由于傳統(tǒng)的FP-Growth算法建樹效率較低,在輪胎質量數(shù)據(jù)關聯(lián)分析中存在性能提升空間,故本文對FP-Growth算法進行改進。
輪胎制造大數(shù)據(jù)分析平臺的系統(tǒng)架構見圖2,制造大數(shù)據(jù)平臺的數(shù)據(jù)來源于ERP、MES、SCADA系統(tǒng)中產(chǎn)品與工藝數(shù)據(jù)、制造過程數(shù)據(jù)、設備運行數(shù)據(jù)以及質量檢測數(shù)據(jù)和圖像數(shù)據(jù)。大數(shù)據(jù)平臺通過集成Sqoop框架和自定義開發(fā)的數(shù)據(jù)轉化接口API實現(xiàn)多源異構數(shù)據(jù)獲取并將其整合存儲至分布式數(shù)據(jù)文件系統(tǒng)HDFS。輪胎制造大數(shù)據(jù)平臺提供關系型數(shù)據(jù)庫、NoSQL數(shù)據(jù)庫、Hive數(shù)據(jù)倉庫等多種數(shù)據(jù)存儲。
大數(shù)據(jù)平臺使用實時流式計算Storm、并行計算Spark工具進行大數(shù)據(jù)分析算法的并行計算。平臺集成Spark MLlib中的關聯(lián)分析、時間序列預測、分類、聚類、統(tǒng)計分析等大數(shù)據(jù)分析算法以實現(xiàn)制造過程的決策分析與預測。使用數(shù)理統(tǒng)計方法對提取到的質量關鍵變量進行標準化、歸一化處理,構建多源數(shù)據(jù)融合的質量大數(shù)據(jù)模型。利用過程監(jiān)控方法及多變量統(tǒng)計控制圖技術判斷失控變量,發(fā)現(xiàn)生產(chǎn)過程質量問題分布規(guī)律。對質量缺陷問題進行缺陷問題分類和聚類處理。使用K-means聚類算法將連續(xù)型屬性離散化,使用FP-Growth關聯(lián)算法加載關聯(lián)分析的數(shù)據(jù)集,得到關聯(lián)規(guī)則集。

圖2 大數(shù)據(jù)分析平臺架構Fig.2 The architecture of big data analysis platform
關聯(lián)分析常被用來從數(shù)據(jù)中發(fā)現(xiàn)事物、特征間頻繁出現(xiàn)的相互依賴和關聯(lián)關系。被發(fā)現(xiàn)的關系可以是事先不知道、通過數(shù)據(jù)的關聯(lián)分析才獲得的。通過對輪胎制造數(shù)據(jù)與輪胎檢測不良率數(shù)據(jù)之間的關聯(lián)分析,找出不良率較高的輪胎生產(chǎn)過程影響因素,進而整理出輪胎質量異常的主要影響因素關聯(lián)規(guī)則集。
在執(zhí)行關聯(lián)分析前,需要對數(shù)據(jù)集的連續(xù)型屬性進行離散化處理。首先使用K-means聚類算法對連續(xù)型屬性進行必要的聚類,然后基于屬性取值的內在結構確定每個劃分簇的劃分邊界,最后按照這樣的劃分邊界對連續(xù)型屬性進行離散化處理。K-means的目標函數(shù)設置為
(1)
式中,xi為第i個樣本的坐標;μci為第i個樣本在聚類簇中的聚類中心。
通過基于聚類結果抽取出來的離散化策略將所有連續(xù)型屬性離散化之后,數(shù)據(jù)集已經(jīng)符合多因素關聯(lián)分析的輸入規(guī)范,便可以作為輸入?yún)?shù)進行關聯(lián)分析。調用Spark MLlib的FP-Growth關聯(lián)算法,加載關聯(lián)分析的數(shù)據(jù)集,得到關聯(lián)規(guī)則集。分析關聯(lián)規(guī)則集,結合輪胎質量故障診斷知識和工藝知識,總結和整理出輪胎質量影響的主要因素以及工藝參數(shù)優(yōu)化規(guī)則,為產(chǎn)品質量改進和工藝優(yōu)化提供數(shù)據(jù)支持。
數(shù)據(jù)的關聯(lián)分析能從大規(guī)模數(shù)據(jù)中分析并挖掘出有價值的關聯(lián)性知識,主要通過關聯(lián)規(guī)則的挖掘來實現(xiàn),它可以分為兩大步驟:頻繁項集的生成和關聯(lián)規(guī)則的產(chǎn)生,其中,最關鍵的就是頻繁項集的生成,該步驟占據(jù)了關聯(lián)規(guī)則挖掘全過程的主要花銷。常用的頻繁項集挖掘算法有Apriori算法、FP-Growth算法等。Apriori算法由AGRAWAL等[6]提出,該算法特點是先生成候選項集,再由候選項集生成頻繁項集,這一過程會多次掃描數(shù)據(jù)庫,故該算法效率較低。隨后出現(xiàn)了很多Apriori改進算法,如AprioriTid算法[7];還有基于AprioriTid算法的AprioriTidList算法[8],它使用鏈式結構,取得了更好的效果。然而,候選集的生成仍是該算法本質上難以克服的瓶頸。FP-Growth算法是HAN等[9]提出的一種具有較好性能和伸縮性的頻繁項集挖掘算法,其特點是不需要產(chǎn)生候選項集,并且只需掃描2次數(shù)據(jù)庫。也有一些基于FP-Growth算法的改進算法,如凌緒雄等[10]提出的無項頭表的FP-Growth算法在時間效率上略有提高。余彪等[11]提出了一種MFP-tree算法,采用分塊挖掘的方式處理數(shù)據(jù),效率也有一定的提升。在并行化方面,AISSATOU等[12]提出了基于Spark的S-FPG算法,該算法能夠更好地挖掘大數(shù)據(jù)規(guī)模下的關聯(lián)規(guī)則;ZHOU等[13]提出了一種基于MapReduce框架的FP-Growth算法的并行化改進算法。
FP-Growth算法的具體執(zhí)行流程如下。
(1)先掃描一遍數(shù)據(jù)集,得到項目集中每個項目出現(xiàn)的次數(shù),定義最小支持度(項目出現(xiàn)最少次數(shù)),刪除那些小于最小支持度的項目,然后將原始數(shù)據(jù)集中的條目按項目集中降序進行排列。
(2)第2次掃描,創(chuàng)建頻繁項頭表(從上往下降序)以及FP樹。
(3)對于每個項目(可以按照從下往上的順序)找到其條件模式基(conditional pattern base,CPB),遞歸調用樹結構,刪除小于最小支持度的項。如果最終呈現(xiàn)單一路徑的樹結構,則直接列舉所有組合;非單一路徑的則繼續(xù)調用樹結構,直到形成單一路徑即可。
FP-Growth算法分為構造樹與挖掘樹兩個部分,算法偽代碼分別如下。
FP樹的構造算法:
輸入:原始數(shù)據(jù)庫D,最小支持度minsup
輸出:數(shù)據(jù)庫D的FP樹
掃描數(shù)據(jù)庫D,收集頻繁項的集合F和它們的支持度。對F按照支持度降序排序,結果為頻繁項頭表H;創(chuàng)建FP-樹的根節(jié)點R,標記為null;
對D中每個事務Trans:
選擇 Trans 中的頻繁項,并按H中的次序排序。設排序后的頻繁項表為[p | P],p是第一個元素,P是剩余元素的表。調用insert_tree([p|P], R)。
函數(shù)insert_tree([p|P], T):
如果T有子節(jié)點N使得N.item-name = p.item-name,則N 的計數(shù)增加1;
否則創(chuàng)建一個新節(jié)點N將其計數(shù)設置為1,鏈接到它的父節(jié)點T,并且在與它同名的頻繁項頭表中遍歷到最后一個節(jié)點,添加此新節(jié)點N;
如果P非空,遞歸地調用函數(shù)insert_tree(P, N);
FP樹的挖掘算法:
輸入:FP樹和最小支持度minsup
輸出:頻繁模式集合
通過調用FP_growth(FP_tree, null)實現(xiàn)
if(樹含單個路徑P) then
對P中節(jié)點的每個組合β:
產(chǎn)生模式β∪α,支持度support=β中節(jié)點的最小支持度;
Else{
對樹頭部的每一個ai:
生成模式β=ai∪α,支持度support=ai.support;
構造β的條件模式基和β的條件FP樹Treeβ
if Treeβ≠ ? then調用 FP_Growth (Treeβ, β)}
在傳統(tǒng)FP-Growth算法中,需要利用FP-Tree構造算法生成一個包含完整頻繁項信息的FP樹, 其中,F(xiàn)P樹的頻繁項頭表具有2個屬性:item-Name(項名稱)和next_Node。next_Node是一個指針,指向FP樹中具有相同 item-Name 的第1個節(jié)點。在此過程中,要循環(huán)調用insert_tree( )算法插入新的樹節(jié)點,其中,有一個步驟就會用到頻繁項頭表這一數(shù)據(jù)結構,把FP樹中的每個與項頭表具有相同名稱的項進行連接。每次執(zhí)行上述過程時都需要回到項頭表的同名頭節(jié)點,然后從頭節(jié)點開始遍歷,直至最后一個同名節(jié)點的域,再把新的節(jié)點插入最后一個節(jié)點后,進入項頭表結構中??梢钥闯觯楊^表這一數(shù)據(jù)結構的模型會直接影響 FP-Growth 算法的性能,在數(shù)據(jù)量較大的情況下,每次都從頭節(jié)點遍歷到尾端然后插入,這種方法的執(zhí)行效率明顯不好,有待改進。
為了解決上述問題,提升算法的效率,本文提出了一種優(yōu)化后的項頭表數(shù)據(jù)結構,在原有的項頭表結構上添加一個新的屬性尾節(jié)點tail,用于記錄每一個數(shù)據(jù)項當前的最后一個節(jié)點。通過這種新的頻繁項頭表數(shù)據(jù)結構,執(zhí)行insert_tree()算法并在項頭表插入新節(jié)點時,就可以避免遍歷當前節(jié)點的鏈表而導致算法效率不佳,直接通過tail屬性找到表尾進行新節(jié)點的插入即可。在輪胎質量數(shù)據(jù)分析中,該改進會有更突出的效果,由于這些數(shù)據(jù)集中相同的項大量存在(如同一主機手會經(jīng)手大量輪胎),同樣會出現(xiàn)在FP樹中的各個分支,故加入新的屬性尾節(jié)點tail記錄數(shù)據(jù)項的最后一個節(jié)點,對輪胎質量數(shù)據(jù)分析的效率提升會起到很好的作用。
優(yōu)化后的項頭表數(shù)據(jù)結構見表1。具體定義如下。

表1 優(yōu)化后的項頭表數(shù)據(jù)結構
Public class HeadTable{
Private String item_Name;//數(shù)據(jù)項名稱
Private Node next_Node;//項頭表中的下一個同名節(jié)點
Private Node tail;//該項頭表中的最后一個同名節(jié)點位置
}//優(yōu)化后的項頭表
在執(zhí)行FP-Tree構造算法時,利用優(yōu)化的項頭表,避免了繁瑣的循環(huán)遍歷操作:
If (HeadTable.tail == null)
Then
HeadTable.next_Node =新節(jié)點;
HeadTable.tail =新節(jié)點;
Else
HeadTable.tail.next_Node =新節(jié)點;
HeadTable.tail =新節(jié)點;
引入優(yōu)化后的頻繁項頭表后,新的FP-Tree構造算法如下:
FP_Tree(D, minsup)
輸入:原始數(shù)據(jù)庫D,最小支持度minsup
輸出:數(shù)據(jù)庫D的FP樹
掃描數(shù)據(jù)庫D,收集頻繁項的集合F和它們的支持度。對F按照支持度降序排序,結果為頻繁項頭表H;
創(chuàng)建FP-樹的根節(jié)點R,標記為null;
對D中每個事務Trans:
選擇 Trans 中的頻繁項,并按H中的次序排序。設排序后的頻繁項表為[p | P],p是第一個元素,P是剩余元素的表。調用insert_tree([p|P], R)。
函數(shù)insert_tree([p|P], T):
如果T有子節(jié)點N使得N.item-name = p.item-name,則N 的計數(shù)增加1;
否則創(chuàng)建一個新節(jié)點N將其計數(shù)設置為1,鏈接到它的父節(jié)點T,并且在與它同名的頻繁項頭表的tail屬性中找到當前最末節(jié)點,添加此新節(jié)點N,并設新節(jié)點N為新的tail;
如果P非空,遞歸地調用函數(shù)insert_tree(P, N);
現(xiàn)有以下數(shù)據(jù)庫D,見表2,設最小支持度閾值為3。由該數(shù)據(jù)庫通過算法構造得出的FP樹結果見圖3。

表2 數(shù)據(jù)庫D

圖3 根據(jù)優(yōu)化后的FP-Growth算法構建的FP-TreeFig.3 The FP-Tree built based on the optimized FP-Growth algorithm
對改進后的FP-Growth算法進行以下3個實驗。
實驗1。不同物料編碼數(shù)據(jù)集FP樹構造時間對比。取輪胎質量分析數(shù)據(jù)集中物料編碼為221000 994、221003 794、221003483的3組數(shù)據(jù)作為實驗的數(shù)據(jù)集,數(shù)據(jù)集分別包含856526、308880、157360個事務,均有35個屬性。實驗環(huán)境為Intel(R) Xeon(R) CPU E5649@2.53 GHz,操作系統(tǒng)為3.10.0-514.26.2.el7.x86_64,4臺24G內存計算機,通過JAVA調用Spark并連接HIVE進行實現(xiàn)。結果見表3。

表3 FP-Tree構造時間
實驗2。不同數(shù)據(jù)量級的數(shù)據(jù)集FP樹構造時間對比。取輪胎質量分析數(shù)據(jù)集中的百萬、十萬和萬級別的數(shù)據(jù)集,實驗環(huán)境同實驗1。結果見表4。

表4 FP-Tree構造時間
實驗3。優(yōu)化后的FP-Growth算法與改進的BICA算法(一種ADTree算法)對比。取輪胎質量分析數(shù)據(jù)集中的百萬、十萬和萬級別的數(shù)據(jù)集,實驗環(huán)境同實驗1。結果見表5。

表5 改進的FP-Growth與改進的BICA對比
通過實驗1的3組實驗可以明顯看出,使用優(yōu)化后的FP-Growth算法,F(xiàn)P樹的構造效率有了明顯提升,平均提升效率為26%;實驗2對比分析了不同數(shù)量級下的FP-Growth算法執(zhí)行情況,改進后的算法平均效率提升也在20%以上,并且數(shù)據(jù)集的數(shù)量級越大,算法效率提升越快;實驗3選取了輪胎質量數(shù)據(jù)分析的另一個基于ADTree的優(yōu)化算法進行比較,從實驗結果可以看出,在算法執(zhí)行的時間方面,兩者的差距并不明顯,但使用ADtree算法進行數(shù)據(jù)分析時,最終只能得到一個二分樹,利用該二分樹的每一個節(jié)點與分支進行分析,才能得出輪胎質量相關的一些結論,有時ADtree得出的二叉樹并不能包含全面結果,會遺漏部分屬性的影響;而FP-growth算法挖掘給出的是一條條關聯(lián)規(guī)則,只要給出確定的支持度與置信度,就能得到符合要求的全部規(guī)則,沒有遺漏;通過關聯(lián)規(guī)則,能夠更加直觀與清晰地看出屬性間的關聯(lián)關系,進行進一步的分析也更加方便。
通過FP-Growth算法得出的關聯(lián)規(guī)則能夠幫助我們進行輪胎質量異常數(shù)據(jù)的分析。以物料編碼為221003 794的數(shù)據(jù)集為例,該數(shù)據(jù)集的可用樣本數(shù)為308 880, 其中,質檢合格數(shù)為306 471, 不合格數(shù)為2 409, 不合格率約0.78%。實驗設置支持度為300,置信度為1.5%。根據(jù)FP-Growth算法的挖掘結果, 使用Hive數(shù)據(jù)庫對質量數(shù)據(jù)進行回查, 查詢挖掘出的關聯(lián)規(guī)則中的頻繁項對產(chǎn)品不合格率的影響。共挖掘出45個頻繁項集,24條關聯(lián)規(guī)則。因篇幅有限,僅給出部分結果進行展示。FP-Growth算法挖掘得出的一些頻繁項集見表6。

表6 頻繁項集
以下是通過關聯(lián)規(guī)則進一步分析的過程:
cur_BATCH_ID=20 161 206ZJS_ID=20 070 488 952==>hege=2 380
cur_BATCH_ID=20161206 1264 ==>hege=2 401
以上兩條規(guī)則說明,批次是20 161 206產(chǎn)出的1264件產(chǎn)品中,不合格的有401件,占比約31.72%,遠高于平均不合格率0.78%。這1 264件產(chǎn)品中,經(jīng)手成型主機手20 070 488的952件產(chǎn)品更是有380件不合格,不合格率為40%。剩余312件產(chǎn)品有21件不合格,不合格率約為6.73%,也遠高于平均不合格率。由此得出結論:需要更加關注成型主機手20 070 488與批次20 161 206。
如該主機手與設備的關系:
POT_ID=314ZJS_ID=20070488 2582 ==>hege=2 412
POT_ID=36ZJS_ID=20070488 6151 ==>hege=2 394
以上兩條規(guī)則顯示,產(chǎn)品經(jīng)手成型主機手20 070 488,并且在POT_ID為314和36的硫化蒸鍋上生產(chǎn)時,不合格率分別約為15.96%與6.41%。
這兩臺硫化蒸鍋的平均不合格率也被算法挖掘出來:
POT_ID=314 11690 ==>hege=2 552
POT_ID=36 21570 ==>hege=2 463
POT_ID為314的硫化蒸鍋生產(chǎn)的產(chǎn)品,不合格率約4.72%,而POT_ID為36的硫化蒸鍋相應的不合格率約2.15%,均比該型號產(chǎn)品的平均不合格率高。由于這兩個硫化蒸鍋生產(chǎn)的部分產(chǎn)品之前有經(jīng)過成型主機手20 070 488的操作,故排除后再做分析,POT_ID為314的硫化蒸鍋不合格率約1.54%,POT_ID為36的硫化蒸鍋不合格率約0.45%,甚至比平均不合格率還要低,故可以排除POT_ID為36的硫化蒸鍋的影響。
限于篇幅,此主機手與生產(chǎn)工藝參數(shù)相關的一些規(guī)則不再列出。由此可見,通過關聯(lián)規(guī)則,可以很方便地對輪胎質量影響因素進行嚴謹?shù)姆治觯瑥亩龀龊侠淼牟聹y與推論。
針對現(xiàn)有頻繁模式增長(FP-Growth)算法存在FP樹建樹性能較低的問題,本文提出了一種改進的FP-Growth算法,在原有的頻繁項頭表基礎上新增一個tail屬性,加速FP-Tree構建。實驗結果表明,改進后的FP-Growth算法能夠有效提高輪胎質量異常數(shù)據(jù)的關聯(lián)分析效率,并且適用于大數(shù)據(jù)量的數(shù)據(jù)挖掘。通過關聯(lián)分析產(chǎn)生的頻繁項集分析,能夠找出影響輪胎質量的生產(chǎn)制造過程重要因素,幫助企業(yè)改善工藝流程和精益生產(chǎn),降低產(chǎn)品不良率,提升產(chǎn)品質量。