章 慧
(淮陰工學院計算機工程學院,江蘇 淮安 223003)
隨著Internet的迅速發展,當今IT技術、電子商務及互聯網的快速發展和迅速普及,導致在各個應用領域的數據庫中存儲了大量的數據,傳統的數據挖掘技術無法有效地得到需要的興趣信息[1].這些數據集中包含了很多有用的知識,如何發現其中所隱藏的、預先未知的信息以輔助相應的應用顯得尤為重要,這正是數據挖掘所要完成的任務.目前,使用數據挖掘來進行數據分析已經出現了很多的方法,魏鴻等人提出要使用更高級的數據挖掘的方法來進行網絡的數據分析[2]來提升挖掘的滿意度.張麗華等人[3]提出客戶滿意度的測評方法在滿意度提升中的作用.與此同時,大量的研究者將數據挖據的方法引入到數據的分析中,使數據挖掘成為計算機相關算法中最活躍的一個領域[4-6],這些方法為數據的合理有效分析提供了強大的理論基礎.
但是這些數據挖掘其實還僅僅停留在簡單的數據分析或者OLAP階段,即使有數據挖掘的使用也僅僅停留在簡單的分類統計和簡單預測等階段,當應用到一些大型多區域的復雜領域時,很少考慮數據的真實完整與數據預處理對挖掘帶來的影響.這些研究方法還沒有將數據挖掘的研究結果整合到一個完整的分析體系中,這些方法的適用范圍與準確程度就出現了很大的局限性.一些方法僅僅是將客戶的數據在沒有進行合適的預處理的情況下就進行簡單的聚類,完成聚類以后進行簡單的分析,沒有發揮數據挖掘強大的預測能力,使這些預測的數據丟失了繼續使用的價值[7].
為了解決這一問題,采用真實的多區域藥品數據進行實驗對象.使用合適的數據預處理的方法來降低噪音和孤立點等數據對原始數據的分析影響.結合經典的k-medoids與c5.0數據挖掘的方法,將聚類分析中的得到的結果作為決策樹的測試集來進行分析,這樣就能保證決策樹中的屬性數據真實可靠[8,9].實驗證明上述的方法可以提高藥品數據分析的準確率.
在數據挖掘的聚類分析中最常用的是k-medoids算法,k-medoids算法是基于質心的算法.以k為參數,把n個對象分為k個簇,以使簇內具有較高的相似度,而簇間的相似度較低,相似度的計算根據簇間的一個平均值(被看作簇的重心)來進行.通常采用準則函數是平方誤差的準則函數來進行,其定義如下:

上式中e是數據庫中所有對象平方誤差的總和;p是空間中的點,它表示給定的數據對象mi是簇ci的平均值,也就是說每個簇中的每個對象,求對象到其簇中心距離的平方然后求和,這個準則試圖使生成的結果簇盡可能的緊湊和獨立.因為一個極大值的對象可能相當程度上扭曲數據的分布,所以上述方法對于孤立點與噪聲具有極強的敏感性.kmedoids算法使用最靠近中心的一個對象來代表該聚類.定義如下:

上式中e是數據庫中所有對象平方誤差的總和;p是空間中的點,它表示給定的數據對象oi是簇中的代表對象.在經典的ID系列的算法中存在著一定的歸納偏置,較短的樹比較長的樹優先產生,也就是那些信息增益高的屬性更靠近節點會產生優先生成樹的特權.為了避免偏置研究者們引入了增益比率來進行決策,增益比率通過一個分裂信息來分析分裂屬性,由如下公式進行定義

在上述方法中選擇具有最大增益率的屬性作為分裂屬性進行決策分析.在數據分析中由于不同數據的屬性具有極強的非線性,即使進行了強大的數據預處理,由于它要求在聚類分析中輸入數字K確定結果的個數,并且不適合發現非凸面形狀的簇,或者大小差別很大的簇.所以這些啟發是聚類針對中小規模的數據可以使用,但是對于大規模的非結構化的數據就需要進行更進一步的處理;另外聚類后的屬性性質其實是做為一種描述的現象來進行數據分析,忽略了這些原始數據聚類后得出的結果可以作為最真實的樣本來進行數據進一步的決策.為了避免這種情況,先在數據的時間屬性上減少噪聲與孤立點的數據影響.進行聚類后建立決策數據模型,能取得好的效果.
在大量的待挖掘的藥品數據中,出現了大量的冗余數據.一些具有關鍵意義的藥品數據在實際的整體數據中所占比例很小.為了解決冗余問題,在屬性約簡的過程中使用組距眾數的方法消去.

上述兩式中f-1表示藥品數據眾數所在組前一組的次數f+1表示藥品數據眾數所在組后一組的次數;L表示藥品數據眾數所在組組距的下限;U表示藥品數據眾數所在組組距的上限;i表示組距,將一些差異藥品數據的屬性分別進行上述的組距眾數的計算將會消去一部分冗余屬性.在藥品數據挖掘算法中有些屬性可以進行階段性的匯總,這部分屬性的時間趨勢不是很強烈,可以用總的匯總表來代替這部分數據的使用.使用一些藥品數據屬性表來進行數據的分析、數據的匯總處理,包括以下幾個步驟:
(1)用藥品數據表生成更多數據的匯總表,只保留藥品數據的一部分信息.
(2)把一些相互有關聯的藥品數據進行合并,只保留一些藥品數據的起始日期、終止日期與數據統計表.
(3)將上述的步驟應用于每一個月生成的藥品數據進行對比統計.
進行藥品數據預處理的方法如圖1所示:

圖1 藥品數據預處理部分
面對大量的相關藥品數據或者藥品日志文件,對其進行篩選,完成藥品數據初始化的操作是十分必要的,去除不相關的冗余數據才能更有效地對核心藥品數據進行挖掘,一旦存在大量的冗余數據,對挖掘算法的影響是十分巨大的.大規模的存在冗余的海量藥品數據通常是以文本的形式存儲的,如一些文本文件,記錄了藥品相關數據的詳細信息,其中包含了一些不全的、重復的甚至錯誤的藥品冗余數據,所以需要進行處理,否則就會影響挖掘的結果.
用戶在訪問藥品數據庫時,有一些藥品數據信息是自動加載的,如:圖片、網站的頁眉頁腳的固定頁面、JS腳本等,而這些加載的行為也會作為動作記錄到一些相關的文本文件中,顯然這些信息對后期的數據挖掘是無用的,所以必須通過一些方法來對相關的數據進行篩選.對于這些自動加載的圖片等對挖掘無用的數據,應當通過相應的技術去刪除它們,如結尾為.JPEG、.GIF、.PNG 和.js等.
定義Ld為此次過程中藥品數據在種群中的密度,則Ld,n表示該個體在種群中出現的次數,M表示當前種群的大小.

選擇概率為P= ?Pf+(1- ?)Pd,其中?∈(0,1)為調控參數.
通過以上的數據預處理將生成描述數據價值的情況表.
將藥品數據進行預處理以后得到的數據匯總表,在聚類分析中將這個表作為挖掘藥品數據的來源,目標輸出數據是聚類數據匯總情況表.實驗中使用了式(2)中介紹的k-medoids的聚類分析方法,采用此方法對藥品數據進行約簡與實際的噪聲處理后,仿真的效果非常明顯.將相關的藥品數據情況用二進制數據來表示:藥品數據一致的用1來表示,不一致的用0來表示.不一致的定義字段為一個波動的范圍以內,需要注意的是在進行藥品數據的分析聚類的時候,表的屬性只能包括一些不能明顯描述藥品數據分類的屬性.經過聚類后的數據字段應該包括如下:平均藥品數據分布、平均藥品數據均值、藥品數據信息、藥品數據分類情況等類別.使用C5.0算法的決策分析中需要一定的測試集來進行決策的劃分,使用上一步藥品聚類的結果來進行測試,這種分析方法的準確性得到大大的提高.
為了驗證本文算法的有效性,運用基于k-medoids與c5.0聯合約束挖掘算法,對藥品數據價值進行分析.首先將藥品數據進行有效的預處理,得到原始的工作表,決策分析時使用聚類后的藥品價值分析數據.通過與傳統方法對比,證明了分析的嚴謹與效果的顯著.效果驗證分析、實驗流程如圖2所示.

圖2 實驗流程圖
實驗環境為Windows XP操作系統,spss Clementine數據挖掘軟件通過節點流構造模型,進行可視化的結果展示.實驗采用某區域藥品公司中7、8、9三個月客戶消費的賬務信息表作為原始的數據,來進行藥品價值的分析.首先進行聚類分析找到消費群體的分布與包含的數量.數據聚類的結果示意圖如圖3所示:

圖3 藥品信息聚類分析后的散點圖
統計各藥品類別包含的用戶群比例,結果如圖4所示:

圖4 藥品類別包含的用戶群比例分析
從上圖可以清晰地發現在每一個藥品用戶群中分散開來,并且沒有出現會聚在一個類別中的現象.將上述的聚類測試集用來抽樣,本文按照測試集與檢驗集7:3的原則,共抽取10000條樣本來進行決策樹的構造.從圖中可見最優價值的藥品在4、5兩個階段的情況,覆蓋了大部分的客戶消費.

圖5 藥品價值分段與藥品銷售情況

圖6 藥品的價值分段與銷售時間的關系圖
上圖可見用戶的藥品價值分段與銷售時間情況符合聚類的屬性劃分,效果顯著.價值分段較低的藥品,銷售的時間也比較短.本文提出的算法在出現跨區域冗余數據屬性干擾的情況下,具有一定的優勢.
提出了一種基于k-medoids與c5.0聯合約束的藥品價值分析與挖掘的方法,通過進行高效的藥品數據預處理,使用更加具有魯棒性的k-medoids與c5.0數據挖掘方法,將聚類的方法使用在決策樹的構造與決策分析中,這樣就避免了因為數據前后處理不一致,而造成的失真與噪聲過大導致挖掘效果不明顯的情況.實驗表明,這種方法能夠有效提取出藥品特征信息并進行準確分類,具有較高的識別準確率,取得了滿意的結果,具有較高的使用價值.
[1]李莉.中藥材質量控制方法發展狀況分析[J].社區醫學雜志,2011,(3):54 -55.
[2]梁志瑞,陳鵬,蘇海鋒.關聯規則挖掘在電廠設備故障監測中應用[J].電力自動化設備,2006,(6):17 -19.
[3]陳果.基于遺傳算法的支持向量機分類器模型參數優化[J].機械科學與技術,2007,(3):347 -350.
[4]陳金波.面向電信CRM的數據挖掘應用研究[D].南京:東南大學博士學位論文,2006.
[5]王曉華,蘇宏業,渠瑜,等.面向電信欠費挖掘的數據質量評估策略研究[J].計算機工程與應用,2011,(12):220 -224.
[6]黃江波,付志紅.基于自適應遺傳算法函數優化與仿真[J].計算機仿真,2011,(5):237 -239.
[7]徐光憲,劉建輝.數據挖掘在電信客戶關系中的應用[J].中國數據通信,2005,(4):44 -47.
[8]唐慧慧,郭希娟.基于最優模板選擇和水平集的圖譜分割算法[J].計算機仿真,2009,(3):213 -216.
[9]何堯,趙躍龍.一種新的Web用戶行為模式挖掘算法的研究[J].計算機測量與控制,2005,(6):600 -602.