陳 君
(渭南師范學(xué)院 網(wǎng)絡(luò)安全與信息化學(xué)院 網(wǎng)絡(luò)安全與信息化工程技術(shù)中心,陜西 渭南 714000)
可以通過二手車交易系統(tǒng)進行二手車購買、二手車出售、二手車拍賣、搜索二手車信息、了解二手車資訊、討論二手車問題,通過使用二手車交易系統(tǒng)方便進行二手車的買賣。那么哪些品牌、哪些價位、具體有哪些性能指標的二手車的成交率比較高,哪些二手車輛更適合自己,文中針對樂購二手車交易系統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù)進行了分析挖掘,找出樂購二手車交易系統(tǒng)中的有效規(guī)律,提高樂購二手車交易網(wǎng)的成交率。
利用FP-growth算法,對樂購二手車交易系統(tǒng)中的車輛品牌、車載人數(shù)、行駛里程、使用年限、車輛價格等信息進行挖掘,從中發(fā)現(xiàn)樂購二手車交易系統(tǒng)中的有效規(guī)律,提高車輛的成交量[1]。例如:哪些年齡段的人喜歡購買什么品牌的車,哪些收入水平的人喜歡購買什么類型的車,哪些車型的車受到男/女性的青睞、什么顏色的車輛更加容易交易、什么車齡的車在二手交易市場比較好賣、車況的保養(yǎng)情況對車輛交易的影響等等。經(jīng)過對相關(guān)數(shù)據(jù)的分析有助于購買方和出售方進行車輛交易,提高樂購二手車交易系統(tǒng)的成交率。
數(shù)據(jù)挖掘(data mining)是指從數(shù)據(jù)集中發(fā)現(xiàn)有效的、新穎的、潛在有用的和最終可以理解模式的高級處理過程[2]。數(shù)據(jù)挖掘也可以理解為從大量的數(shù)據(jù)中提取或者挖掘知識,而在數(shù)據(jù)挖掘中所提取的有價值的信息或者知識,除了一般所講的數(shù)據(jù)和信息以外,還有廣泛意義上的概念、模式、規(guī)律、約束、規(guī)則等內(nèi)容[3]。數(shù)據(jù)挖掘技術(shù)可以幫助用戶進行決策、查詢處理、信息管理和過程控制等。數(shù)據(jù)挖掘技術(shù)已經(jīng)在市場銷售、科學(xué)應(yīng)用、欺詐甄別、Internet的應(yīng)用、金融等領(lǐng)域發(fā)揮了作用,并將成為以下行業(yè)(如網(wǎng)絡(luò)服務(wù)、商業(yè)智能、生物工程)的研究方向。數(shù)據(jù)挖掘技術(shù)是信息技術(shù)產(chǎn)業(yè)最有前途的交叉學(xué)科之一。
數(shù)據(jù)挖掘過程可大體分為以下幾個步驟[4],如圖1所示。
圖1 數(shù)據(jù)挖掘的步驟
(1)業(yè)務(wù)對象:對業(yè)務(wù)問題做了清晰的定義,數(shù)據(jù)挖掘中最為重要的一步就是了解數(shù)據(jù)挖掘的主要目的,進行數(shù)據(jù)挖掘的過程中結(jié)果是不可預(yù)測的,但問題是可預(yù)知的。
(2)數(shù)據(jù)準備:數(shù)據(jù)的準備關(guān)系到數(shù)據(jù)挖掘的結(jié)果成功與否,會不會產(chǎn)生經(jīng)濟效益。數(shù)據(jù)的準備是從不同的數(shù)據(jù)源中整理數(shù)據(jù)挖掘過程所需的數(shù)據(jù),保證數(shù)據(jù)的易用性、時效性、綜合性和數(shù)據(jù)的質(zhì)量。數(shù)據(jù)挖掘的經(jīng)驗和工具決定了數(shù)據(jù)挖掘的結(jié)果,而數(shù)據(jù)的準備十分重要。
數(shù)據(jù)準備可分為以下幾部分:
①數(shù)據(jù)的選擇:查找并收集和業(yè)務(wù)對象相關(guān)的數(shù)據(jù)信息,篩選有效的數(shù)據(jù)使其能夠進行有效的數(shù)據(jù)挖掘。
②數(shù)據(jù)的預(yù)處理:對選擇出有質(zhì)量的數(shù)據(jù)進行分析研究,確定數(shù)據(jù)的類型,為下一步的數(shù)據(jù)操作做好準備。
③數(shù)據(jù)的轉(zhuǎn)換:創(chuàng)建適合具體挖掘算法的分析模型是數(shù)據(jù)挖掘結(jié)果成功與否的關(guān)鍵所在,在數(shù)據(jù)挖掘過程中針對數(shù)據(jù)挖掘算法創(chuàng)建了分析模型數(shù)據(jù),方便用戶將數(shù)據(jù)轉(zhuǎn)換成分析模型。
(3)數(shù)據(jù)挖掘:選擇正確的數(shù)據(jù)挖掘算法對轉(zhuǎn)換后的數(shù)據(jù)進行挖掘取得結(jié)果。
(4)結(jié)果分析:對數(shù)據(jù)挖掘后的結(jié)果進行解釋并做出評估,而使用的分析方法將根據(jù)數(shù)據(jù)挖掘的操作來確定,一般會用到可視化的操作技術(shù)。
(5)知識的同化:把分析研究所得到的知識放到業(yè)務(wù)信息系統(tǒng)中來考量。
關(guān)聯(lián)規(guī)則屬于數(shù)據(jù)挖掘之中的一種,關(guān)聯(lián)規(guī)則的有效性規(guī)則為用戶設(shè)定合適的支持度和置信度,產(chǎn)生大于最小取值的有效性規(guī)則[5]。下面來舉例說明一下什么是關(guān)聯(lián)規(guī)則,比如設(shè)定牛奶和面包的支持度support為15%,置信度confidence為75%,也就是說來超市的顧客中15%的顧客同時購買了牛奶和面包,而其中購買牛奶的顧客中有75%同時購買了面包[6]。
關(guān)聯(lián)規(guī)則挖掘的步驟:①發(fā)現(xiàn)所有頻繁項集。首先設(shè)定最小支持度,找出所有頻繁項集,找出support大于等于最小支持度的所有的項目子集。實際中頻繁項集之間會存在包含的關(guān)系,通常情況下只關(guān)心不被其他頻繁項集所包含的那些最大頻繁項集的集合,在數(shù)據(jù)挖掘中發(fā)現(xiàn)所有的頻繁項集是關(guān)聯(lián)規(guī)則形成的基礎(chǔ)。②生成關(guān)聯(lián)規(guī)則。首先用戶給定一個合適的最小置信度,然后在最大頻繁項集的基礎(chǔ)上,找出confidence大于等于最小置信度的關(guān)聯(lián)規(guī)則。
關(guān)聯(lián)規(guī)則挖掘的基本模型如圖2所示。
圖2 關(guān)聯(lián)規(guī)則挖掘的基本模型
輸入事務(wù)數(shù)據(jù)庫D,首先根據(jù)選定算法找出頻繁項目集,生成強關(guān)聯(lián)規(guī)則,輸出關(guān)聯(lián)規(guī)則集合。根據(jù)用戶指定的最小支持度min_support和最小置信度min_confidence分別與找出所有頻繁項目集和產(chǎn)生強關(guān)聯(lián)規(guī)則進行交互,然后通過與輸出關(guān)聯(lián)規(guī)則集的交互對所得到的結(jié)果做出解釋與評估。挖掘關(guān)聯(lián)規(guī)則的關(guān)鍵步驟是步驟1找出所有頻繁項目集,步驟1的性能決定了關(guān)聯(lián)規(guī)則挖掘的整體性能。所以目前的研究一般都集中在對頻繁項集的挖掘和處理上面,對比步驟1,步驟2相對容易實現(xiàn)些,步驟2只需從已挖掘出的頻繁項集中,舉出所有可能的關(guān)聯(lián)規(guī)則,最后根據(jù)用戶設(shè)定的最小支持度閾值min_support與最小置信度閾值min_confidence來考量以上關(guān)聯(lián)規(guī)則,得出有效規(guī)則[7]。
韓家煒等人在Apriori算法的基礎(chǔ)上提出了FP-growth算法,它是一種基于FP樹的頻繁項目集挖掘算法,首先把原數(shù)據(jù)集壓縮到一棵FP樹上,然后對原始數(shù)據(jù)集進行二次掃描,而數(shù)據(jù)挖掘的整個過程不產(chǎn)生候選項目集,所以此算法大大提高了數(shù)據(jù)挖掘的效率[8]。把發(fā)掘長模式的問題轉(zhuǎn)換變成遞歸的發(fā)掘短模式的問題,連接最不頻繁的項作為后綴,來確定最好的選擇,減少了搜索的開銷[9]。FP-growth算法跟Apriori算法比起來效率提高了許多,因為FP-growth算法不會產(chǎn)生候選集,省去了候選測試,數(shù)據(jù)結(jié)構(gòu)相對緊縮,不用對數(shù)據(jù)庫進行重復(fù)掃描[10]。
FP-growth算法分為2個階段:第一階段構(gòu)造FP-tree,第二階段挖掘FP-tree。
構(gòu)造FP-tree的方法分兩步:第一步,掃描數(shù)據(jù)庫D,得出結(jié)果集L。第二步,創(chuàng)建根節(jié)點null,選擇事務(wù)Trans中的頻繁項,對結(jié)果集L進行排序,設(shè)排序后的頻繁項列表為[ρ|P],支持度計數(shù)最大的即第1個元素為ρ,剩余元素的表為P,insert_tree([ρ|P,T])的調(diào)用方法是:假設(shè)T有子女N而N.item_name=ρ.item_name,則N的計數(shù)+1,如果≠創(chuàng)建新節(jié)點,N的計數(shù)=1,將其鏈接到父節(jié)點T上,通過節(jié)點鏈結(jié)構(gòu)把它鏈接到有相同節(jié)點的item_name上,假如ρ≠null,遞歸調(diào)用insert_tree(P,N)[11-12]。
第二階段為挖掘FP-tree,調(diào)用FP-growth(FP-tree,null) :
Procedure FP-growth(Tree,α)
①if Tree有單個路徑pthen
②for路徑p中節(jié)點的每個組合為β;
③產(chǎn)生模式α∪β,支持度support=β中節(jié)點的最小支持度;
④else for eachai在Tree的頭部{
⑤產(chǎn)生一個模式β=ai∪α,支持度support=ai.support;
⑥構(gòu)造β的條件模式基,再構(gòu)造β的條件FP-Tree Treeβ;
⑦if Treeβ≠? then
⑧調(diào)用FP-growth (Treeβ,β);}
構(gòu)造長度為1的頻繁模式,并從它開始構(gòu)造條件模式基和條件FP-tree,并且在此樹上進行遞歸挖掘,通過后綴模式和條件FP-tree產(chǎn)生的頻繁模式進行模式增長的連接[13]。FP-growth算法不會產(chǎn)生候選集,省去了候選測試,數(shù)據(jù)結(jié)構(gòu)相對緊縮,不用對數(shù)據(jù)庫進行重復(fù)的掃描,降低了搜索開銷,提高了挖掘效率[14-15]。
文中采用Windows 10的操作系統(tǒng),在Microsoft Visual Studio 2015開發(fā)平臺中使用C#語言,在計算機CPU為intel 2.6 GHz,內(nèi)存為4 GB的基礎(chǔ)上,應(yīng)用FP-growth算法對樂購二手車交易系統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù)進行數(shù)據(jù)挖掘得出有用的結(jié)論。
文中收集了樂購二手車交易平臺2016年1月到2018年12月共3年的數(shù)據(jù)。樂購二手車交易平臺的數(shù)據(jù)中可供挖掘的模塊有:二手車信息模塊、拍賣品管理模塊、購物車管理模塊、訂單管理等信息模塊。
數(shù)據(jù)庫中未經(jīng)處理過的原始數(shù)據(jù)雖包含研究所需內(nèi)容,但仍然存在不足之處,如在樂購二手車信息模塊中包含車輛品牌、車輛類型、行駛里程、車輛顏色、車輛價格、車載人數(shù)、使用年限、保養(yǎng)狀況、出售人姓名等信息,但對于數(shù)據(jù)挖掘來說出售人姓名是沒有挖掘價值的;在購車信息模塊中同樣對于數(shù)據(jù)挖掘來說購車人姓名、地址等信息是沒有價值的。各模塊中都包含了一些無用的信息,這些信息將會嚴重影響數(shù)據(jù)挖掘的效率,因此應(yīng)先進行數(shù)據(jù)的預(yù)處理操作。
3.2.1 刪除無效數(shù)據(jù)
刪除無效數(shù)據(jù)的操作如下:
(1)刪除表中無用的數(shù)據(jù)屬性,例如樂購二手車信息中的車輛出售人姓名,購車信息中的購車人姓名和地址等對于本項目挖掘目標意義并不大,可以忽略的這些字段。
(2)刪除各表中的無用數(shù)據(jù)、臟數(shù)據(jù)、不完整和不一致的數(shù)據(jù),例如樂購二手車交易系統(tǒng)中用戶的注冊信息不完整、錯誤、前后不一致的數(shù)據(jù)。
3.2.2 數(shù)據(jù)整理和轉(zhuǎn)換
對樂購二手車交易系統(tǒng)中的數(shù)據(jù)進行整理和轉(zhuǎn)換。首先整理了樂購二手車交易信息中的車輛品牌、車輛價格、行駛里程、車輛類型、車輛顏色、車載人數(shù)、使用年限、保養(yǎng)狀況、購車人性別、購車人年齡、購車人職業(yè)等。
關(guān)聯(lián)規(guī)則挖掘算法要求數(shù)據(jù)應(yīng)為布爾型,而原始數(shù)據(jù)表中的數(shù)據(jù)不是,為了能夠使用上述的關(guān)聯(lián)規(guī)則算法對該數(shù)據(jù)表進行挖掘,需要對樂購二手車交易系統(tǒng)中的原始數(shù)據(jù)進行轉(zhuǎn)化:
(1)量化屬性離散化:關(guān)聯(lián)規(guī)則要求將數(shù)據(jù)庫中的一部分數(shù)值型的屬性區(qū)間化。例如將根據(jù)取值的分布規(guī)律,將數(shù)值型的屬性行駛里程離散化,將它劃分為9組分別為:30(4萬公里以下)、31(4萬到8萬公里以下)、32(8萬到12萬公里以下)、33(12萬到20萬公里以下)、34(20萬到30萬公里以下)、35(30萬到40萬公里以下)、36(30萬到40萬公里以下)和37(40萬到50萬公里以下)和38(50萬公里以上)。其他的數(shù)值屬性也按本辦法,把數(shù)值屬性轉(zhuǎn)化為布爾型,劃分成幾個區(qū)間,轉(zhuǎn)換成數(shù)字。
(2)類別屬性轉(zhuǎn)化:一些備選項屬性是需要進行類別轉(zhuǎn)換的,比如性別屬性,把它們轉(zhuǎn)化成布爾類型數(shù)據(jù),例如:58(男)、59(女)。將數(shù)據(jù)庫中其他類似的類別屬性也轉(zhuǎn)化成布爾型數(shù)據(jù)。
下面將舉例進行說明,記錄的字段名含義如表1所示,對應(yīng)關(guān)系如表2所示,數(shù)據(jù)轉(zhuǎn)換后的事務(wù)數(shù)據(jù)如表3所示。
表1 記錄的字段名含義
表2 對應(yīng)關(guān)系
表3 轉(zhuǎn)換后的事務(wù)數(shù)據(jù)
對整理和轉(zhuǎn)換后的樂購二手車交易系統(tǒng)中的數(shù)據(jù)進行有效性挖掘,輸入事務(wù)數(shù)據(jù),設(shè)定最小支持度s=8%,設(shè)定最小置信度c=25%,輸出頻繁項集。挖掘結(jié)果如表4所示。
表4 挖掘結(jié)果
根據(jù)表4可以得出以下結(jié)論:規(guī)則A表示白色本田SUV行駛里程在4萬到8萬公里的二手車輛比較受到市場的歡迎,規(guī)則B表示行車年限在2年到5年的大眾車輛比較受男士的親睞,規(guī)則C表示黑色奧迪轎車受到購車者的青睞,規(guī)則D表示銀色奔馳轎車比較受女士的親睞,規(guī)則E表示年限在2年到5年的黑色車輛,并且行車里程在4萬到6萬公里的比較受購車者的歡迎,規(guī)則F表示藍色別克MPV型車輛在二手車市場上交易數(shù)量較多。
利用FP-growth算法對樂購二手車交易系統(tǒng)中的數(shù)據(jù)進行對比和分析,發(fā)掘其中的有效規(guī)律,為購買和出售二手車輛的雙方提供了有用的信息。在使用FP-growth算法對樂購二手車交易系統(tǒng)事務(wù)數(shù)據(jù)庫進行數(shù)據(jù)挖掘的過程中,數(shù)據(jù)的準備和選擇是極為關(guān)鍵的一步,設(shè)定合適的最小支持度和最小置信度,會直接影響到數(shù)據(jù)挖掘的結(jié)果是否有效,如果最小置信度和最小支持度的數(shù)值設(shè)定過小,數(shù)據(jù)挖掘的結(jié)果就會出現(xiàn)大量無效的規(guī)則,浪費資源、影響效果,如果最小支持度和最小置信度的數(shù)值設(shè)定過大,將找不出相關(guān)聯(lián)的有效規(guī)則,達不到數(shù)據(jù)挖掘的最終目的。