從0到1詳解數據挖掘過程

導讀:數據挖掘過程包含數據清洗、特徵提取、算法設計等多個階段,本文將討論這些階段。

作者:查魯·C.阿加沃爾(Charu C. Aggarwal)

來源:華章科技

從0到1詳解數據挖掘過程

01 數據挖掘過程

典型數據挖掘應用的過程包含以下幾個階段。

1. 數據採集

數據採集工作可能是使用像傳感器網絡這樣的專門硬件、手工錄入的用戶調查,或者如Web爬蟲那樣的軟件工具來收集文檔。雖然這個階段與具體應用息息相關,但常常落在數據挖掘分析師們所考慮的範圍之外,而這個階段對數據挖掘過程也是至關重要的,因為這一階段所做的選擇會明顯地影響整個數據挖掘過程。

採集階段產生的數據通常會先存入數據庫,廣義上稱為數據倉庫,然後進行處理。

2. 特徵提取和數據清洗

上述採集階段得到的數據,其格式往往不適合直接進行處理。例如,採集來的數據可能是使用複雜編碼的日誌或自由格式的文檔,並在許多情況下,各種類型的數據又任意地混合在一起,形成自由格式的文檔。

要使這樣的數據適合進一步加工,有必要把它們轉化為對數據挖掘算法較為合適的格式,比如多維數據時序數據或者半結構化數據等。

多維數據是最常見的格式,其不同的字段對應於可以稱為特徵、屬性或維度的各種測量屬性。抽取這些特徵是數據挖掘的一個至關重要的階段,而特徵提取階段通常與數據清洗階段並行進行,以便估計或校正丟失的數據以及錯誤的數據。

另外,在許多情況下,數據可能從多個來源聚集而成,進行處理時需要把它們轉換為統一的格式。上述過程的最終結果是一個有較好結構的數據集,可以由計算機程序有效地使用。在特徵提取階段之後,數據可以存回到數據庫中用於進一步的處理。

3. 分析處理和算法

數據挖掘過程的最後一步是為處理過的數據設計有效的分析方法。在許多情況下,不太可能將手頭的應用直接轉化成一個標準的數據挖掘問題,比如轉化成

關聯模式挖掘聚類分類以及異常檢測這四個“超級問題”中的某一個。

但這四個超級問題具有很廣泛的覆蓋性,可以構成數據挖掘任務的基本模塊,而大多數應用都能由這些作為基本模塊的組件拼搭起來實現。

整個數據挖掘過程可由圖1-1表示。請注意,圖中的分析處理模塊顯示了對特定應用設計的、由多個基本模塊組合而成的解決方案,這一部分依賴於分析師的技能。通常的做法是使用四個主要問題中的一個或多個作為基本模塊來搭建。

從0到1詳解數據挖掘過程

▲圖1-1 數據處理流水線

需要承認的是,並非所有的數據挖掘應用都能用這四個主要問題來搭建解決方案,但許多應用可以這樣解決,因此有必要給予這四個主要問題一個特殊的地位。下面我們使用一個有關推薦的應用實例來解釋數據挖掘的整個過程。

  • 示例1.2.1 考慮這樣一個網上零售商的場景,此零售商保存了客戶訪問其網站的訪問日誌,還收集了客戶的基本情況信息。假設網站的每個網頁對應一個商品,客戶訪問一個網頁可能表明對相應的商品感興趣。零售商希望通過對客戶的個人資料及其購買行為的分析,有針對性地給客戶推薦商品。

解決問題的流程示例:分析師的第一步工作是收集兩種不同來源的數據,其一是從該網站的日誌系統中抽取的日誌,其二是從零售商的數據庫中抽取的客戶個人資料。這裡的一個難題就是這兩種數據使用了非常不同的數據格式,放到一起處理很不容易。例如,一條日誌可以以下面這種形式出現。

從0到1詳解數據挖掘過程

日誌中可能包含成千上萬個這種條目,上面這一條目顯示IP地址為98.206.207.157的客戶訪問了productA.htm這一網頁。要確認使用一個IP地址的客戶是誰,可以通過之前的登錄信息,或者通過網頁的cookie記錄,甚至直接通過IP地址本身,但這個確認過程可能充滿噪聲,不可能總是產生準確的結果。

作為數據清洗和提取過程的一部分,分析師還需要設計算法對不同的日誌條目進行有效的過濾,以便只使用那些提供準確結果的數據段,因為原始日誌中包含很多對零售商可能沒有任何用處的額外信息。

在特徵提取階段,零售商決定從網頁訪問日誌中提取特徵,為每個客戶創建一條記錄,其中將每個商品設置為一個屬性,記錄此客戶對相應商品網頁的訪問次數。

因此,這個特徵抽取需要對每條原始日誌進行處理,並將多條日誌中抽取的特徵進行聚合。之後在數據集成時,再將這些屬性數據添加到零售商的客戶數據庫中去。這個客戶數據庫包含客戶個人資料,倘若個人資料記錄中缺少某些條目,則需要為其進行進一步的數據清洗。

最終,我們得到一個數據集,將客戶個人資料的屬性及客戶對商品訪問次數的屬性整合在一起。

此時,分析師需要決定如何使用此清洗過的數據集,為客戶提供推薦。分析師可以將類似的客戶分成幾類群體,並根據每類群體的購買行為提出推薦意見。

聚類分析在這裡可以作為一個基本模塊,用於確定類似客戶的群體。對每一個客戶,可以為其推薦該客戶所在群體作為一個整體訪問最多次的商品(這裡指的是商品網頁)。這個案例包含了一個完整的數據挖掘流程。

有許多優美的提供推薦的方法,它們在不同的情況下各有優劣,因此,整個數據挖掘過程是一門藝術,很大程度由分析師的技能所決定,而不完全由特定的技術或基本模塊所左右,這種技能只能通過在不同應用需求下處理各類不同數據的實踐中獲得。

從0到1詳解數據挖掘過程

02 數據預處理階段

數據預處理階段也許是數據挖掘過程中最關鍵的一個階段

,然而,這個階段很少得到應有的探討,因為大部分數據挖掘討論的重點放在了數據分析方面。這一階段在數據採集後就開始,包括以下步驟。

1. 特徵提取

分析師可能面臨大量的原始文件、系統日誌、商業交易,但幾乎沒有任何指導性的快速入門方法將這些原始數據轉化為有意義的數據。這一步驟高度依賴於分析師的抽象能力,以找出與手頭應用最相關的特徵。

例如,在信用卡欺詐檢測應用中,收費金額、重複頻率以及位置信息往往是找出欺詐的有效指標,而許多其他特徵信息也許就用處不大。因此,提取正確的特徵往往是個技術活,需要對手頭應用相關的領域有充分的瞭解。

2. 數據清洗

上述特徵提取得到的數據中可能含有錯誤,也有些條目可能在採集及提取時丟失。因此,我們可能要丟棄一些含有錯誤的數據記錄,或者對缺失的條目進行估計填充,並剔除數據中的不一致性。

3. 特徵選擇與轉換

當數據維度很高時,很多數據挖掘算法就會失效。而且當數據維度很高時,數據噪聲會增加,可能帶來數據挖掘的錯誤。因此,需要使用一些方法,移除與應用無關的特徵,或者將數據變換到一個新的維度空間中,使數據分析更容易進行。

另一個相關的問題是數據轉換,將一些屬性轉換為另一種相同或類似數據類型的屬性。比如將年齡數值轉化成年齡段,可能對分析更有效也更便利。

數據清洗過程中通常需要使用對缺失數據進行估計的統計方法,此外,為確保挖掘結果的準確性,通常需要剔除錯誤的數據條目。

由於特徵選擇和數據轉換高度依賴於具體的分析問題,不應視為數據預處理的一部分,甚至在某些情況下,特徵選擇可能與具體算法或方法緊密結合,以一種包裝模型或嵌入模型的形式出現。但在一般情況下,會在應用具體挖掘算法之前執行特徵選擇階段。

03 分析階段

一個主要的挑戰是每個數據挖掘應用都是獨特的,很難為很多類應用打造出一個靈活的、可複用的挖掘技術。然而,我們發現有些數據挖掘方法在各類應用中反覆出現,即所謂的“超級問題”或數據挖掘的基本模塊。

怎樣在特定的數據挖掘應用中使用這些基本方法很大程度上取決於分析師的技能和經驗,所以雖然可以對這些基本模塊進行很好的描述,但怎樣在實際應用中使用它們,只能通過實踐來學習。

關於作者:查魯C. 阿加沃爾(Charu C. Aggarwal),IBM T. J. Watson研究中心的傑出研究人員,於1996年獲麻省理工學院博士學位。他對數據挖掘領域有著廣泛的研究,在國際會議和期刊上發表了250多篇論文,擁有80多項專利。他曾三次被評為IBM的“傑出發明人”,並曾獲得IBM公司獎、IBM傑出創新獎和兩項IBM傑出技術成就獎。

本文摘編自《數據挖掘:原理與實踐(基礎篇)》,經出版方授權發佈。

從0到1詳解數據挖掘過程

延伸閱讀《數據挖掘:原理與實踐(基礎篇)》

推薦語:大數據和人工智能時代數據挖掘教材,從四個“超級問題”出發,詳解數據挖掘的基礎知識,介紹高級數據類型,結合複雜多樣的實際數據環境,探討數據挖掘的應用場景和使用方法。


分享到:


相關文章: