何 林,劉宇紅,張榮芬
(貴州大學(xué) 大數(shù)據(jù)與信息工程學(xué)院,貴州 貴陽 550025)
近年來,傳統(tǒng)工業(yè)正在經(jīng)歷改革變遷中,產(chǎn)業(yè)結(jié)構(gòu)發(fā)生重大調(diào)整,2015年《中國制造2025》的提出為工業(yè)改革指明了方向,明確了以“智能制造”為核心的思想[1-2]。生產(chǎn)模式的改變必須注入新的技術(shù),才能給改革帶來源源不斷的動力。在工業(yè)生產(chǎn)中為了提升產(chǎn)品質(zhì)量,會在生產(chǎn)線上做出各種決策,根據(jù)生產(chǎn)情況做出調(diào)整,這個過程中會產(chǎn)生大量的數(shù)據(jù)。對數(shù)據(jù)的充分利用就起到了舉重若輕的作用。工業(yè)數(shù)據(jù)具有多變量,復(fù)雜且具有相互耦合的特點。各變量之間相互牽制、相互影響,很難用傳統(tǒng)的統(tǒng)計學(xué)表達(dá)數(shù)據(jù)之間的關(guān)系,數(shù)據(jù)挖掘技術(shù)恰好能解決這個弊端。其目的是挖掘有意義的規(guī)則,解決企業(yè)中數(shù)據(jù)利用率不足、技術(shù)標(biāo)準(zhǔn)不統(tǒng)一等問題[3-5]。
數(shù)據(jù)挖掘(data mining)是一門技術(shù)。顧名思義是為了發(fā)現(xiàn)數(shù)據(jù)中的知識,幫助人們做出最佳決策[6]。例如,李海洋等人對學(xué)生沐浴時間和成績數(shù)據(jù)進(jìn)行挖掘,通過對學(xué)生的洗澡數(shù)據(jù)與成績挖掘分析,判斷成績的優(yōu)良與洗浴數(shù)據(jù)之間的關(guān)鍵因素,發(fā)現(xiàn)下午洗澡次數(shù)越多,成績越不理想,相對來說,晚上洗澡次數(shù)多的學(xué)生成績比較優(yōu)秀,并且不太愛洗澡的學(xué)生成績也不太好,為學(xué)校學(xué)生管理工作提供有效性建議[7]??诅鞯热瞬捎脭?shù)據(jù)挖掘關(guān)聯(lián)規(guī)則算法探究針灸治療重癥肌無力(myasthenia gravis,MG)的治療方案,發(fā)現(xiàn)治療眼肌型MG配合攢竹、陽白、魚腰等近端取穴,全身型配合三陰交、合谷、陽陵泉等,辨證加減治療能達(dá)到最佳治療效果[8]。馬文等人采用聚類方法將工業(yè)電氣設(shè)備參數(shù)進(jìn)行特征重組,利用重組結(jié)果進(jìn)行數(shù)學(xué)化處理,進(jìn)行特征匹配,為特征識別提供可依基礎(chǔ),最終實現(xiàn)大數(shù)據(jù)的多特征識別[9]。在工業(yè)數(shù)據(jù)挖掘領(lǐng)域,王雪姣等人根據(jù)工業(yè)生產(chǎn)班組運行質(zhì)量問題,采用傳統(tǒng)Apriori關(guān)聯(lián)規(guī)則挖掘算法發(fā)現(xiàn)生產(chǎn)最優(yōu)的最佳搭配班組,通過組合不同的生產(chǎn)班組,生產(chǎn)效果不一樣,發(fā)現(xiàn)出現(xiàn)生產(chǎn)效果差的班組,進(jìn)行相應(yīng)的改造調(diào)整[10]。董軒萌等人采用傳統(tǒng)Apriori算法對造成煤自燃的因素進(jìn)行分析,根據(jù)煤中所含各種元素的比例,判斷各種組成成分對煤自燃的正負(fù)相關(guān)性[11]。目前,利用關(guān)聯(lián)規(guī)則算法對醫(yī)療數(shù)據(jù)進(jìn)行分析已相對成熟且廣泛,但在工業(yè)智能化生產(chǎn)領(lǐng)域能找到的相關(guān)文獻(xiàn)卻太少。在這個背景下,該文結(jié)合某企業(yè)工業(yè)鈾產(chǎn)品生產(chǎn)的測量數(shù)據(jù),將Apriori關(guān)聯(lián)規(guī)則算法進(jìn)行改進(jìn)并應(yīng)用于工業(yè)產(chǎn)品質(zhì)量分析,以期為工業(yè)生產(chǎn)智能化與精細(xì)化提供支持,有一定的應(yīng)用創(chuàng)新性。
數(shù)據(jù)質(zhì)量會影響挖掘的效果,甚至?xí)a(chǎn)生誤導(dǎo)性的結(jié)果。工業(yè)生產(chǎn)過程中每時每刻都在產(chǎn)生數(shù)據(jù),數(shù)據(jù)存在結(jié)構(gòu)復(fù)雜,來源廣泛等問題。例如值超出常規(guī)范圍,數(shù)據(jù)不規(guī)范以及出現(xiàn)空值等問題。數(shù)據(jù)清洗能提升數(shù)據(jù)質(zhì)量,數(shù)據(jù)清洗是數(shù)據(jù)挖掘過程中最重要的一個步驟。數(shù)據(jù)未經(jīng)清洗就進(jìn)行分析會產(chǎn)生誤導(dǎo)性結(jié)果。如果存在大量不相關(guān)和冗余的信息或嘈雜且不可靠的數(shù)據(jù),則在訓(xùn)練階段進(jìn)行信息發(fā)現(xiàn)會更加困難。因此,在對數(shù)據(jù)進(jìn)行任何分析之前需要提升數(shù)據(jù)質(zhì)量,進(jìn)行數(shù)據(jù)清洗[12-14]。
在一些具體的實踐工作中,數(shù)據(jù)庫的清洗通常都是直接地占據(jù)整個數(shù)據(jù)分析工作全過程中的50%~80%。該文清洗內(nèi)容主要包括以下幾個過程:
第一,對產(chǎn)品缺失數(shù)據(jù)的處理,這一類缺失數(shù)據(jù)主要指的是一些產(chǎn)品應(yīng)該有的業(yè)務(wù)信息系統(tǒng)缺失,如產(chǎn)品供應(yīng)商的單位名稱、分公司的單位名稱、產(chǎn)品服務(wù)信息缺失,業(yè)務(wù)管理系統(tǒng)中的主表與業(yè)務(wù)明細(xì)表不能正確匹配等。對這一類型的數(shù)據(jù)進(jìn)行過濾,按照對缺失的數(shù)據(jù)內(nèi)容分別進(jìn)行備份,標(biāo)明內(nèi)容出來,根據(jù)每個目標(biāo)用戶判斷內(nèi)容是否存在需要進(jìn)行補充或者直接進(jìn)行刪除內(nèi)容即可。
第二,查找數(shù)據(jù)集中是否存在格式錯誤,這一類格式錯誤數(shù)據(jù)產(chǎn)生的根本原因主要是由于業(yè)務(wù)后臺系統(tǒng)不夠健全,在用戶接收到輸入數(shù)據(jù)后沒有對數(shù)據(jù)進(jìn)行錯誤判斷就直接將數(shù)據(jù)寫入后臺數(shù)據(jù)庫。比如數(shù)值數(shù)據(jù)被傳輸成一個全角度的數(shù)字字符、字符串輸入數(shù)據(jù)之間有空格操作、中英文符號用錯、大小寫沒區(qū)分、日期書寫不合規(guī)范等等。
第三,對一些出現(xiàn)邏輯問題的數(shù)據(jù)進(jìn)行分析處理,這部分處理工作主要目的是為了徹底去掉一些通常只需要簡單邏輯推理方法就可以直接快速準(zhǔn)確發(fā)現(xiàn)這些數(shù)據(jù),防止這些出現(xiàn)邏輯問題的數(shù)據(jù)對處理結(jié)果發(fā)生走偏。通常矛盾問題可以通過進(jìn)行數(shù)據(jù)去重、去除不合理值、修改矛盾文件對象及其內(nèi)容等多種方式得到有效解決。
該文的數(shù)據(jù)來自于某工廠生產(chǎn)鈾時所記錄的測量數(shù)據(jù),總共有12 991條,4個測量參數(shù),分別是:電壓C、漏電流ESR、容量CAP、損耗D。在經(jīng)過清洗之后還剩下12 533條,四個變量所描述的信息與產(chǎn)品質(zhì)量有關(guān),產(chǎn)品質(zhì)量可分為三類:“優(yōu)” best,“合格” ok,“不合格”bad,變量類型如表1所示。
表1 變量描述及說明
根據(jù)企業(yè)的需求,該文需要對產(chǎn)品測量參數(shù)挖掘有用的信息。在對數(shù)據(jù)進(jìn)行分析之前需要對數(shù)據(jù)進(jìn)行離散化處理。離散化結(jié)果會對后續(xù)挖掘結(jié)果產(chǎn)生影響。戴新建利用K-means算法對電視用戶信息進(jìn)行聚類分析,分析各類用戶給企業(yè)帶來的營銷價值[15]。張莉為了找到影響成績的因素,利用K-means算法聚類學(xué)生成績,再結(jié)合ID3算法構(gòu)建一棵完整的決策樹[16]。上述學(xué)者利用K-means算法對數(shù)據(jù)集進(jìn)行離散化處理分析均取了得優(yōu)的效果。該文利用K-means算法對工業(yè)鈾的測量數(shù)據(jù)進(jìn)行離散化處理,得到不同區(qū)間的類別來代替離散化數(shù)據(jù)。
K-means算法是機器學(xué)習(xí)中最為經(jīng)典的算法之一,其主要目的是為了發(fā)現(xiàn)數(shù)據(jù)集的分類情況,根據(jù)要求分成適合的簇。
算法基本原理為:
確定需要的K個簇的質(zhì)心,往往質(zhì)心是隨機選擇數(shù)據(jù)集中的K個點作為初始質(zhì)心且K個點之間的距離盡量大。計算數(shù)據(jù)集點與質(zhì)心之間的距離,并將離最近質(zhì)心的點分配給該質(zhì)心所屬的簇。經(jīng)過一輪之后每個質(zhì)心點都會擁有自己所屬的簇,此時通過計算各簇中所有每個點的質(zhì)心平均值作為計算下一輪的質(zhì)心,直到質(zhì)心點不再發(fā)生改變。
通常情況下,由于產(chǎn)品質(zhì)量的差別,測量值會發(fā)生較大的波動,不同規(guī)格的產(chǎn)品,測量參數(shù)往往會聚集在某一區(qū)間。利用數(shù)據(jù)分布區(qū)間大,根據(jù)數(shù)據(jù)點間距離遠(yuǎn)這一特點,采用K-means算法對數(shù)據(jù)進(jìn)行離散化處理,將處于不同區(qū)間的測量值進(jìn)行聚類處理,為之后做關(guān)聯(lián)規(guī)則分析提供有效的輸入。經(jīng)過K-means算法處理,得到了以下最佳聚類效果,如表2所示。
表2描述了測量數(shù)據(jù)經(jīng)過K-means算法處理后,測量參數(shù)聚類的類別數(shù)以及每個類別所屬區(qū)間值,其中電壓C聚類成4個類別,漏電流ESR聚類成3個類別,損耗D聚類成4個類別,容量聚類成3個類別。
表2 測量數(shù)據(jù)分類說明
根據(jù)分類結(jié)果,挑選部分?jǐn)?shù)據(jù)進(jìn)行說明。電壓值處于[0,1)會被聚類成C1類,處于[1,100)聚類成C2類,如:表3中編號1這一行中電壓值為3.1,根據(jù)聚類結(jié)果為C2類,如表4中編號1電壓C所示;表3中編號4這一行中電壓值為0.22,根據(jù)聚類結(jié)果為C1類,如表4中編號4電壓C所示。漏電流值處于[0,600)會被聚類成ESR1類,處于[600,5 000)聚類成ESR2類,如:表3中編號1這一行中漏電流值為188.3,根據(jù)聚類結(jié)果為ESR1類,如表4中編號1漏電流D所示;表3中編號3這一行中漏電流值為4 354,根據(jù)聚類結(jié)果為ESR2類,如表4中編號3漏電流ESR所示。損耗值處于[0,10)會被聚類成ESR1類,處于[90,100]聚類成ESR4類,如:表3中編號1這一行中損耗值為1.14,根據(jù)聚類結(jié)果為D1類,如表4中編號1損耗D所示;表3中編號4這一行中損耗值為97.23,根據(jù)聚類結(jié)果為D4類,如表4中編號4損耗D所示。容量值處于[0,50)會被聚類成CAP1類,如:表3中編號1這一行中容量值為19.12,根據(jù)聚類結(jié)果為CAP1類,如表4中編號1容量所示。表3與表4完整地展現(xiàn)了數(shù)據(jù)集前五條數(shù)據(jù)分類前后的對比。
表3 聚類前的數(shù)據(jù)集前5行
表4 聚類后的數(shù)據(jù)集前5行
關(guān)聯(lián)規(guī)則(Association Rule)算法是關(guān)聯(lián)數(shù)據(jù)分析挖掘算法領(lǐng)域的重要技術(shù)分支[17]。關(guān)聯(lián)規(guī)則如何發(fā)現(xiàn)大量關(guān)聯(lián)數(shù)據(jù)中項集之間有趣的且互相關(guān)聯(lián)的關(guān)系,如何從為數(shù)眾多的關(guān)聯(lián)變量中快捷地準(zhǔn)確選出其中關(guān)聯(lián)性最強的兩組或者更多的一組關(guān)聯(lián)變量,這是研究關(guān)聯(lián)規(guī)則挖掘算法的一個核心技術(shù)問題[18]。關(guān)聯(lián)規(guī)則Apriori算法由R.Agrawal等人于1933年正式提出,它其實是一種先驗概率處理算法,在數(shù)學(xué)分類意義上說它屬于一種單維、單層、布爾關(guān)聯(lián)代數(shù)規(guī)則。它是指利用頻繁項集挖掘數(shù)據(jù)先驗知識,采取數(shù)據(jù)層次順序搜索的一種循環(huán)挖掘方法,可用來快速完成頻繁項集的數(shù)據(jù)挖掘處理工作??偟膩碚f,Apriori算法可分為兩大步驟,首先從數(shù)據(jù)庫中發(fā)現(xiàn)頻繁項集,再從頻繁項集中挖掘具有強關(guān)聯(lián)規(guī)則的項集。
Apriori算法的頻繁項集的發(fā)現(xiàn)受兩個變量的限制,分別是最小支持度(minsup)和最小置信度(minconfi)。只有滿足這兩個條件的項集才能被篩選為頻繁項集[19]。頻繁項集還具有隨著項越多,支持度越低的特點。也就是說,若K-項集的支持度小于最小支持度,那么(K+1,K+2,…)-項集的支持度也不可能高于最小支持度。因此,當(dāng)Apriori算法發(fā)現(xiàn)K-項集為非頻繁項集時,就不會再往下掃描K+1-項集,極大節(jié)省了算法計算時間。
Apriori算法的基本思想是:找出數(shù)據(jù)庫D中所有同時滿足最小支持度和最小置信度的項集,即為頻繁項集。頻繁項集中的所有強關(guān)聯(lián)規(guī)則均滿足最小支持度和最小置信度這個閾值。其主要思想是:對于項集A與項集B產(chǎn)生的關(guān)聯(lián)規(guī)則A=>B均大于最小支持度和最小置信度,其中項集A和項集B均滿足A≠φ,B≠φ,A∩B=φ。關(guān)聯(lián)規(guī)則A=>B的強度由支持度和置信度決定,可由公式(1)和公式(2)表示:
support(A=>B)=P(A∪B)=
(1)
(2)
在使用Apriori獲取頻繁項集之后構(gòu)造關(guān)聯(lián)規(guī)則時,進(jìn)一步加入提升度[20]的概念判斷頻繁項集之間的關(guān)系。項集A和B出現(xiàn)的概率分別用為P(A)和P(B)表示,所加入的提升度的公式為:
將提升度的概念引入到關(guān)聯(lián)規(guī)則的判斷中,確保關(guān)聯(lián)規(guī)則的有效性及意義。
具體算法流程如下:
輸入:事務(wù)數(shù)據(jù)庫D;最小支持度閾值minsup;最小置信度閾值minconfi;提升度閾值minup。
輸出:頻繁K項集。
步驟:
(1)K=1找出所有頻繁1項集;
(2)K++,挖掘頻繁K項集;
(3)判斷頻繁K項集產(chǎn)生的規(guī)則是否不小于最小置信度閾值、最小支持度閾值以及提升度閾值。
實驗主要使用python語言構(gòu)建測試算法分析模型,測試中通過使用改進(jìn)的Apriori算法對測量值進(jìn)行挖掘,將得到的結(jié)果進(jìn)行詳細(xì)分析,利用得到的有價值的結(jié)論為生產(chǎn)管理者進(jìn)行生產(chǎn)改革或制定相應(yīng)的決策提供幫助。其中最小支持度閾值與最小置信閾值的設(shè)定對最終的結(jié)果會產(chǎn)生較大影響。如果最小支持度過大,大量的潛在規(guī)則可能會被刪除;相反,如果最小支持度過小,則會產(chǎn)生大量冗余的規(guī)則,不便于研究和決策度。
圖1為提升度UP>0,置信度confidence=0.02,在不同支持度下,改進(jìn)的Apriori算法挖掘關(guān)聯(lián)規(guī)則數(shù)量與傳統(tǒng)Apriori算法挖掘關(guān)聯(lián)規(guī)則數(shù)量的對比。
圖1 關(guān)聯(lián)規(guī)則數(shù)目對比
圖中可以看出改進(jìn)的Apriori算法能減少很多冗余的關(guān)聯(lián)規(guī)則,優(yōu)于傳統(tǒng)Apriori算法,改進(jìn)效果相當(dāng)明顯。
經(jīng)過多次測試對比,最終設(shè)定最小支持度minsup=0.005 2,最小置信度minconfidence=0.02,提升度UP≥0。上述數(shù)據(jù)挖掘模塊共產(chǎn)生117條關(guān)聯(lián)規(guī)則,這些關(guān)聯(lián)規(guī)則均同時滿足support≥0.005 2且confidence≥0.02,所以都是強關(guān)聯(lián)規(guī)則。由于挖掘產(chǎn)生的關(guān)聯(lián)規(guī)則較多,從得到的關(guān)聯(lián)規(guī)則中選取一部分進(jìn)行規(guī)則的描述和解讀(見表5~表7)。
表5 產(chǎn)品質(zhì)量“優(yōu)”部分關(guān)聯(lián)規(guī)則
表6 產(chǎn)品質(zhì)量“合格”部分關(guān)聯(lián)規(guī)則
表7 產(chǎn)品質(zhì)量“不合格”部分關(guān)聯(lián)規(guī)則
從表5編號5,6,7,8中可以看出,當(dāng)產(chǎn)品“優(yōu)”時,“漏電流”測量值的置信度達(dá)到了100%,也就是說,若是產(chǎn)品“優(yōu)”,漏電流測量值一定會在[0,600)之間?!皳p耗”測量值的置信度達(dá)到98%,“電壓”測量值的置信度達(dá)到85%,“容量”測量值的置信度達(dá)到84%,由此得出結(jié)論:當(dāng)產(chǎn)品“優(yōu)”時,測量值漏電流ESR在[0,600),電壓C在[1,100),損耗D在[0,10),容量CAP在[50,100)的可能性最大。另外,從編號1可以看出,該條強關(guān)聯(lián)規(guī)則支持度雖然僅僅為61.8%,但是置信度達(dá)到了83.7%,同樣驗證了上述結(jié)論。
從表6中可以發(fā)現(xiàn),當(dāng)質(zhì)量為“合格”時,測量參數(shù)出現(xiàn)“電壓”C∈[0,1), “漏電流”ESR∈[5 000,10 000], “損耗”D∈[60,90),“容量”CAP∈[0,50)的情況最有可能。從表7可以看出,當(dāng)產(chǎn)品質(zhì)量為“不合格”時,編號1關(guān)聯(lián)規(guī)則支持度為0.054 8,表示數(shù)據(jù)中有5.5%的記錄是產(chǎn)品質(zhì)量為“不合格”,置信度0.774 5表示該情況下77.5%的可能質(zhì)量會為“不合格”。
結(jié)合表5~表7可以得出以下結(jié)論:
(1)產(chǎn)品質(zhì)量“優(yōu)”,測量值最有可能所屬區(qū)間分別是:
(2)產(chǎn)品質(zhì)量“合格”,測量值最有可能所屬區(qū)間分別是:
(3)產(chǎn)品質(zhì)量“不合格”,測量值最有可能所屬區(qū)間分別是:
根據(jù)這些結(jié)論,企業(yè)可以做出相應(yīng)的調(diào)整,例如企業(yè)追蹤每個批次產(chǎn)品在整個生產(chǎn)線的情況時,應(yīng)以結(jié)論(1)、(2)、(3)為標(biāo)準(zhǔn),找出測量值發(fā)生動態(tài)變化的原因,再以結(jié)論(1)作為閾值,監(jiān)控工業(yè)鈾在生產(chǎn)中的測量參數(shù),當(dāng)測量參數(shù)波動超過閾值,實施人工干預(yù),有助于提高產(chǎn)品優(yōu)率。
根據(jù)4.1中得出的3條結(jié)論,進(jìn)一步從實際生產(chǎn)中另外獲取了1 000條測量數(shù)據(jù),將得出的分析結(jié)果與實際產(chǎn)品測量值進(jìn)行對比分析,測試挖掘分析結(jié)果的準(zhǔn)確性。
圖2是實際產(chǎn)品質(zhì)量數(shù)量與挖掘分析結(jié)果預(yù)測數(shù)量對比柱狀圖,分別是實際“優(yōu)”與挖掘分析“優(yōu)”的對比,實際“合格”與挖掘分析“合格”的對比,實際“不合格”與挖掘分析“不合格”的對比。
根據(jù)對比結(jié)果,在1 000條測量數(shù)據(jù)中,實際產(chǎn)品“優(yōu)”數(shù)為765,根據(jù)“結(jié)論1”得出的產(chǎn)品“優(yōu)”數(shù)為701,準(zhǔn)確率達(dá)到91.63%,剩下的64條測試為“合格”;實際產(chǎn)品“合格”數(shù)為134,根據(jù)“結(jié)論2”得出的產(chǎn)品“合格”數(shù)為112,準(zhǔn)確率為83.58%,剩下的22條有17條測試為“優(yōu)”,4條檢測為“不合格”;實際產(chǎn)品“不合格”數(shù)為101,根據(jù)“結(jié)論3”得出的產(chǎn)品“不合格”數(shù)為89,準(zhǔn)確率達(dá)到88.12%,剩下的12條中有11條測試為“合格”,1條為“優(yōu)”。
圖2 實際測量結(jié)果與挖掘分析結(jié)果對比
經(jīng)過上述對比分析,發(fā)現(xiàn)三條結(jié)論準(zhǔn)確率均超過了83%,可為企業(yè)提供強有力的數(shù)據(jù)支持。
對產(chǎn)品參數(shù)的研究管理對生產(chǎn)十分重要,生產(chǎn)效率及質(zhì)量決定企業(yè)的收益。分析工業(yè)數(shù)據(jù),提取有價值的信息對企業(yè)生產(chǎn)調(diào)節(jié),做出調(diào)控起到十分重要的意義。數(shù)據(jù)挖掘技術(shù)涉及的功能很多,常用的功能有關(guān)聯(lián)分析、分類分析、預(yù)測分析、聚類分析等等。該文根據(jù)數(shù)據(jù)特點首先采用了聚類分析得到不同區(qū)間的類別來代替離散化數(shù)據(jù),再利用改進(jìn)的關(guān)聯(lián)規(guī)則技術(shù)挖掘出企業(yè)產(chǎn)品質(zhì)量與測量參數(shù)之間的相互聯(lián)系,取得了不錯的實驗效果。