鄭 斌
(福建江夏學院電子信息科學學院, 福州 350108)
企業(yè)資產(chǎn)管理工作涉及多種資產(chǎn)項目和資產(chǎn)數(shù)據(jù),應用數(shù)據(jù)挖掘技術(shù)挖掘資產(chǎn)數(shù)據(jù)之間的關(guān)聯(lián)規(guī)則,從而為管理決策提供反映企業(yè)資產(chǎn)運營實際的數(shù)據(jù)信息,有助于企業(yè)實行科學決策,提高資產(chǎn)利用率,節(jié)約企業(yè)經(jīng)費,提升企業(yè)經(jīng)濟效益。本次研究,結(jié)合軌道交通工程建設(shè)單位資產(chǎn)數(shù)據(jù)關(guān)聯(lián)規(guī)則挖掘的需要,對Apriori算法進行了優(yōu)化。
Apriori算法是關(guān)聯(lián)規(guī)則挖掘中的經(jīng)典算法,為基于兩階段頻集思想的遞推算法。該算法的基本思想是:首先,應用描述的方法找出所有的頻繁項集(即所有支持度大于最小支持度的項集,這些項集出現(xiàn)的頻繁性至少和預定義的最小支持度一樣),由頻繁項集產(chǎn)生強關(guān)聯(lián)規(guī)則;然后,應用關(guān)聯(lián)規(guī)則挖掘出頻繁項集中每個大于等于最小可信度的項集。
Apriori算法的實現(xiàn)過程是:首先對數(shù)據(jù)庫進行全集掃描,將包含所有項為n階的項集作為初始值;然后在此項集中進行i階迭代,直至項集為空,得到i階的候選項集Ci;接下來繼續(xù)在數(shù)據(jù)庫中掃描,獲得相對應的支持數(shù),找到Ci中大于等于最小支持數(shù)的i階項集[4]。該算法的偽代碼如下:
輸入:數(shù)據(jù)集D以及最小的支持度min_up
輸出:最大的頻繁項集Ii,事務t0=D
1)I1=D
2)for(i=2;Ii-1≠φ;i++)
3)Ci=Apriori(Ii-1)
4)while(t∈D)
5)Ct=subset(Ci,t)
6)while(C∈Ct)
7)C.sup++
8)Ii={C∈Ck|C.sup≥min.up}
Apriori算法的優(yōu)勢是:在支持度較低的情況下,掃描數(shù)據(jù)庫的次數(shù)較少,空間復雜度較低。它的缺點是:會產(chǎn)生大量的候選集,需要多次迭代掃描數(shù)據(jù)庫,從而導致搜索速度降低,占用過多的內(nèi)存空間。
針對Apriori算法的不足對其進行改進。首先將數(shù)據(jù)挖掘的研究對象劃分為n個數(shù)據(jù)規(guī)模的部分,然后將挖掘得到的結(jié)果進行合并?;玖鞒虨椋?/p>
1)將要挖掘的數(shù)據(jù)劃分為n個部分;
2)對每一個模塊部分都進行頻繁項目集,存儲在一個頻繁項目集中;
3)將存儲的頻繁項目集進行合并,形成全局候選的頻繁項目集;
4)針對全局的頻繁項目集掃描數(shù)據(jù)庫,計算該頻繁項目集的實際支持度,從而實現(xiàn)對頻繁項的確定。
改進后的算法具有如下特點:
第一,在第一次掃描數(shù)據(jù)庫的時候就生成一組頻繁項目集。以這些可能的頻繁項目集為基礎(chǔ)來確定數(shù)據(jù)庫的實際支持度,進而得到所需的最終頻繁項目集數(shù)目,并獲取最可能存在的關(guān)聯(lián)規(guī)則。
第二,將數(shù)據(jù)庫中的劃分為n個部分,首先將每個部分都產(chǎn)生一個頻繁項目集,然后再將這些頻繁項目集合并為一個全局候選頻繁項目集。這種方式在信息量增加迅速的情況下,能夠盡可能地降低頻繁項數(shù)量對數(shù)據(jù)挖掘效率的影響,但不能降低對數(shù)據(jù)庫掃描的次數(shù),即當頻繁項目集的最大值長度為K,則需要對數(shù)據(jù)庫掃描K次。
第三,把要挖掘的數(shù)據(jù)劃分為n個部分(子模塊),對各部分的每個事務都添加一個屬性,并記錄該事務所包含的項目數(shù)。
資產(chǎn)管理數(shù)據(jù)往往來自多個部門,數(shù)量龐大而繁雜。比如城市軌道交通工程建設(shè)單位,其資產(chǎn)管理涉及的資產(chǎn)數(shù)據(jù)包含:設(shè)備采購與管理部門購買和維護設(shè)備的有關(guān)數(shù)據(jù),土建部門組織各種施工產(chǎn)生的相關(guān)數(shù)據(jù),拆遷部門開展各種拆遷項目產(chǎn)生的有關(guān)數(shù)據(jù),運營移交部門在各個階段進行資產(chǎn)移交產(chǎn)生的數(shù)據(jù)[1],等等。要給管理和決策層提供可靠的數(shù)據(jù)信息,就需要對資產(chǎn)數(shù)據(jù)進行挖掘分析。
根據(jù)軌道交通工程建設(shè)單位對資產(chǎn)數(shù)據(jù)分析的需要,設(shè)計資產(chǎn)數(shù)據(jù)庫時,確定資產(chǎn)、用戶、資金共3個主題域維度,并以資產(chǎn)主題為核心??紤]到隨著軌道交通行業(yè)的快速發(fā)展,對資產(chǎn)數(shù)據(jù)分析的需求也在不斷變化,且資產(chǎn)數(shù)據(jù)量也會逐步增加,設(shè)計了2級粒度數(shù)據(jù)層次,即詳細數(shù)據(jù)和高度綜合數(shù)據(jù)[2]。詳細數(shù)據(jù)包括單位各部門每天的數(shù)據(jù)流動和明細;高度綜合數(shù)據(jù)包括各部門每月、每年的資產(chǎn)數(shù)據(jù)集合,以統(tǒng)計數(shù)據(jù)報表的形式長期存儲。
資產(chǎn)數(shù)據(jù)庫的邏輯模型采用雪花模型[3-4]。雪花模型可以將各個維度的表格拓展為實時表,由此構(gòu)成局部層次區(qū)域(見圖1)。構(gòu)建好的多維主題表,數(shù)據(jù)冗余度較低,可以確保數(shù)據(jù)的一致性,可以實現(xiàn)較好的數(shù)據(jù)粒度,規(guī)則泛化能力較強。數(shù)據(jù)庫構(gòu)建完成后,需要裝填數(shù)據(jù)。具體流程是:首先抽取源數(shù)據(jù),按構(gòu)建的邏輯數(shù)據(jù)模型轉(zhuǎn)換相關(guān)的數(shù)據(jù);然后從物理數(shù)據(jù)模型中提取相關(guān)的資產(chǎn)數(shù)據(jù)變化特征,將其填補到資產(chǎn)數(shù)據(jù)庫中;最后應用改進的Apriori算法實現(xiàn)數(shù)據(jù)挖掘。
圖1 資產(chǎn)數(shù)據(jù)庫的邏輯模型
2.2.1 資產(chǎn)指標選擇
在數(shù)據(jù)挖掘過程中規(guī)約屬性和分類數(shù)據(jù),能夠降低屬性值,簡化挖掘規(guī)則。我們通過設(shè)計屬性約束方式來降低候選項集數(shù)量,提升關(guān)聯(lián)規(guī)則效率[5]。軌道交通工程建設(shè)單位的資產(chǎn)管理涉及一系列資產(chǎn),資產(chǎn)數(shù)據(jù)的數(shù)量龐大而繁雜。從中選擇下列較有代表性的資產(chǎn)指標。
A. 資產(chǎn)建設(shè)費用。這是固定資產(chǎn),包含建設(shè)資產(chǎn)的原始費用。
B. 資產(chǎn)剩余使用年率。資產(chǎn)使用年限反映著資產(chǎn)的折舊費用,這是資產(chǎn)管理的關(guān)鍵指標。
C. 資產(chǎn)年使用率。在使用過程中,各種資產(chǎn)都會由于損耗而降低價值。
D. 資產(chǎn)質(zhì)量評估值。在資產(chǎn)管理過程中要對每個指標進行質(zhì)量評估,以此確定資產(chǎn)的價值。
2.2.2 數(shù)據(jù)處理方法
(1) 數(shù)據(jù)泛化。這是對數(shù)據(jù)庫中與任務相關(guān)的大量數(shù)據(jù)進行抽象概述的一個分析過程。未通過泛化的數(shù)據(jù),通常在屬性值的表達中沒有規(guī)律可尋,且表述復雜,沒有一個明顯的特點[6]。
(2) 數(shù)據(jù)離散化。對非連續(xù)的數(shù)據(jù),通常應用泛化技術(shù)來進行處理;對連續(xù)性數(shù)據(jù)則采用離散化處理方式。將連續(xù)的數(shù)據(jù)分成若干個合理的區(qū)間,設(shè)置一個區(qū)間線來表示各數(shù)據(jù)匯總值,并計算得到該區(qū)間范圍的各個統(tǒng)計值,以特定的離散符號表示。步驟是先確定分割離散點,然后對分段區(qū)間進行統(tǒng)計[7]。
對資產(chǎn)數(shù)據(jù)進行挖掘時,在關(guān)聯(lián)規(guī)則中添加約束,可以顯著提升挖掘效率。為了研究資產(chǎn)的共性,對資產(chǎn)信息數(shù)據(jù)進行約束。I=
對于每個單項事務,T=
對給定的資產(chǎn),定義其中兩個單項事務為I1和I2。當其存在關(guān)聯(lián)屬性時,例如是在同一個時間段內(nèi)購置的資產(chǎn),則認為這兩者之間存在屬性連接,將共同屬性作為事務標號。如此,逐步增加新事務的數(shù)量。
實驗開發(fā)語言為C#語言,數(shù)據(jù)庫為SQL 2008。使用聯(lián)想電腦,內(nèi)存為2 GB,CPU采用Intel i5,主頻大小為1.6 GHz。實驗數(shù)據(jù)集為某市五條地鐵運營過程中購置的資產(chǎn)事務數(shù)據(jù)集,數(shù)據(jù)量為313 MB,包含資產(chǎn)記錄86.2萬條,屬于海量數(shù)據(jù)集。
確定數(shù)據(jù)庫結(jié)構(gòu)后,首先規(guī)約數(shù)據(jù)屬性,并根據(jù)量化規(guī)則將其轉(zhuǎn)換為相同的格式,應用約束規(guī)則來預處理相同格式的數(shù)據(jù);然后引用SQL語句統(tǒng)計功能來完成數(shù)據(jù)統(tǒng)計;最后運用改進的Apriori算法完成對候選項集的計算,由此構(gòu)建強關(guān)聯(lián)規(guī)則的頻繁項集。
軌道交通工程建設(shè)單位的資產(chǎn)數(shù)據(jù)量較大,且資產(chǎn)屬性量也較多,挖掘出來的關(guān)聯(lián)規(guī)則數(shù)量比較多。為了驗證算法的挖掘效率和精確性,將傳統(tǒng)的Apriori算法在不同支持度下的挖掘時間與改進算法進行了比較,結(jié)果如圖2所示。
圖2 在不同支持度下新舊算法所需的挖掘時間
傳統(tǒng)Apriori算法和改進算法都是隨著支持度的上升,所消耗時間越來越少;但改進后的Apriori算法所需的時間明顯少很多,它具有更好的時間效率。
在資產(chǎn)數(shù)據(jù)挖掘中,分別設(shè)置兩種最小支持度和最小信任度,即(0.1,0.3)和(1.6,1.5),對資產(chǎn)數(shù)據(jù)進行遍歷處理。結(jié)果顯示,改進后的Apriori算法能夠快速獲取到關(guān)聯(lián)規(guī)則(見表1)。在支持度不同的情況下,改進算法計算頻繁項的速度非常快。當選擇支持度為0.1時,運用改進算法計算得到頻繁項用時為45 min,約為傳統(tǒng)算法用時的15。運用改進算法獲取到的關(guān)聯(lián)規(guī)則數(shù)量也較多。隨著支持度的上升,關(guān)聯(lián)規(guī)則數(shù)量有明顯降低。最小支持度增加過大,會導致一些正確的規(guī)則數(shù)降低,從而降低不同數(shù)據(jù)之間的關(guān)聯(lián)性。
表1 在不同的最小支持度和信任度下算法的效率對比
說明:提升效率=(傳統(tǒng)算法-改進算法)÷傳統(tǒng)算法×100%。
根據(jù)軌道交通工程建設(shè)單位資產(chǎn)管理的需要,應用數(shù)據(jù)挖掘技術(shù)挖掘資產(chǎn)數(shù)據(jù)之間的關(guān)聯(lián)規(guī)則。聯(lián)系資產(chǎn)數(shù)據(jù)的特點,改進Apriori算法,構(gòu)建了頻繁項生成優(yōu)化模型,應用數(shù)據(jù)屬性規(guī)約方式優(yōu)化約束關(guān)聯(lián)規(guī)則。實驗結(jié)果表明,改進后的Apriori算法具有更好的時間效率,可適用于海量數(shù)據(jù)集。