《Data Mining》第1章翻譯 緒論

1 緒論

“教育不是學習,信息,數據,事實,技能或能力的堆砌,這是培訓或教學。教育是讓隱藏的種子變得可見。” - Thomas More

1.1 介紹

數據挖掘是收集,清理,處理,分析和從數據中獲得有用見解的研究。 在實際應用中遇到的問題域,應用,公式和數據表示方面存在很大差異。 因此,“數據挖掘”是一個廣泛的術語,用於描述數據處理的這些不同方面。

在現代,幾乎所有的自動化系統都會生成某種形式的數據,用於診斷或分析目的。 這導致了大量的數據,這些數據已達到PB或EB的數量級。 不同類型數據的一些例子如下:

  • 萬維網:編入搜索引擎索引的網站已經超過十億,而不可見的網絡要大得多。 用戶訪問這些文檔可以在服務器上創建Web訪問日誌,並在商業網站上創建客戶行爲文檔。 此外,Web的鏈接結構被稱爲Web圖,它本身就是一種數據。 這些不同類型的數據在各種應用中很有用。 例如,可以挖掘Web文檔和鏈接結構來確定Web上不同話題之間的關聯。 另一方面,可以挖掘用戶訪問日誌以確定頻繁的訪問模式或可能不必要的行爲的不尋常模式。
  • 財務交互:日常生活中最常見的交易,例如使用自動取款機(ATM)卡或信用卡,可以自動創建數據。 這種交易可以挖掘許多有用的見解,例如欺詐或其他不尋常的活動。
  • 傳感器技術和物聯網:最近的趨勢是開發低成本的可穿戴傳感器,智能手機和其他可相互通信的智能設備。 據估計,2008年這類設備的數量超過了這個星球上的人數。這種海量數據收集的影響對於挖掘算法是非常重要的。

數據的泛濫是科技進步和現代生活各個方面電腦化的直接結果。 因此,檢查一個人是否可以從可用數據中爲特定應用目標提取簡明而可行的見解是自然而然的。 這就是數據挖掘任務的來源。原始數據可能是任意的,非結構化的,甚至是不適合自動處理的格式。 例如,手動收集的數據可能來自不同格式的異構數據源,但不知何故需要通過自動化計算機程序進行處理以獲取見解。

爲了解決這個問題,數據挖掘分析人員使用一系列處理流程,將原始數據收集,清理並轉換爲標準格式。 數據可以存儲在商業數據庫系統中,並通過使用分析方法進行最終處理。 實際上,儘管數據挖掘經常讓人聯想到分析算法的概念,但事實是絕大多數工作都與流程的數據準備部分有關。 這種處理流程在概念上類似於從礦石到最終產品的實際採礦過程。 “採礦”一詞源於此類推。

從分析的角度來看,數據挖掘具有挑戰性,因爲遇到的問題和數據類型存在很大差異。例如,即使在輸入數據格式或問題定義層面,商業產品推薦問題與入侵檢測應用程序的差異也很大。即使在相關的問題類別中,這些差異也是非常重要的。例如,由於底層數據類型的差異,多維數據庫中的產品推薦問題與社交推薦問題差異很大。然而,儘管存在這些差異,數據挖掘應用通常與數據挖掘中的四個“超級問題”之一緊密相關:關聯模式挖掘,聚類,分類和異常值檢測。這些問題非常重要,因爲它們在大多數應用程序中以間接形式或其他形式用作構建塊。這是一個有用的抽象概念,因爲它有助於我們更有效地概念化和構建數據挖掘領域。

數據可能有不同的格式或類型。 類型可以是定量的(例如年齡),分類的(例如種族),文本,空間的,時間的或面向圖的。 雖然最常見的數據形式是多維的,但是越來越多的數據屬於更復雜的數據類型。 儘管很多數據類型之間的算法在概念上具有很高的可移植性,但從實際角度來看並非如此。 現實情況是,精確的數據類型可能會顯着影響特定算法的行爲。 因此,可能需要爲多維數據設計基本方法的精確變化,以便它可以有效地用於不同的數據類型。 因此,本書將爲各種數據類型分配不同的章節,以更好地理解處理方法受基礎數據類型影響的方式。

由於數據量的增加,近年來出現了一個重大挑戰。 連續收集的數據流行使人們對數據流領域的興趣日益增加。 例如,互聯網傳輸會產生大量的數據流,除非將大量資源用於存儲,否則無法有效存儲。 從處理和分析的角度來看,這導致了獨特的挑戰。 在無法明確存儲數據的情況下,所有處理都需要實時執行。

本章將對預處理和分析不同類型數據所涉及的不同技術進行全面概述。 目標是從經常遇到的不同問題抽象和數據類型的角度研究數據挖掘。 許多重要的應用程序可以轉換爲這些抽象。

本章安排如下。 第1.2節討論數據挖掘過程,特別關注本節中的數據預處理階段。不同的數據類型及其正式的定義在第1.3節討論。數據挖掘中的主要問題在第1.4節中有深入的討論。 本部分還討論了數據類型對問題定義的影響。 可擴展性問題在第1.5節裏討論。 第1.6節,提供了一些應用程序的例子。第1.7節給出了一個總結。

1.2 數據挖掘過程

如前所述,數據挖掘過程是一個包含許多階段的管道,如數據清理,特徵提取和算法設計。 在本節中,我們將研究這些不同階段。 典型數據挖掘應用程序的工作流程包含以下階段:

  1. 數據收集:數據收集可能需要使用專用硬件,如傳感器網絡,手工勞動(如收集用戶調查)或軟件工具(如Web文檔抓取引擎)來收集文檔。 雖然這個階段的應用程序具有高度特異性,並且常常超出數據挖掘分析師的範疇,但這一點至關重要,因爲在此階段的良好選擇可能會顯着影響數據挖掘過程。 收集階段之後,數據通常存儲在數據庫中,或者更一般地存儲在數據倉庫中進行處理。

  2. 特徵提取和數據清洗:收集數據時,通常不會採用適合處理的形式。例如,數據可能以複雜日誌或自由格式文檔編碼。在許多情況下,不同類型的數據可以任意混合在一起形成自由格式的文件。爲了使數據適合處理,必須將它們轉換爲對數據挖掘算法(如多維,時間序列或半結構化格式)友好的格式。多維格式是最常見的格式,其中數據的不同字段與被稱爲特徵,屬性或維度的不同測量屬性相對應。爲採礦過程提取相關特徵至關重要。特徵提取階段通常與數據清理並行執行,其中估計或校正缺失和錯誤的數據部分。在很多情況下,數據可能從多個來源提取,需要整合到一個統一的格式中進行處理。這個過程的最終結果是一個很好的結構化數據集,它可以被計算機程序有效地使用。在特徵提取階段之後,數據可以再次被存儲在數據庫中以供處理。

  3. 分析過程與算法: 數據挖掘的最後一步是從處理過的數據中設計出有效的分析方法。在很多情況下,可能無法直接使用標準的數據挖掘問題,例如前面討論的四個“超級問題”,以用於手頭的應用程序。 但是,這四個問題的覆蓋範圍很廣,許多應用程序可以分解爲使用這些不同構建模塊的組件。 這本書將提供這個過程的例子。

    圖1.1 數據處理流程

整個數據挖掘過程如圖1.1所示。 請注意,圖1.1中的分析塊顯示了代表特定應用解決方案設計的多個構建塊。 算法設計的這一部分取決於分析師的技能,並經常將四個主要問題中的一個或多個作爲構建塊。 當然,情況並非總是如此,但在本書中,對這四個問題進行特殊處理已經足夠頻繁了。 爲了解釋數據挖掘過程,我們將使用推薦場景中的一個示例。

例1.2.1 考慮一個零售商擁有與客戶訪問其網站上的網頁相對應的Web日誌的情景。 這些網頁中的每一個都與產品相對應,因此客戶訪問頁面通常可能表明對該特定產品感興趣。 零售商還爲不同的顧客存儲人口統計資料。 零售商希望使用客戶人口統計和購買行爲向客戶提供有針對性的產品推薦。

解決方案 在這種情況下,分析師的第一步是收集來自兩個不同來源的相關數據。 第一個來源是該網站上的一組Web日誌。 第二個是零售商數據庫中的人口統計信息,這些信息是在客戶的Web註冊期間收集的。 不幸的是,這些數據集的格式非常不同,不能一起用於處理。 例如,請考慮以下表單的示例日誌條目:

98.206.207.157 - - [31/Jul/2013:18:09:38 -0700] "GET /productA.htm HTTP/1.1" 200 328177 "-" "Mozilla/5.0 (Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B329 Safari/8536.25" "retailer.net"

日誌可能包含數十萬個這樣的條目。 在此,IP地址爲98.206.207.157的客戶已訪問productA.htm。 IP地址的客戶可以使用以前的登錄信息,Cookie或IP地址本身進行識別,但這可能是一個嘈雜的過程,並不一定會產生準確的結果。 分析師需要設計算法來決定如何過濾不同的日誌條目,並只使用那些提供準確結果的算法作爲清理和提取過程的一部分。此外,原始的日誌中包含很多附加信息,這些信息對零售商不一定有用。在特徵提取過程中,零售商決定爲每個客戶創建一條記錄,並從網頁訪問中提取特徵的特定選擇。 對於每個記錄,屬性對應於每個產品說明的訪問次數。 因此,需要處理原始日誌,並且在此特徵提取階段需要對訪問進行彙總。 在數據集成階段,零售商的數據庫中的屬性被添加到這些包含人口統計信息的記錄中。 需要估計人口統計記錄中缺少的條目以進一步清理數據。 這導致包含客戶人口統計和客戶訪問屬性的單個數據集。

在這一點上,分析師必須決定如何使用這個清理過的數據集來提出建議。 他或她決定確定類似的顧客羣,並根據這些類似羣體的購買行爲提出建議。 特別是,聚類的構建塊用於確定類似的組。 對於給定的客戶,推薦該組中的客戶訪問的頻率最高的項目。 這提供了整個數據挖掘管道的一個例子。 我們將在第18章討論,有很多優雅的方法來執行這些建議,其中一些比其他方法更有效,具體取決於問題的具體定義。 因此,整個數據挖掘過程是一種藝術形式,它基於分析師的技能,無法通過單一技術或構建塊完全捕獲。 在實踐中,只有通過針對不同場景和數據類型的各種應用程序才能學習此技能。

1.2.1 數據預處理階段

數據預處理階段可能是數據挖掘過程中最關鍵的階段。 然而,由於大部分重點都放在數據挖掘的分析方面,所以很少進行探討。 這個階段在收集數據之後開始,它由以下步驟組成:

  1. 特徵提取:分析人員可能面臨大量的原始文檔,系統日誌或商業事務,而很少有關於如何將這些原始數據轉換爲有意義的數據庫特徵進行處理的指導。 此階段高度依賴於分析師能夠抽象出與特定應用程序最相關的功能。 例如,在信用卡欺詐檢測應用程序中,收費金額,重複頻率和地點往往是欺詐的良好指標。 但是,許多其他功能可能是較差的欺詐指標。 因此,提取正確的特徵通常是需要了解特定應用領域的技巧。

  2. 數據清理:提取的數據可能有錯誤或缺失的條目。 因此,可能需要刪除一些記錄,或者可能需要估計缺失的條目。 不一致可能需要刪除。

  3. 特徵選擇和轉換:當數據維度非常高時,許多數據挖掘算法無法有效地發揮作用。 此外,許多高維特徵都很嘈雜,可能會給數據挖掘過程增加錯誤。 因此,使用各種方法來刪除不相關的功能或將當前功能集轉換爲更適合分析的新數據空間。 另一個相關的方面是數據轉換,其中具有一組特定屬性的數據集可以被轉換爲具有相同或不同類型的另一組屬性的數據集。 例如,可以將諸如年齡之類的屬性劃分爲範圍以創建離散值以用於分析便利。

數據清理過程需要通常用於缺失數據估計的統計方法。 另外,通常會刪除錯誤的數據條目以確保更準確的挖掘結果。關於數據清洗的部分在第2章數據預處理部分會再涉及。

特徵選擇和轉換不應被視爲數據預處理的一部分,因爲特徵選擇階段往往高度依賴於正在解決的特定分析問題。 在某些情況下,特徵選擇過程甚至可以以包裝模型或嵌入模型的形式與所使用的特定算法或方法緊密集成。 儘管如此,特徵選擇階段通常在應用特定算法之前執行。

1.2.2 分析階段

本書的絕大多數內容將專注於挖掘過程的分析階段。 一個主要的挑戰是每個數據挖掘應用程序都是獨一無二的,因此很難在不同的應用程序中創建通用和可重用的技術。 儘管如此,許多數據挖掘配方在不同的應用環境中被重複使用。 這些對應於數據挖掘過程的主要“超級問題”或構件。 這取決於分析人員的技能和經驗,以確定如何在特定的數據挖掘應用環境中使用這些不同的公式。 儘管本書可以對基礎數據挖掘模型提供一個很好的概述,但是將它們應用於實際應用程序的能力只能通過實踐經驗來學習。

1.3 基本數據類型

數據挖掘過程的一個有趣的方面是可用於分析的各種數據類型。 對於數據挖掘過程,有兩種廣泛類型的數據,具有不同的複雜性:

  1. 無依賴性的數據:這通常指的是簡單的數據類型,如多維數據或文本數據。 這些數據類型是最簡單和最常遇到的。 在這些情況下,數據記錄在數據項或屬性之間沒有任何特定的依賴關係。 一個例子是關於包含年齡,性別和郵政編碼的個人的一組人口統計記錄。

  2. 依賴於數據的數據:在這些情況下,數據項之間可能存在隱式或顯式關係。 例如,社交網絡數據集包含通過一組邊(關係)連接在一起的一組頂點(數據項)。 另一方面,時間序列包含隱式依賴關係。 例如,從傳感器採集的兩個連續值可能彼此相關。 因此,時間屬性隱含指定了連續讀數之間的依賴關係。

一般而言,由於數據項之間已有的關係所產生的複雜性,依賴性數據更具挑戰性。 數據項之間的這種依賴關係需要直接納入分析過程,以獲得具有上下文意義的結果。

表1.1 多維數據集的一個例子

1.3.1 無依賴性的數據

這是最簡單的數據形式,通常指的是多維數據。 這些數據通常包含一組記錄。 根據手頭的應用程序,記錄也被稱爲數據點,實例,示例,事務,實體,元組,對象或特徵向量。 每條記錄都包含一組字段,這些字段也稱爲屬性,維度和功能。 這些術語在本書中將互換使用。 這些字段描述了該記錄的不同屬性。 關係數據庫系統傳統上被設計爲處理這種數據,即使是最早的形式。 例如,考慮表1.1中所示的人口統計數據集。 在此,說明了個人的人口統計特徵,例如年齡,性別和郵政編碼。 多維數據集定義如下:

定義 1.3.1(多維數據) 一個多維數據集D ,包含n 個記錄,X1¯...Xn¯ ,其中每個記錄Xi¯ 包含一系列特徵記作(xi1...xid)

在本書的前幾章中,我們將使用多維數據,因爲它是最簡單的數據形式,並建立了可以處理更復雜的數據類型的更廣泛的原則。 本書後面的章節將討論更復雜的數據類型,並明確討論依賴關係對挖掘過程的影響。

1.3.1.1 定量多維數據

表1.1中的屬性有兩個不同的類型。年齡字段具有數值,因爲它們具有自然順序。這些屬性被稱爲連續的,數字的或定量的。所有字段都是定量的數據也稱爲定量數據或數字數據。因此,當定義1.3.1中的xij 的每一個值都是定量的時候,相應的數據集被稱爲定量多維數據集。在數據挖掘文獻中,這種特定的數據子類型被認爲是最常見的,本書討論的許多算法都適用於這種數據子類型。這個子類型對於分析處理特別方便,因爲從統計的角度來看,處理定量數據要容易得多。 例如,一組定量記錄的平均值可以表示爲這些值的簡單平均值,而此類計算在其他數據類型中變得更加複雜。 在可能和有效的情況下,許多數據挖掘算法因此試圖在處理之前將不同類型的數據轉換爲定量值。 這也是這個(或者幾乎任何其他)數據挖掘教科書中討論的許多算法假設定量多維表示的原因。 儘管如此,在實際應用中,數據可能更加複雜,可能包含不同數據類型的混合。

1.3.1.2 分類和混合屬性數據

實際應用中的許多數據集可能包含採用離散無序值的分類屬性。例如,在表1.1中,諸如性別,種族和郵政編碼等屬性具有離散值,其中沒有自然順序。如果定義1.3.1中xij 的每個值都是分類的,那麼這些數據被稱爲無序離散值或分類。在混合屬性數據的情況下,存在分類屬性和數字屬性的組合。表1.1中的完整數據被視爲混合屬性數據,因爲它們包含數字屬性和分類屬性。

與性別相對應的屬性是特殊的,因爲它是分類的,但只有兩個可能的值。在這種情況下,可以在這些值之間施加人工排序,並使用針對此類數字數據設計的算法。這被稱爲二進制數據,它可以被認爲是數字或分類數據的特例。第一章。 2將解釋二進制數據如何形成“橋樑”以將數字或分類屬性轉換爲適合在許多情況下處理的通用格式

1.3.1.3 二進制和設置數據

二元數據可以被認爲是多維分類數據或多維定量數據的特例。 它是多維分類數據的一個特例,其中每個分類屬性可以採用最多兩個離散值中的一個。 這也是多維定量數據的特例,因爲兩個值之間存在排序。 此外,二進制數據也是setwise數據的表示形式,其中每個屬性都被視爲集合元素指示符。 值爲1表示該元素應該包含在集合中。 這些數據在市場購物籃應用中很常見。在第4章和第5章,將詳細討論這個話題。

1.3.1.4 文本數據

文本數據可以視爲字符串,也可以視爲多維數據,具體取決於它們的表示方式。 在其原始形式中,文本文檔對應於一個字符串。 這是一個面向依賴性的數據類型,將在本章後面介紹。 每個字符串都是與文檔對應的一系列字符(或字)。 但是,文本文檔很少以字符串表示。 這是因爲直接使用大規模應用程序中有效方式的單詞之間的排序是很困難的,並且利用排序的其他優勢在文本域中經常受到限制。

實際上,使用矢量空間表示法,文檔中單詞的頻率用於分析。 單詞有時也被稱爲術語。 因此,在這種表示中,單詞的精確排序是丟失的。 這些頻率通常用諸如文檔長度或集合中單個單詞的頻率之類的統計數據標準化。這些關於文本數據的事件將在第13中有較詳細的討論。具有n 個文檔和d 項的文本集合對應的n×d 數據矩陣被稱爲文檔項矩陣。

當以向量空間形式表示時,文本數據可以被認爲是多維定量數據,其中屬性對應於這些詞,並且這些值對應於這些屬性的頻率。 然而,這種量化數據是特殊的,因爲大多數屬性都取零值,只有少數屬性具有非零值。 這是因爲單個文檔可能只包含大小爲105 的字典中的相對少量的單詞。 這種現象被稱爲數據稀疏性,它顯着影響數據挖掘過程。如果沒有采取合適的適配措施,直接採用定量數據的挖掘算法在稀疏數據上可能達不到想要的效果。同時,稀疏性還影響着數據的表現方式。比如,例如,雖然可以使用定義1.3.1中提出的表示法,但這不是一種實際的方法。對於文本數據,定義1.3.1中的大多數xji 值都是0。對於文本數據,定義1.3.1中的大多數xji 值都是0。使用包含詞語的表示僅包含文檔中的詞語。 另外,這些詞的頻率被明確地保持。 這種方法通常更有效。 由於數據稀疏性問題,文本數據通常使用專門的方法進行處理。因此,文本挖掘通常作爲數據挖掘中的一個單獨的子主題進行研究。 文本挖掘方法在第13章討論。

1.3.2 有依賴性的數據

本章中大多數前面討論的內容都是關於多維場景,其中假定可以獨立處理數據記錄。 實際上,不同的數據值可能(隱含地)在時間上,空間上或者通過數據項之間的顯式網絡關係鏈接彼此相關。 關於先前存在的依賴關係的知識大大改變了數據挖掘過程,因爲數據挖掘都是關於發現數據項之間的關係。 因此,先前存在的依賴關係會改變數據中的預期關係,並從這些預期關係的角度來看可能會引起人們的興趣。 可能存在幾種可能是隱式或顯式的依賴關係:

  1. 隱式依賴關係:在這種情況下,數據項之間的依賴關係沒有明確指定,但已知“典型”存在於該域中。 例如,由傳感器收集的連續溫度值可能彼此非常相似。 因此,如果傳感器在特定時間記錄的溫度值與下一時刻記錄的溫度值顯着不同,那麼這非常不尋常,可能對數據挖掘過程有意義。 這與多維數據集不同,其中每個數據記錄都被視爲一個獨立的實體。

  2. 顯式依賴關係:這通常指的是使用邊來指定顯式關係的圖或網絡數據。 圖是非常強大的抽象,通常用作中間表示來解決其他數據類型環境中的數據挖掘問題。

在本節中,將詳細討論不同的依賴性數據類型。

1.3.2.1 時間序列數據

時間序列數據包含通常通過連續測量隨時間推移而生成的值。 例如,環境傳感器將連續測量溫度,而心電圖(ECG)將測量受試者心律的參數。 這樣的數據通常具有隱含的依賴性,這些隱含的依賴性隨着時間的推移被接收到。 例如,溫度傳感器記錄的相鄰值通常會隨着時間的推移而平穩變化,這個因素需要在數據挖掘過程中明確使用。

時間依賴性的性質可能與應用程序顯着不同。 例如,某些形式的傳感器讀數可能會隨時間顯示測量屬性的週期性模式。時間序列挖掘的一個重要方面是提取數據中的這種依賴關係。 爲了形式化由時間相關引起的依賴問題,屬性被分爲兩類:

  1. 上下文屬性:這些屬性用於定義隱式依賴關係發生在數據上的上下文。 例如,在傳感器數據的情況下,測量讀數的時間戳可以被認爲是上下文屬性。 有時,時間戳未被明確使用,但是使用位置索引。 雖然時間序列數據類型只包含一個上下文屬性,但其他數據類型可能具有多個上下文屬性。 一個具體的例子是空間數據,這將在本章後面討論。

  2. 行爲屬性:它們表示在特定上下文中衡量的值。 在傳感器示例中,溫度是行爲屬性值。 可能有多個行爲屬性。 例如,如果多個傳感器在同步時間戳上記錄讀數,則它會產生多維時間序列數據集。

上下文屬性通常會對數據中行爲屬性值之間的依賴關係產生強烈影響。 形式上,時間序列數據定義如下:

定義 1.3.2(多元時間序列數據) 一個長度爲n ,維度爲d 的時間長度序列包含d 個數字特徵,每個數字特徵中包含n 個時間戳t1..tn 。每個時間戳包含每個d 系列的組件。因此,t1 時刻對應的數據集是Yi¯=(yi1...yid) 。在ti 時刻的第j 個序列是yij

例如,考慮一個特定位置的兩個傳感器每分鐘監測一次溫度和壓力的情況。這對應於一個d=2n=60 的一個多維序列。在一些情況下,時間戳t1...tn 可能會被序列值1到n 代替,特別是當時間戳的值等距離間隔時(比如本例子中每秒取一個)。

時間序列數據在許多傳感器應用,預測和金融市場分析中都比較常見。 分析時間序列的方法在第14章中討論。

1.3.2.2 離散序列和字符串

離散序列可以被認爲是時間序列數據的分類模擬。 就時間序列數據而言,上下文屬性是排序中的時間戳或位置索引。 行爲屬性是一個分類值。 因此,離散序列數據的定義與時間序列數據類似。

定義 1.3.3(多元離散序列數據) 一個長度爲n ,維度爲d 的離散序列包含d 個離散特徵,每個離散特徵中包含n 個時間戳t1..tnn 個部分中的每個Yi¯ 包含d 個離散行爲屬性,在第i個時間戳時,這d個行爲屬性表示爲Yi¯=(yi1...yid)

例如,考慮一系列Web訪問,其中收集100個不同訪問的Web頁面地址和請求的源IP地址。 這表示長度n = 100和維度d = 2的離散序列。序列數據中特別常見的情況是單變量方案,其中d的值是1.這樣的序列數據也稱爲字符串。

應該指出的是,上述定義與時間序列情況幾乎相同,主要差異在於離散序列包含分類屬性。 從理論上講,有可能在分類和數字數據之間混合使用一系列數據。 另一個重要的變體是一個序列不包含分類屬性的情況,而是一組任意數量的無序分類值。 例如,超市交易可能包含一系列項目。 每套可能包含任何數量的項目。 這種序列序列並不是真正的多變量序列,而是單變量序列,其中序列的每個元素都是一個集合,而不是單位元素。 因此,與時間序列數據相比,離散序列可以以更多種方式定義,因爲能夠定義離散元素上的集合。

在某些情況下,上下文屬性可能不會明確地指明時間,但它可能是基於物理位置的位置。 生物序列數據就是這種情況。 在這種情況下,時間戳可以用表示字符串中值的位置的索引代替,將最左邊的位置計爲1.可能出現序列數據的常見情景的一些示例如下:

  • 事件日誌:各種計算機系統,Web服務器和Web應用程序根據用戶活動創建事件日誌。 事件日誌的一個例子是金融網站上的一系列用戶操作:

    Login Password Login Password Login Password ....

    這個特定的序列可能代表用戶試圖進入密碼保護系統的場景,從異常檢測的角度來看,這可能很有趣。

  • 生物學數據:在這種情況下,序列可對應於核苷酸或氨基酸的串。 這些單位的排序提供了有關蛋白質功能特徵的信息。 因此,數據挖掘過程可以用來確定有趣的模式,反映不同的生物特性。

離散序列對於挖掘算法通常更具挑戰性,因爲它們沒有時間序列數據的平滑值連續性。關於序列挖掘的方法,將在第15章有更詳細的討論。

1.3.2.3 空間數據
在空間數據中,在空間位置處測量許多非空間屬性(例如,溫度,壓力,圖像像素顏色強度)。 例如,氣象學家經常收集海面溫度來預測颶風的發生。 在這種情況下,空間座標對應於上下文屬性,而諸如溫度的屬性對應於行爲屬性。 通常,有兩個空間屬性。 就時間序列數據而言,也可以具有多個行爲屬性。 例如,在海面溫度應用中,人們也可以測量其他行爲屬性,如壓力。

定義 1.3.4(空間數據) d 維空間數據記錄包含d個行爲屬性和一個或多個包含空間位置的上下文屬性。因此,一個d 維空間數據集應該包含一個d 維記錄集X1¯...Xn¯ ,同時還包含一個位置的集合L1...Ln ,並且記錄Xi¯ 和位置Li 是關聯在一起的。

上述定義在如何定義記錄Xi¯ 和位置Li 方面提供了廣泛的靈活性。 例如,記錄Xi¯ 中的行爲屬性可能是數字或分類的,或者是兩者的混合。在氣象應用中,Xi 可能包含位置Li 處的溫度和壓力屬性。此外,可以根據精確的空間座標(如緯度和經度)或邏輯位置(如城市或州)來指定Li

空間數據挖掘與時間序列數據挖掘密切相關,因爲大多數研究空間應用程序中的行爲屬性是連續的,儘管一些應用程序也可能使用分類屬性。 因此,在連續的空間位置觀察到價值連續性,就像在時間序列數據中連續的時間戳中觀察到的價值連續性一樣。

時空數據
空間數據的一種特殊形式是空間時間數據,其包含空間和時間屬性。 數據的確切性質還取決於哪些屬性是上下文的,哪些屬性是行爲的。 兩種時空數據是最常見的:

  1. 空間屬性和時間屬性都是上下文的:這種數據可以被看作是空間數據和時間數據的直接推廣。 當同時測量特定行爲屬性的空間和時間動態時,這種數據特別有用。 例如,考慮需要隨時間測量海面溫度變化的情況。 在這種情況下,溫度是行爲屬性,而空間和時間屬性是上下文相關的。

  2. 時間屬性是上下文的,而空間屬性是行爲的:嚴格地說,這種數據也可以被認爲是時間序列數據。 然而,行爲屬性的空間性質在許多情況下也提供了更好的解釋性和更集中的分析。 這些數據的最常見形式來自軌跡分析。

應該指出的是,任何2維或3維時間序列數據都可以映射到軌跡上。 這是一個有用的轉換,因爲它意味着軌跡挖掘算法也可以用於2維或3維時間序列數據。 例如,英特爾研究伯克利數據集[556]包含來自各種傳感器的讀數。 圖1和圖2中示出了來自溫度和電壓傳感器的一對讀數的示例。 1.2a和b,分別。 相應的溫度 - 電壓軌跡如圖1.2c所示。 有關空間和時空數據挖掘的方法將在第7章討論。16。

1.3.2.4 網絡和圖數據

在網絡和圖形數據中,數據值可以對應於網絡中的節點,而數據值之間的關係可以對應於網絡中的邊緣。 在某些情況下,屬性可能與網絡中的節點相關聯。 雖然也可以將屬性與網絡中的邊相關聯,但這樣做通常要少得多。

定義 1.3.5(網路數據) 一個網絡G=(N,A) 包含一系列節點N 和一系列邊AA 中的邊代表了節點之間的關係。在某些情況下,一個屬性集Xi¯ 可能和節點i 聯繫在一起,同理一個屬性集Yij¯ 可能和邊(i,j) 聯繫在一起。

ij 可以是有向或無向的,這取決於當前的應用。 例如,Web圖可能包含與頁面之間的超鏈接方向相對應的有向邊,而Facebook社交網絡中的好友關係不受引導。

第二類圖挖掘問題是包含許多小圖的數據庫,例如化合物。 這兩類問題的挑戰是非常不同的。 以圖形表示的數據的一些示例如下所示:

  • 網絡圖:節點對應於網頁,邊對應於超鏈接。 節點具有與頁面中的內容相對應的文本屬性。

  • 社交網絡:在這種情況下,節點對應於社交網絡參與者,而邊緣對應於友誼鏈接。 節點可以具有對應於社交頁面內容的屬性。在一些特殊形式的社交網絡中,例如電子郵件或聊天信使網絡,邊緣可能有與其相關的內容。 該內容對應於不同節點之間的通信。

  • 化合物數據庫:在這種情況下,節點對應於元素,邊對應於元素之間的化學鍵。 這些化合物中的結構對於鑑定這些化合物的重要反應性和藥理學性質非常有用。

網絡數據是一種非常普遍的表示形式,可用於解決其他數據類型上的許多基於相似性的應用程序。 例如,可以通過爲數據庫中的每個記錄創建一個節點並通過邊表示節點之間的相似性,將多維數據轉換爲網絡數據。 這種表示經常用於許多基於相似性的數據挖掘應用程序,例如聚類。可以使用社區檢測算法來確定網絡數據中的羣集,然後將其映射回多維數據。 第19章討論的一些譜聚類方法基於這個原理。 網絡數據的這種普遍性是有代價的。 網絡數據挖掘算法的開發通常比較困難。 第17章,第18章和第19章討論了挖掘網絡數據的方法。

1.4 主要構件:鳥瞰圖

正如引言第1.1節所述,數據挖掘中的四個問題被認爲是挖掘過程的基礎。 這些問題對應於聚類,分類,關聯模式挖掘和異常值檢測,並且它們在許多數據挖掘應用程序的環境中反覆遇到。 是什麼讓這些問題如此特別? 他們爲什麼重複遭遇? 要回答這些問題,必須瞭解數據科學家經常試圖從數據中提取的典型關係的性質。

考慮具有n 個記錄和d 個屬性的多維數據庫D . 這樣的數據庫D 可以被表示爲n×d 矩陣D ,其中每行對應於一條記錄,並且每列對應於一個維度。 我們通常將這個矩陣稱爲數據矩陣。 本書將交替使用數據矩陣D 和數據庫D 的符號。 一般來說,數據挖掘都是關於發現數據矩陣中條目之間的總結關係,這些關係要麼非常頻繁,要麼非常罕見。 數據項之間的關係是兩種類型之一:

  • 列之間的關係:在這種情況下,確定特定行中值之間的頻繁關係或不頻繁關係。 這映射到正面或負面的關聯模式挖掘問題,儘管前者更常被研究。 在某些情況下,矩陣的一個特定列被認爲比其他列更重要,因爲它表示數據挖掘分析師的目標屬性。 在這種情況下,我們試圖確定其他列中的關係如何與此特殊列關聯。 當特殊列的值未知時,可以使用這種關係來預測此特殊列的值。 這個問題被稱爲數據分類。 當挖掘過程基於將特定屬性視爲特殊屬性並對其進行預測時,它被稱爲受監督的。

  • 行之間的關係:在這些情況下,目標是確定行的子集,其中相應列中的值是相關的。 在這些子集相似的情況下,相應的問題被稱爲聚類。另一方面,當一行中的條目與其他行中的相應條目非常不同時,那麼相應的行就會變成有趣的異常數據點或異常。這個問題被稱爲異常值分析。有趣的是,聚類問題與分類密切相關,因爲後者可以被認爲是前者的監督版本。數據中特殊列的離散值對應於數據中不同期望或監督的應用程序特定相似記錄組的組標識符。例如,當專欄對應於客戶是否對某一特定產品感興趣時,這代表了在有興趣學習的數據中使用監督的兩個小組。術語“監督”指的是這樣一個事實,即專門專欄用於以特定應用程序的方式指導數據挖掘過程,就像教師可以監督他或她的學生實現特定目標一樣。

因此,這四個問題很重要,因爲它們似乎涵蓋了表示數據矩陣條目之間不同種類的正面,負面,監督或無監督關係的詳盡情景。 這些問題也以各種方式相互關聯。 例如,關聯模式可以被認爲是(重疊的)簇的間接表示,其中每個模式對應於它是其子集的數據點的簇。

應該指出,上述討論假定(最常遇到的)多維數據類型,儘管這些問題繼續保留它們對於更復雜數據類型的相對重要性。 但是,更復雜的數據類型由於其更復雜而具有更多種與其相關的問題表達式。 這個問題將在本節後面詳細討論。

一直觀察到,許多應用場景確定數據矩陣的行和列之間的這種關係作爲中間步驟。 這就是理解這些構件塊問題對數據挖掘過程如此重要的原因。 因此,本書的第一部分將在將其推廣到複雜場景之前將重點詳細討論這些問題。

1.4.1 關聯模式挖掘

在其最原始的形式中,關聯模式挖掘問題被定義在稀疏二進制數據庫的上下文中,其中數據矩陣僅包含0/1 條目,並且大多數條目的值爲0。大多數客戶事務數據庫是這種類型的。 例如,如果數據矩陣中的每列對應一個項目,並且客戶交易表示一行,則第ij 項爲1,如果客戶交易i包含項目j作爲購買的項目之一。 這個問題特別常見的研究版本是頻繁模式挖掘問題,或者更一般地說,關聯模式挖掘問題。 就二進制數據矩陣而言,頻繁模式挖掘問題可以正式定義如下:

定義 1.4.1(頻率模式挖掘) 給定一個二元n×d 數據矩陣D ,確定列的所有子集,使得這些列中的所有值對於矩陣中的至少一小部分行取值1。 模式的相對頻率被稱爲它的支持。分數s 被稱爲最小支持。

滿足最低支持要求的模式通常被稱爲頻繁模式或頻繁項目集。 頻繁模式代表了一類重要的關聯模式。許多其他相關關聯模式的定義可能不使用絕對頻率,但使用其他統計量化,如X2 度量。這些措施往往導致從統計角度產生更有趣的規則。 儘管如此,關聯模式挖掘的這種特殊定義已經成爲文獻中最流行的定義,因爲它易於開發算法。 因此,本書將此問題稱爲關聯模式挖掘,而不是頻繁模式挖掘。

例如,如果對應於麪包,黃油和牛奶的數據矩陣D 的列在客戶交易數據庫中經常一起取值1,則這意味着這些項目經常被一起購買。 從商店內商品的實物放置角度或從產品促銷的角度來看,這對商家來說非常有用。 關聯模式挖掘不限於二進制數據的情況,並且可以通過使用適當的數據轉換容易地推廣到定量和數字屬性,這將在第4章中討論。

關聯模式挖掘最初是在關聯規則挖掘的背景下提出的,其中包含一個額外的步驟,基於一種被稱爲規則置信度的措施。 例如,考慮兩組項目A和B.規則A⇒B的置信度被定義爲包含A的事務比例,其中也包含B.換言之,置信度是通過將支持的模式 AB 支持模式A.支持和置信的組合用於定義關聯規則。

定義 1.4.2(關聯規則) *設AB 分別爲兩個元素集。如果滿足下面兩個條件,則規則AB 被認爲在支持度s 和置信度c 上是有效的:
1. 項目集A 的支持至少爲s
2. 規則AB 的置信度至少爲c 。*

通過在關聯規則挖掘算法中引入監督,可以爲分類問題提供解決方案。 關聯模式挖掘的許多變體也與聚類和異常值分析有關。 這是數據矩陣的水平和垂直分析經常彼此相關的事實的自然結果。 事實上,關聯模式挖掘問題的許多變體被用作解決聚類,離羣分析和分類問題的子程序。 這些問題將在第4章和第5章討論。

1.4.2 數據聚類

聚類問題的一個相當廣泛和非正式的定義如下:

定義 1.4.3(數據聚類) 給定數據矩陣D (數據庫D ),將其行(記錄)劃分爲集合C1Ck ,使得每個羣集中的行(記錄)彼此“相似”。

我們故意在這裏提供了一個非正式的定義,因爲聚類允許有各種各樣的相似性定義,其中有些不是通過相似函數以封閉形式完全定義的。 聚類問題通常可以定義爲一個優化問題,其中優化問題的變量代表數據點的集羣成員,而目標函數最大化這些變量的組內相似性的具體數學量化。

聚類過程的一個重要部分是爲計算過程設計適當的相似度函數。 顯然,相似度的計算在很大程度上取決於底層數據類型。 相似性計算的問題將在第3章中詳細討論。相關應用的一些例子如下:

  • 客戶細分:在許多應用程序中,需要在各種產品促銷任務的背景下確定彼此類似的客戶。 分割階段在這個過程中起着重要的作用。

  • 數據彙總:由於可以將羣集視爲相似的記錄組,因此可以使用這些相似的羣組創建數據摘要。

  • 應用於其他數據挖掘問題:因爲聚類被認爲是無監督的分類版本,所以它通常被用作解決後者的構建塊。 此外,這個問題也用於異常值分析問題的背景下,如下所述。

數據聚類問題將在第6章和第7章中詳細討論。

1.4.3 離羣值檢測

異常值是一個與其餘數據顯着不同的數據點。 霍金斯正式定義了異常值的概念如下:

“異常值是一種觀察結果,與其他觀察結果有很大差異,引起人們懷疑它是由不同機制產生的。”

數據挖掘和統計學文獻中異常值也被稱爲異常,不一致,異常或異常。 在大多數應用中,數據由一個或多個生成過程創建,這些生成過程既可以反映系統中的活動,也可以收集有關實體的觀察結果。 當生成過程以不尋常的方式運行時,會導致創建異常值。 因此,異常常常包含有關影響數據生成過程的系統和實體的異常特徵的有用信息。 對這種不尋常特性的認識提供了有用的應用特定見解。 異常值檢測問題根據數據矩陣非正式地定義如下:

定義1.4.4(離羣值檢測) 給定一個數據矩陣D ,確定與矩陣中其餘行非常不同的數據矩陣的行。

異常值檢測問題與互補性的聚類問題有關。 這是因爲異常值對應於數據中主要組的不同數據點。 另一方面,數據中的主要羣體是羣集。 實際上,確定異常值的簡單方法使用羣集作爲中間步驟。 相關應用的一些例子如下:

  • 入侵檢測系統:在很多聯網的計算機系統中,收集關於操作系統調用,網絡流量或系統中其他活動的不同類型的數據。 由於惡意行爲,這些數據可能會顯示異常行爲。 這種活動的檢測被稱爲入侵檢測。

  • 信用卡欺詐:未經授權使用信用卡可能會顯示不同的模式,例如來自地理位置不明的地點的搶購。 這種模式可能會在信用卡交易數據中顯示爲異常值。

  • 有趣的傳感器事件:傳感器通常用於追蹤許多實際應用中的各種環境和位置參數。 潛在模式的突然變化可能代表感興趣的事件。 事件檢測是傳感器網絡領域的主要激勵應用之一。

  • 醫學診斷:在許多醫學應用中,數據來自各種設備,如磁共振成像(MRI),正電子發射斷層掃描(PET)掃描或心電圖(ECG)時間序列。 這些數據中的不尋常模式通常會反映疾病狀況。

  • 執法:異常值檢測可以在執法中找到許多應用,尤其是在通過實體的多種行爲才能發現異常模式的情況下。 在金融交易,交易活動或保險索賠中識別欺詐行爲通常需要確定由犯罪實體的行爲產生的數據中的不尋常模式。

  • 地球科學:通過衛星或遙感等多種機制收集大量有關天氣模式,氣候變化或土地覆蓋格局的時空數據。 這些數據的異常提供了關於可能導致這種異常的隱藏的人類或環境趨勢的重要見解。

第8章和第9章詳細研究了異常值檢測問題。

1.4.4 數據分類

許多數據挖掘問題都是針對一個專門的目標,有時由數據中特定功能的價值來表示。 這個特殊的功能被稱爲類標籤。 因此,監督這些問題,其中關於該特殊特徵的數據中的其餘特徵的關係被學習。 用來學習這些關係的數據被稱爲訓練數據。 然後可以使用所學習的模型來確定缺少標籤的記錄的估計分類標籤。

例如,在目標市場營銷應用中,每個記錄可以由表示客戶對特定產品的興趣(或缺乏)的特定標籤標記。 與客戶相關的標籤可能源自客戶以前的購買行爲。 另外,也可以提供對應於客戶人口統計的一組特徵。 目標是通過將人口特徵與類別標籤相關聯來預測其購買行爲未知的客戶是否對特定產品感興趣。 因此,建立了一個訓練模型,然後用它來預測班級標籤。 分類問題非正式地定義如下:

定義 1.4.5(數據分類) 給定一個n×d 訓練數據矩陣D (數據庫D )和一個類標籤值{1...k} 與D中的n行(D中的記錄)中的每一行相關聯,創建訓練模型M ,其可用於預測d 維記錄Y¯D

類別標籤未知的記錄被稱爲測試記錄。 研究聚類和分類問題之間的關係是很有趣的。 在聚類問題的情況下,根據相似性將數據分成k個組。 在分類問題的情況下,(測試)記錄也被分爲k組中的一組,除了這是通過從訓練數據庫D中學習模型而不是基於相似性來實現的。 換句話說,訓練數據的監督重新定義了一組“相似”記錄的概念。因此,從學習的角度來看,聚類通常被稱爲無監督學習(因爲缺乏一個專門的訓練數據庫來“教”關於合適分組概念的模型),而分類問題被稱爲監督學習。

分類問題與關聯模式挖掘有關,後者常常用於解決前者。 這是因爲如果整個訓練數據庫(包括類標籤)被視爲一個n×(d+1) 矩陣,則包含該矩陣中的類標籤的頻繁模式提供了有關其他特徵與類標籤相關性的有用提示。 事實上,許多形式的分類器(稱爲基於規則的分類器)都基於這個更廣泛的原則。

分類問題可以通過在後者中引入監督來映射到異常值檢測問題的特定版本。 儘管假設缺失檢測問題在默認情況下是無人監督的,但是可以部分或完全監督該問題的多種變化。 在受監督的異常值檢測中,可以使用一些異常值的例子。 因此,這些數據記錄被標記爲屬於一個罕見的類別,而其餘的數據記錄屬於正常的類別。 因此,監督異常值檢測問題映射到二元分類問題,同時警告類別標籤高度不平衡。

由於使用了特定於應用程序的類別標籤,監督的結合使得分類問題在其直接應用程序特定方面是獨一無二的。 與其他主要數據挖掘問題相比,分類問題相對獨立。 例如,聚類和頻繁模式挖掘問題更常用作大型應用程序框架的中間步驟。 即使是異常值分析問題有時也是以探索的方式使用。 另一方面,分類問題通常直接作爲許多應用中的獨立工具使用。 使用分類問題的應用示例如下:

  • 目標營銷:通過使用培訓模式,關於顧客的特徵與他們的購買行爲有關。
  • 入侵檢測:計算機系統中的客戶活動序列可用於預測入侵的可能性。
  • 監督異常檢測:當以前的異常值的例子可用時,罕見的類可能會從正常類中區分開來。

數據分類問題將在第10和11章進行詳細討論。

1.4.5 複雜數據類型對問題定義的影響

特定的數據類型對可能定義的問題類型有着深遠的影響。 特別是在依賴於數據類型的數據類型中,依賴關係通常在問題定義,解決方案或兩者中起着關鍵作用。 這是因爲上下文屬性和依賴關係對於如何評估數據通常很重要。 此外,由於複雜的數據類型更豐富,它們允許制定新的問題定義,甚至可能不存在於多維數據的背景下。 表1.2提供了面向依賴數據類型的數據挖掘問題的不同變化的表格摘要。 下面將簡要回顧一下數據類型如何影響不同的問題定義。

表1.2 用數據類型定義問題變化的一些例子

1.4.5.1 複雜數據類型的模式挖掘

關聯模式挖掘問題通常以集合的形式從基礎數據中確定模式; 但是,當數據中存在依賴關係時情況並非如此。 這是因爲依賴關係和關係經常會在數據項之間進行排序,直接使用頻繁模式挖掘方法無法識別不同數據值之間的關係。 例如,當大量的時間序列可用時,它們可以用來確定不同種類的時間頻繁模式,其中時間順序被強加在模式中的項目上。 此外,由於存在表示時間的附加上下文屬性,所以時間模式可以以與基於集合的模式相比更加豐富的方式定義,如在關聯模式挖掘中那樣。 這些模式可能在時間上是連續的,如在時間序列圖案中,或者它們可能是週期性的,如在週期性模式中。這些時間模式挖掘方法中的一些將在第14章中討論。對於離散序列挖掘的情況存在類似的類比,除了個別模式成分是分類的,而不是連續的。 也可以爲空間場景定義二維圖案,這種公式對圖像處理很有用。 最後,結構模式通常在與數據中頻繁子圖相對應的網絡中定義。 因此,節點之間的依賴包含在模式的定義中。

1.4.5.2 複雜數據類型的聚類

用於聚類的技術也受到基礎數據類型的顯着影響。 最重要的是,相似性函數顯着受數據類型影響。 例如,在時間序列,順序或圖形數據的情況下,一對時間序列之間的相似性不能通過使用直接的度量(如歐幾里德度量)來輕鬆定義。 相反,有必要使用其他種類的指標,例如編輯距離或結構相似性。 在空間數據的背景下,軌跡聚類對於發現移動數據或多變量時間序列的相關模式特別有用。 對於網絡數據,聚類問題發現密集連接的節點組,也稱爲社區檢測。

1.4.5.3 複雜數據類型的異常值檢測

依賴關係可以用來定義數據項的期望值。 這些預期值的偏差是異常值。 例如,時間序列值的突然跳躍會導致跳躍發生的特定點的位置異常。 這些方法的想法是使用基於預測的技術來預測該位置的價值。 據報道,與預測有顯着差異的位置異常。 這種異常值可以在時間序列,空間和時序數據的背景下定義,其中可以使用自迴歸,馬爾可夫或其他模型檢測與相應鄰域的顯着偏差。 在圖數據的上下文中,異常值可能對應於節點,邊或整個子圖的不尋常特性。 因此,複雜的數據類型在可以定義異常值的方面表現出顯着的豐富性。

1.4.5.4 複雜詩句類型的分類

分類問題還顯示了不同複雜數據類型的顯着變化量。例如,班級標籤可以附加到一系列的特定位置,也可以附加到整個系列。當類別標籤附加到系列中的特定位置時,可用於執行監督式事件檢測,其中第一次出現特定事件標籤(例如,由基礎溫度和壓力提示的機器故障傳感器)表示事件的發生。對於網絡數據的情況,標籤可以連接到非常大的網絡中的單個節點,或者連接到多個圖形集合中的整個圖形。前一種情況對應於社會網絡中節點的分類,也被稱爲集體分類。後一種情況對應於化合物分類問題,其中標籤基於其化學性質附着於化合物。

1.5 可伸縮性問題和流式場景

可擴展性是許多數據挖掘應用中的一個重要問題,因爲現代應用中數據的規模越來越大。 廣義而言,可擴展性有兩個重要場景:

  1. 數據存儲在一臺或多臺機器上,但數量太大,無法高效處理。 例如,在整個數據可以保存在主內存中的情況下,設計高效的算法很容易。 當數據存儲在磁盤上時,設計算法以使對磁盤的隨機訪問最小化非常重要。 對於非常大的數據集,可能需要使用大數據框架,例如MapReduce。 本書將在需要的地方介紹磁盤駐留處理級別的這種可擴展性。

  2. 這些數據會隨着時間的推移而連續生成,並且完全無法存儲。 這種情況是數據流的情況,數據需要使用在線方式進行處理。

後一種情況需要進一步闡述。 由於數據收集技術的進步,隨着時間的推移可以收集大量數據,流式場景變得越來越流行。 例如,日常生活中的簡單交易(例如使用信用卡或電話)可能會導致自動收集數據。 在這種情況下,數據量太大,直接存儲可能不切實際。 相反,所有算法必須在數據上一次執行。 在數據流處理方面出現的主要挑戰如下:

  1. 單通約束:算法需要一次處理整個數據集。 換句話說,在處理完數據項目並收集了相關的總結見解後,原始項目將被丟棄並且不再可用於處理。 在給定時間可以處理的數據量取決於可用於保留數據段的存儲空間。

  2. 概念漂移:在大多數應用中,數據分佈隨時間而變化。 例如,一天中某一小時的銷售模式可能與一天中另一小時的銷售模式不同。 這也導致了挖掘算法的輸出變化。

由於數據模式隨時間而變化的速率以及基礎數據中不斷演變的模式,因此設計這些場景的算法通常很具挑戰性。 對於流挖掘方法在第12章中得到解決。

1.6 典型應用場景介紹

在本節中,將討論一些常見的應用場景。 目標是說明問題和應用的廣泛多樣性,以及它們如何映射到本章討論的某些構件塊。

1.6.1 產品放置位置

應用場景可以表述如下:
應用 1.6.1(產品放置位置) 商家擁有一套d 產品,以及來自顧客的以前交易,其中包含一起購買的物品籃。 商家希望知道如何將產品放置在貨架上,以增加經常一起購買的商品被放置在相鄰貨架上的可能性。

此問題與頻繁模式挖掘密切相關,因爲分析師可以使用頻繁模式挖掘問題來確定在特定支持級別經常一起購買的項目組。這裏需要注意的一點是,在提供有用見解的同時,確定頻繁模式並不能爲商家提供關於如何將產品放置在不同貨架上的準確指導。這種情況在數據挖掘中很常見。積木問題往往不能直接解決手頭的問題。在這種特殊情況下,商家可以從各種啓發式的想法中選擇產品如何儲存在不同的貨架上。例如,商家可能已經擁有現有的展示位置,並且可能會使用頻繁模式爲展示位置的質量創建一個數字分數。通過對當前展示位置進行增量更改,可以連續優化此展示位置。使用適當的初始化方法,頻繁模式挖掘方法可以作爲該問題非常有用的子程序。數據挖掘的這些部分通常是特定於應用程序的,並且在不同領域顯示出如此大的差異,因此只能通過實踐經驗來學習。

1.6.2 用戶推薦

這是數據挖掘文獻中經常遇到的問題。 這個問題存在許多變化,取決於該應用程序可用的輸入數據的類型。 在下文中,我們將研究推薦問題的具體實例並提供一個解決方案。

應用 1.6.2(用戶推薦) 商家有一個n×d 的二元矩陣D ,表示n 個客戶在d 個項目上的購買行爲。 假定矩陣是稀疏的,因此每個客戶可能只購買了幾件商品。 最好使用產品關聯向顧客提供建議。

這個問題是在數據挖掘和推薦文獻中廣泛研究的協作過濾問題的簡單版本。 實際上,這個問題的數以千計的解決方案都是針對這個問題的,我們提供了三個不同的複雜度示例:

  1. 這個問題是在數據挖掘和推薦文獻中廣泛研究的協作過濾問題的簡單版本。 實際上,這個問題的數以千計的解決方案都是針對這個問題的,我們提供了三個不同的複雜度示例:

  2. 以前的解決方案不使用不同客戶之間的相似性來提出建議。 第二種解決方案是確定與目標客戶最相似的行,然後推薦發生在這些相似行中的最常見的項目。

  3. 最終的解決方案是使用羣集來創建類似客戶的細分。 在每個類似的部分中,關聯模式挖掘可用於提出建議。

因此,可以有多種方法來解決與不同分析路徑相對應的特定問題。 這些不同的路徑可能使用不同的構建塊,這些構建塊在數據挖掘過程的不同部分都是有用的。

1.6.3 醫療診斷

醫療診斷已成爲數據挖掘背景下的常見應用。 醫療診斷中的數據類型往往比較複雜,可能與圖像,時間序列或離散序列數據相對應。 因此,依賴性導向的數據類型在醫療診斷應用中往往是相當普遍的。 一個特殊情況是來自心臟病人的心電圖讀數。

應用 1.6.3(醫用心電圖診斷) 考慮從不同患者收集的一組ECG時間序列。 從該組中確定異常系列是可取的。

這個應用程序可以映射到不同的問題,這取決於可用輸入數據的性質。 例如,考慮以前沒有可用的異常ECG系列的例子。 在這種情況下,問題可以映射到異常值檢測問題。 時間序列與數據中剩餘序列的差異可能被認爲是異常值。 但是,如果以前的正常和異常系列的例子可用,解決方法的方法會發生顯着變化。 在這種情況下,問題會映射到時間序列數據的分類問題。 此外,由於異常系列的數量通常遠少於正常系列的數量,因此類別標籤可能會失衡。

1.6.4 Web日誌異常

網絡日誌通常收集在不同網站的主機上。 這些日誌可用於檢測該網站的異常,可疑或惡意活動。 金融機構定期分析其現場的日誌以檢測入侵企圖。

應用 1.6.4(Web日誌異常) 一組Web日誌可用。 希望從Web日誌中確定異常序列。

由於數據通常以原始日誌的形式提供,因此需要大量的數據清理。 首先,原始日誌需要轉換爲符號序列。 然後可能需要將這些序列分解成更小的窗口以分析特定粒度水平的序列。 可以通過使用序列聚類算法來確定異常序列,然後確定不在這些聚類中的序列。 如果希望發現與異常相對應的特定位置,則可以使用更復雜的方法(如馬爾可夫模型)來確定異常。

和前面的情況一樣,這個問題的分析階段可以建模得很不同,這取決於Web日誌異常的例子是否可用。 如果以前沒有Web日誌異常的例子可用,那麼這個問題映射到無監督的時間異常值檢測問題。 參考文獻[5]中介紹了很多用於解決時間異常值檢測問題的無監督情況的方法。 本書第14章和第15章也簡要討論了這個話題。 另一方面,當以前的異常情況可用時,則問題映射到罕見的類別檢測問題。 這個問題也在參考文獻[5]以及本書的第11章中討論。

1.7 總結

數據挖掘是一個複雜的多階段過程。 這些不同的階段是數據收集,預處理和分析。 數據預處理階段具有很高的應用特定性,因爲數據的不同格式需要應用不同的算法。 處理階段可能包括數據集成,清理和特徵提取。 在某些情況下,特徵選擇也可能用於銳化數據表示。 數據轉換成方便的格式後,可以使用各種分析算法。

許多數據挖掘構建塊經常在各種應用場景中重複使用。 這些分別對應於頻繁模式挖掘,聚類,異常值分析和分類問題。 針對特定數據挖掘問題的解決方案的最終設計取決於分析師將應用程序映射到不同構建塊的技能,或者針對特定應用程序使用新算法。 本書將介紹獲得這些分析技能所需的基礎知識。

1.8 書目註釋

數據挖掘問題通常由與統計,數據挖掘和機器學習相對應的多個研究團體進行研究。 這些社區高度重疊,並且經常與許多共同的研究人員共享。 機器學習和統計社區通常從理論和統計的角度來看待數據挖掘。 在這方面寫的一些好書可以在[95,256,389]中找到。 但是,由於機器學習社區通常側重於監督學習方法,因此這些書大多集中在分類場景。 [250,485,536]中可以找到更廣泛的數據挖掘書籍,這些書籍是從更廣泛的角度編寫的。 由於數據挖掘過程通常需要與數據庫進行交互,許多相關的數據庫教科書[434,194]提供了有關數據表示和集成問題的知識。

在數據挖掘的各個主要領域也編寫了許多書籍。 [34]中詳細介紹了頻繁模式挖掘問題及其變化。關於數據聚類的主題已經寫了很多書。衆所周知的數據聚類書[284]討論了來自文獻的經典技術。另一本書[219]討論了最近的數據聚類方法,雖然材料有點基礎。文獻中最近的一本書[32]提供了對不同數據聚類算法的全面概述。數據分類問題已經在標準的機器學習書中得到了解決[95,256,389]。分類問題也被模式識別團體廣泛研究[189]。關於這個話題的最近的調查可以在[33]中找到。 [89,259]詳細研究了異常值檢測問題。然而,這些書是從統計的角度出發的,並沒有從計算機科學界的角度來解決這個問題。從[5]中的計算機科學界的角度來解決這個問題。

1.9 習題

  1. 一位分析師從不同的參與者那裏收集關於他們喜歡和不喜歡的調查。 隨後,分析師將數據上傳到數據庫,糾正錯誤或缺失的條目,並在此基礎上設計推薦算法。 以下哪項行爲代表數據收集,數據預處理和數據分析? (a)進行調查並上傳到數據庫,(b)糾正缺失的條目,(c)設計推薦算法。

  2. 一下每種數據的數據類型是什麼?(a)年齡,(b)工資,(c)郵政編碼,(d)居住國,(e)身高,(f)體重

  3. 一位分析師從醫生那裏獲取用於數據挖掘目的的醫療筆記,然後將其轉換成包含針對每位患者處方的藥物的表格。 (a)原始數據和(b)轉換數據的數據類型是什麼? (c)將數據轉換爲稱爲新格式的過程是什麼?

  4. 分析人員建立了一個傳感器網絡,以便在一段時間內測量不同位置的溫度。 收集的數據的數據類型是什麼?

  5. 上面練習4中討論過的同一個分析師從另一個包含壓力讀數的數據源中找到另一個數據庫。 她決定創建一個包含自己的讀數和壓力讀數的單一數據庫。 創建這樣一個單一的數據庫的過程是什麼?

  6. 分析人員處理Web日誌,以便爲來自不同用戶的Web頁面訪問的訂購信息創建記錄。 這些數據的類型是什麼?

  7. 考慮一個數據對象,它對應於按一定順序排列的一組核苷酸。 這類數據是什麼?

  8. 希望根據他們的人口統計資料將客戶劃分爲相似的羣體。 哪個數據挖掘問題最適合這項任務?

  9. 假設在練習8中,商人已經知道一些客戶是否已經購買了小部件。 哪個數據挖掘問題適合於識別剩餘客戶羣體的任務,誰可能會在未來購買小部件?

  10. 假設在練習9中,商家還可以獲得顧客購買的其他商品(超出小工具)的信息。 哪個數據挖掘問題最適合查找通常與小部件一起購買的項目集?

  11. 假設少數客戶對他們的人口統計資料有不同的看法,這會導致購買行爲和人口統計資料之間的不匹配,正如與其餘數據相比所暗示的那樣。 哪個數據挖掘問題最適合尋找這些客戶?

發佈了102 篇原創文章 · 獲贊 38 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章