陳 君
(渭南師范學院 網絡安全與信息化學院 網絡安全與信息化工程技術中心,陜西 渭南 714000)
可以通過二手車交易系統進行二手車購買、二手車出售、二手車拍賣、搜索二手車信息、了解二手車資訊、討論二手車問題,通過使用二手車交易系統方便進行二手車的買賣。那么哪些品牌、哪些價位、具體有哪些性能指標的二手車的成交率比較高,哪些二手車輛更適合自己,文中針對樂購二手車交易系統數據庫中的數據進行了分析挖掘,找出樂購二手車交易系統中的有效規律,提高樂購二手車交易網的成交率。
利用FP-growth算法,對樂購二手車交易系統中的車輛品牌、車載人數、行駛里程、使用年限、車輛價格等信息進行挖掘,從中發現樂購二手車交易系統中的有效規律,提高車輛的成交量[1]。例如:哪些年齡段的人喜歡購買什么品牌的車,哪些收入水平的人喜歡購買什么類型的車,哪些車型的車受到男/女性的青睞、什么顏色的車輛更加容易交易、什么車齡的車在二手交易市場比較好賣、車況的保養情況對車輛交易的影響等等。經過對相關數據的分析有助于購買方和出售方進行車輛交易,提高樂購二手車交易系統的成交率。
數據挖掘(data mining)是指從數據集中發現有效的、新穎的、潛在有用的和最終可以理解模式的高級處理過程[2]。數據挖掘也可以理解為從大量的數據中提取或者挖掘知識,而在數據挖掘中所提取的有價值的信息或者知識,除了一般所講的數據和信息以外,還有廣泛意義上的概念、模式、規律、約束、規則等內容[3]。數據挖掘技術可以幫助用戶進行決策、查詢處理、信息管理和過程控制等。數據挖掘技術已經在市場銷售、科學應用、欺詐甄別、Internet的應用、金融等領域發揮了作用,并將成為以下行業(如網絡服務、商業智能、生物工程)的研究方向。數據挖掘技術是信息技術產業最有前途的交叉學科之一。
數據挖掘過程可大體分為以下幾個步驟[4],如圖1所示。

圖1 數據挖掘的步驟
(1)業務對象:對業務問題做了清晰的定義,數據挖掘中最為重要的一步就是了解數據挖掘的主要目的,進行數據挖掘的過程中結果是不可預測的,但問題是可預知的。
(2)數據準備:數據的準備關系到數據挖掘的結果成功與否,會不會產生經濟效益。數據的準備是從不同的數據源中整理數據挖掘過程所需的數據,保證數據的易用性、時效性、綜合性和數據的質量。數據挖掘的經驗和工具決定了數據挖掘的結果,而數據的準備十分重要。
數據準備可分為以下幾部分:
①數據的選擇:查找并收集和業務對象相關的數據信息,篩選有效的數據使其能夠進行有效的數據挖掘。
②數據的預處理:對選擇出有質量的數據進行分析研究,確定數據的類型,為下一步的數據操作做好準備。
③數據的轉換:創建適合具體挖掘算法的分析模型是數據挖掘結果成功與否的關鍵所在,在數據挖掘過程中針對數據挖掘算法創建了分析模型數據,方便用戶將數據轉換成分析模型。
(3)數據挖掘:選擇正確的數據挖掘算法對轉換后的數據進行挖掘取得結果。
(4)結果分析:對數據挖掘后的結果進行解釋并做出評估,而使用的分析方法將根據數據挖掘的操作來確定,一般會用到可視化的操作技術。
(5)知識的同化:把分析研究所得到的知識放到業務信息系統中來考量。
關聯規則屬于數據挖掘之中的一種,關聯規則的有效性規則為用戶設定合適的支持度和置信度,產生大于最小取值的有效性規則[5]。下面來舉例說明一下什么是關聯規則,比如設定牛奶和面包的支持度support為15%,置信度confidence為75%,也就是說來超市的顧客中15%的顧客同時購買了牛奶和面包,而其中購買牛奶的顧客中有75%同時購買了面包[6]。
關聯規則挖掘的步驟:①發現所有頻繁項集。首先設定最小支持度,找出所有頻繁項集,找出support大于等于最小支持度的所有的項目子集。實際中頻繁項集之間會存在包含的關系,通常情況下只關心不被其他頻繁項集所包含的那些最大頻繁項集的集合,在數據挖掘中發現所有的頻繁項集是關聯規則形成的基礎。②生成關聯規則。首先用戶給定一個合適的最小置信度,然后在最大頻繁項集的基礎上,找出confidence大于等于最小置信度的關聯規則。
關聯規則挖掘的基本模型如圖2所示。

圖2 關聯規則挖掘的基本模型
輸入事務數據庫D,首先根據選定算法找出頻繁項目集,生成強關聯規則,輸出關聯規則集合。根據用戶指定的最小支持度min_support和最小置信度min_confidence分別與找出所有頻繁項目集和產生強關聯規則進行交互,然后通過與輸出關聯規則集的交互對所得到的結果做出解釋與評估。挖掘關聯規則的關鍵步驟是步驟1找出所有頻繁項目集,步驟1的性能決定了關聯規則挖掘的整體性能。所以目前的研究一般都集中在對頻繁項集的挖掘和處理上面,對比步驟1,步驟2相對容易實現些,步驟2只需從已挖掘出的頻繁項集中,舉出所有可能的關聯規則,最后根據用戶設定的最小支持度閾值min_support與最小置信度閾值min_confidence來考量以上關聯規則,得出有效規則[7]。
韓家煒等人在Apriori算法的基礎上提出了FP-growth算法,它是一種基于FP樹的頻繁項目集挖掘算法,首先把原數據集壓縮到一棵FP樹上,然后對原始數據集進行二次掃描,而數據挖掘的整個過程不產生候選項目集,所以此算法大大提高了數據挖掘的效率[8]。把發掘長模式的問題轉換變成遞歸的發掘短模式的問題,連接最不頻繁的項作為后綴,來確定最好的選擇,減少了搜索的開銷[9]。FP-growth算法跟Apriori算法比起來效率提高了許多,因為FP-growth算法不會產生候選集,省去了候選測試,數據結構相對緊縮,不用對數據庫進行重復掃描[10]。
FP-growth算法分為2個階段:第一階段構造FP-tree,第二階段挖掘FP-tree。
構造FP-tree的方法分兩步:第一步,掃描數據庫D,得出結果集L。第二步,創建根節點null,選擇事務Trans中的頻繁項,對結果集L進行排序,設排序后的頻繁項列表為[ρ|P],支持度計數最大的即第1個元素為ρ,剩余元素的表為P,insert_tree([ρ|P,T])的調用方法是:假設T有子女N而N.item_name=ρ.item_name,則N的計數+1,如果≠創建新節點,N的計數=1,將其鏈接到父節點T上,通過節點鏈結構把它鏈接到有相同節點的item_name上,假如ρ≠null,遞歸調用insert_tree(P,N)[11-12]。
第二階段為挖掘FP-tree,調用FP-growth(FP-tree,null) :
Procedure FP-growth(Tree,α)
①if Tree有單個路徑pthen
②for路徑p中節點的每個組合為β;
③產生模式α∪β,支持度support=β中節點的最小支持度;
④else for eachai在Tree的頭部{
⑤產生一個模式β=ai∪α,支持度support=ai.support;
⑥構造β的條件模式基,再構造β的條件FP-Tree Treeβ;
⑦if Treeβ≠? then
⑧調用FP-growth (Treeβ,β);}
構造長度為1的頻繁模式,并從它開始構造條件模式基和條件FP-tree,并且在此樹上進行遞歸挖掘,通過后綴模式和條件FP-tree產生的頻繁模式進行模式增長的連接[13]。FP-growth算法不會產生候選集,省去了候選測試,數據結構相對緊縮,不用對數據庫進行重復的掃描,降低了搜索開銷,提高了挖掘效率[14-15]。
文中采用Windows 10的操作系統,在Microsoft Visual Studio 2015開發平臺中使用C#語言,在計算機CPU為intel 2.6 GHz,內存為4 GB的基礎上,應用FP-growth算法對樂購二手車交易系統數據庫中的數據進行數據挖掘得出有用的結論。
文中收集了樂購二手車交易平臺2016年1月到2018年12月共3年的數據。樂購二手車交易平臺的數據中可供挖掘的模塊有:二手車信息模塊、拍賣品管理模塊、購物車管理模塊、訂單管理等信息模塊。
數據庫中未經處理過的原始數據雖包含研究所需內容,但仍然存在不足之處,如在樂購二手車信息模塊中包含車輛品牌、車輛類型、行駛里程、車輛顏色、車輛價格、車載人數、使用年限、保養狀況、出售人姓名等信息,但對于數據挖掘來說出售人姓名是沒有挖掘價值的;在購車信息模塊中同樣對于數據挖掘來說購車人姓名、地址等信息是沒有價值的。各模塊中都包含了一些無用的信息,這些信息將會嚴重影響數據挖掘的效率,因此應先進行數據的預處理操作。
3.2.1 刪除無效數據
刪除無效數據的操作如下:
(1)刪除表中無用的數據屬性,例如樂購二手車信息中的車輛出售人姓名,購車信息中的購車人姓名和地址等對于本項目挖掘目標意義并不大,可以忽略的這些字段。
(2)刪除各表中的無用數據、臟數據、不完整和不一致的數據,例如樂購二手車交易系統中用戶的注冊信息不完整、錯誤、前后不一致的數據。
3.2.2 數據整理和轉換
對樂購二手車交易系統中的數據進行整理和轉換。首先整理了樂購二手車交易信息中的車輛品牌、車輛價格、行駛里程、車輛類型、車輛顏色、車載人數、使用年限、保養狀況、購車人性別、購車人年齡、購車人職業等。
關聯規則挖掘算法要求數據應為布爾型,而原始數據表中的數據不是,為了能夠使用上述的關聯規則算法對該數據表進行挖掘,需要對樂購二手車交易系統中的原始數據進行轉化:
(1)量化屬性離散化:關聯規則要求將數據庫中的一部分數值型的屬性區間化。例如將根據取值的分布規律,將數值型的屬性行駛里程離散化,將它劃分為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萬公里以上)。其他的數值屬性也按本辦法,把數值屬性轉化為布爾型,劃分成幾個區間,轉換成數字。
(2)類別屬性轉化:一些備選項屬性是需要進行類別轉換的,比如性別屬性,把它們轉化成布爾類型數據,例如:58(男)、59(女)。將數據庫中其他類似的類別屬性也轉化成布爾型數據。
下面將舉例進行說明,記錄的字段名含義如表1所示,對應關系如表2所示,數據轉換后的事務數據如表3所示。

表1 記錄的字段名含義

表2 對應關系

表3 轉換后的事務數據
對整理和轉換后的樂購二手車交易系統中的數據進行有效性挖掘,輸入事務數據,設定最小支持度s=8%,設定最小置信度c=25%,輸出頻繁項集。挖掘結果如表4所示。

表4 挖掘結果
根據表4可以得出以下結論:規則A表示白色本田SUV行駛里程在4萬到8萬公里的二手車輛比較受到市場的歡迎,規則B表示行車年限在2年到5年的大眾車輛比較受男士的親睞,規則C表示黑色奧迪轎車受到購車者的青睞,規則D表示銀色奔馳轎車比較受女士的親睞,規則E表示年限在2年到5年的黑色車輛,并且行車里程在4萬到6萬公里的比較受購車者的歡迎,規則F表示藍色別克MPV型車輛在二手車市場上交易數量較多。
利用FP-growth算法對樂購二手車交易系統中的數據進行對比和分析,發掘其中的有效規律,為購買和出售二手車輛的雙方提供了有用的信息。在使用FP-growth算法對樂購二手車交易系統事務數據庫進行數據挖掘的過程中,數據的準備和選擇是極為關鍵的一步,設定合適的最小支持度和最小置信度,會直接影響到數據挖掘的結果是否有效,如果最小置信度和最小支持度的數值設定過小,數據挖掘的結果就會出現大量無效的規則,浪費資源、影響效果,如果最小支持度和最小置信度的數值設定過大,將找不出相關聯的有效規則,達不到數據挖掘的最終目的。