資料挖掘導論(原書第2版)
Introduction to Data Mining,Second Edition

[美] 陳封能(Pang-Ning Tan)
邁克爾·斯坦巴赫(Michael Steinbach)
阿努吉·長帕坦(Anuj Karpatne)
維平·庫瑪爾(Vipin Kumar) 著
段 磊 張天慶 等譯
第1章 緒 論
資料采集和存儲技術的迅速發展,加之資料生成與傳播的便捷性,緻使資料爆炸性增長,最終形成了目前的大資料時代。圍繞這些資料集進行可行的深入分析,對幾乎所有社會領域的決策都變得越來越重要:商業和工業、科學和工程、醫藥和生物技術以及政府和個人。然而,資料的數量(體積)、複雜性(多樣性)以及收集和處理的速率(速度)對于人類來說都太大了,無法進行獨立分析。是以,盡管大資料的規模性和多樣性給資料分析帶來了挑戰,但仍然需要自動化工具從大資料中提取有用的資訊。
資料挖掘将傳統的資料分析方法與用于處理大量資料的複雜算法相結合。在本章中,我們将介紹資料挖掘的概況,并概述本書所涵蓋的關鍵主題。首先介紹一些需要進階資料分析技術的應用。
商業和工業 借助POS(銷售點)資料收集技術(條碼掃描器、射頻識别(RFID)和智能卡技術),零售商可以在商店的收銀台收集顧客購物的最新資料。零售商可以利用這些資訊,加上電子商務網站的日志、客服中心的顧客服務記錄等其他的重要商務資料,能夠更好地了解顧客的需求,做出更明智的商業決策。
資料挖掘技術可以用來支援廣泛的商務智能應用,如顧客分析、1定向營銷、工作流管理、商店分布、欺詐檢測以及自動化購買和銷售。最近一個應用是快速股票交易,在這個交易中,需要使用相關的金融交易資料在不到一秒的時間内做出買賣決定。資料挖掘還能幫助零售商回答一些重要的商業問題,如:“誰是最有價值的顧客?”“什麼産品可以交叉銷售或提升銷售?”“公司明年的營收前景如何?”這些問題促使着資料挖掘技術的發展,比如關聯分析(見第5章和第6章)。
随着網際網路不斷改變我們日常生活中互動和做決定的方式,能夠生成大量的線上體驗資料,例如網頁浏覽、資訊傳遞,以及在社交網站上釋出資訊,這為使用Web資料的商務應用提供了機會。例如,在電子商務領域,使用者的線上浏覽或購物偏好資料可以用來推薦個性化的産品。資料挖掘技術也在支援其他基于網際網路的服務方面扮演着重要的角色,如過濾垃圾資訊、回答搜尋查詢,以及建議社交圈的更新和聯系。網際網路上大量的文本、圖像和視訊使得資料挖掘方法有了許多進展,如深度學習(這将在第4章進行讨論)。這些進展推動了諸多應用領域的進步,如目辨別别、自然語言翻譯與自動駕駛。
另一個經曆大資料快速轉型的應用領域是移動傳感器和移動裝置的使用,如智能手機和可穿戴計算裝置。借助更好的傳感器技術,可以利用嵌入在互相連接配接的日常裝置上的低成本傳感器(稱為物聯網(IOT))來收集實體世界的各種資訊。在數字系統中,實體傳感器的深度內建正開始産生大量與環境相關的多樣化和分布式的資料,可用于設計友善、安全、節能的家庭系統,以及規劃智能城市。
醫學、科學與工程 醫學、科學與工程界的研究者正在快速收集大量資料,這些資料對獲得有價值的新發現至關重要。例如,為了更深入地了解地球的氣候系統,NASA已經部署了一系列的地球軌道衛星,不停地收集地表、海洋和大氣的全球觀測資料。然而,2由于這些資料的規模和時空特性,傳統的方法常常不适合分析這些資料集。資料挖掘所開發的技術可以幫助地球科學家回答如下問題:“幹旱和飓風等生态系統擾動的頻度和強度與全球變暖之間有何聯系?”“海洋表面溫度對地表降水量和溫度有何影響?”“如何準确地預測一個地區的生長季節的開始和結束?”
再舉一個例子,分子生物學研究者希望利用目前收集的大量基因組資料,更好地了解基因的結構和功能。過去,傳統方法隻允許科學家在一個實驗中每次研究少量基因,微陣列技術的最新突破已經能讓科學家在多種情況下比較數以千計的基因特性。這種比較有助于确定每個基因的作用,或許可以查出導緻特定疾病的基因。然而,由于資料的噪聲和高維性,需要新的資料分析方法。除了分析基因序列資料外,資料挖掘還能用來處理生物學的其他難題,如蛋白質結構預測、多序列校準、生物化學路徑模組化和系統發育學。
另一個例子是利用資料挖掘技術來分析越來越多的電子健康記錄(EHR)資料。不久之前,對患者的研究需要手動檢查每一個患者的身體記錄,并提取與所研究的特定問題相關的、具體的資訊。EHR允許更快和更廣泛地探索這些資料。然而,隻有患者在看醫生或住院期間才能對他們進行觀察,并且在任何特定通路期間隻能測量關于患者健康的少量細節,是以存在重大挑戰。
目前,EHR分析側重于簡單類型的資料,如患者的血壓或某項疾病的診斷代碼。然而,很多類型更複雜的醫學資料也被收集起來,例如心電圖(ECG)和磁共振成像(MRI)或功能性磁共振成像(fMRI)的神經元圖像。盡管分析這些資料十分具有挑戰性,但其中包含了患者的重要資訊。将這些資料與傳統的EHR和基因組資料內建分析是實作精準醫學所需的功能之一,旨在提供更加個性化的患者護理。3
1.1 什麼是資料挖掘
資料挖掘是在大型資料庫中自動地發現有用資訊的過程。資料挖掘技術用來探查大型資料庫,發現先前未知的有用模式。資料挖掘還可以預測未來的觀測結果,比如顧客在網上或實體店的消費金額。
并非所有的資訊發現任務都被視為資料挖掘。例如查詢任務:在資料庫中查找個别記錄,或查找含特定關鍵字的網頁。這是因為這些任務可以通過與資料庫管理系統或資訊檢索系統的簡單互動來完成。而這些系統主要依賴傳統的計算機科學技術,包括先進高效的索引結構和查詢處理算法,有效地組織和檢索大型資料存儲庫的資訊。盡管如此,資料挖掘技術可以基于搜尋結果與輸入查詢的相關性來提高搜尋結果的品質,是以被用于提高這些系統的性能。
資料庫中的資料挖掘與知識發現
資料挖掘是資料庫中知識發現(Knowledge Discovery in Database,KDD)不可缺少的一部分,而KDD是将未加工的資料轉換為有用資訊的整個過程,如圖1.1所示。該過程包括一系列轉換步驟,從資料預處理到資料挖掘結果的後處理。
輸入資料可以以各種形式存儲(平面檔案、電子表格或關系表),并且可以存儲在集中式資料庫中,或分布在多個資料站點上。預處理(preprocessing)的目的是将原始輸入資料轉換為适當的格式,以便進行後續分析。資料預處理涉及的步驟包括融合來自多個資料源的資料,清洗資料以消除噪聲和重複的觀測值,選擇與目前資料挖掘任務相關的記錄和特征。由于收集和存儲資料的方式多種多樣,資料預處理可能是整個知識發現過程中最費力、最耗時的步驟。
“結束循環”(closing the loop)通常指将資料挖掘結果內建到決策支援系統的過程。例如,在商業應用中,資料挖掘的結果所揭示的規律可以與商業活動管理工具結合,進而開展或測試有效的商品促銷活動。這樣的結合需要後處理(postprocessing)步驟,確定隻将那些有效的和有用的結果內建到決策支援系統中。後處理的一個例子是可視化,它使得資料分析者可以從各種不同的視角探査資料和資料挖掘結果。在後處理階段,還能使用統計度量或假設檢驗,删除虛假的資料挖掘結果(見第10章)。
1.2 資料挖掘要解決的問題
前面提到,面臨大資料應用帶來的挑戰時,傳統的資料分析技術經常遇到實際困難。下面是一些具體的問題,它們引發了人們對資料挖掘的研究。
可伸縮 由于資料産生和采集技術的進步,數太位元組(TB)、數拍位元組(PB)甚至數艾位元組(EB)的資料集越來越普遍。如果資料挖掘算法要處理這些海量資料集,則算法必須是可伸縮的。許多資料挖掘算法采用特殊的搜尋政策來處理指數級的搜尋問題。為實作可伸縮可能還需要實作新的資料結構,才能以有效的方式通路每個記錄。例如,當要處理的資料不能放進記憶體時,可能需要核外算法。使用抽樣技術或開發并行和分布式算法也可以提高可伸縮程度。附錄F給出了伸縮資料挖掘算法的技術總體概述。5
高維性 現在,常常會遇到具有成百上千屬性的資料集,而不是幾十年前常見的隻具有少量屬性的資料集。在生物資訊學領域,微陣列技術的進步已經産生了涉及數千特征的基因表達資料。具有時間分量或空間分量的資料集也通常具有很高的次元。例如,考慮包含不同地區的溫度測量結果的資料集,如果在一個相當長的時間周期内反複地測量,則維數(特征數)的增長正比于測量的次數。為低維資料開發的傳統資料分析技術通常不能很好地處理這類高維資料,如維災難問題(見第2章)。此外,對于某些資料分析算法,随着維數(特征數)的增加,計算複雜度會迅速增加。
異構資料和複雜資料 通常,傳統的資料分析方法隻處理包含相同類型屬性的資料集,或者是連續的,或者是分類的。随着資料挖掘在商務、科學、醫學和其他領域的作用越來越大,越來越需要能夠處理異構屬性的技術。近年來,出現了更複雜的資料對象。這種非傳統類型的資料如:含有文本、超連結、圖像、音頻和視訊的Web和社交媒體資料,具有序列和三維結構的DNA資料,由地球表面不同位置、不同時間的測量值(溫度、壓力等)構成的氣候資料。為挖掘這種複雜對象而開發的技術應當考慮資料中的聯系,如時間和空間的自相關性、圖的連通性、半結構化文本和XML文檔中元素之間的父子關系。
資料的所有權與分布 有時,需要分析的資料不會隻存儲在一個站點,或歸屬于一個機構,而是地理上分布在屬于多個機構的資料源中。這就需要開發分布式資料挖掘技術。分布式資料挖掘算法面臨的主要挑戰包括:(1)如何降低執行分布式計算所需的通信量?(2)如何有效地統一從多個資料源獲得的資料挖掘結果?(3)如何解決資料安全和隐私問題?6
非傳統分析 傳統的統計方法基于一種假設檢驗模式,即提出一種假設,設計實驗來收集資料,然後針對假設分析資料。但是,這一過程勞力費神。目前的資料分析任務常常需要産生和評估數千種假設,是以需要自動地産生和評估假設,這促使人們開發了一些資料挖掘技術。此外,資料挖掘所分析的資料集通常不是精心設計的實驗的結果,并且它們通常代表資料的時機性樣本(opportunistic sample),而不是随機樣本(random sample)。
1.3 資料挖掘的起源
如圖1.1所示,雖然資料挖掘最開始被認為是KDD架構中的一個中間過程,但是多年來它作為計算機科學的一個學術領域,關注着KDD的所有方面,包括資料預處理、資料挖掘和後處理。它的起源可以追溯到20世紀80年代末,當時組織了一系列圍繞資料庫中知識發現的主題研讨會,彙集了來自不同學科的研究人員,讨論關于應用計算技術從大型資料庫中提取可利用的知識的挑戰和機遇。這些由來自學術界和工業界的研究人員和實踐者參加的研讨會很快成為非常受歡迎的會議。會議的成功舉辦,以及企業和行業在招聘具有資料挖掘背景的新員工時所表現出的興趣,推動了這一領域的巨大發展。
該領域最初建立在研究人員早先使用的方法和算法之上。特别是,資料挖掘研究人員借鑒了如下領域的思想方法:(1)來自統計學的抽樣、估計和假設檢驗;(2)來自人工智能、模式識别和機器學習的搜尋算法、模組化技術和學習理論。資料挖掘也迅速地采納了來自其他領域的思想,這些領域包括最優化、進化計算、資訊論、信号處理以及可視化和資訊檢索,并将其延伸至解決大資料挖掘的挑戰。 圖1.2 資料挖掘彙集了許多學科的知識
一些其他領域也起到重要的支撐作用。特别是,7需要資料庫系統提供高效的存儲、索引和查詢處理。源于高性能(并行)計算的技術在處理海量資料集方面常常是非常重要的。分布式技術還可以幫助處理海量資料,并且當資料不能集中到一起處理時顯得尤為重要。圖1.2顯示了資料挖掘與其他領域之間的聯系。
資料科學和資料驅動發現
資料科學(data science)是一個研究及應用工具和技術從資料中擷取有用的見解的跨學科領域。雖然它被認為是一個具有獨特身份的新興領域,但其中的工具和技術通常來自資料分析的許多不同領域,如資料挖掘、統計學、人工智能、機器學習、模式識别、資料庫技術以及分布式和并行計算(見圖1.2)。
資料科學作為一個新興領域出現是一種共識。現有的資料分析領域,通常沒有為新興應用中出現的資料分析任務提供一整套分析工具。相反,處理這些任務通常需要廣泛的計算、數學和統計能力。為了說明分析此類資料面臨的挑戰,請設想以下示例。社交媒體和網絡為社會科學家提供了大量觀察和定量測量人類行為的新機會。為了進行這樣的研究,社會科學家會與具備網頁挖掘、自然語言處理(NLP)、網絡分析、資料挖掘和統計等技能的分析師合作。與傳統的基于調查的社會科學研究相比,這種分析需要更為廣泛的技術和工具,并且涉及的資料量更大。8是以,資料科學必然是一個建立在許多領域持續合作基礎上的高度跨學科的領域。
資料科學的資料驅動方法強調從資料中直接發現模式和關系,特别是在大量資料中,通常不需要廣泛的領域知識。這種方法中一個值得注意的成功例子是神經網絡的進步,即深度學習,它在長期以來被認為具有挑戰性的領域特别成功。例如,識别照片或視訊中的對象,或者是識别語音中的文字,以及其他應用領域中也一樣。但是這隻是資料驅動方法成功的一個例子,并且在許多其他資料分析領域也出現了顯著的改進。這些發展中的内容都是本書之後會進行介紹的主題。
文獻注釋中給出了一些關于純資料驅動方法的潛在局限性的注意事項。
1.4 資料挖掘任務
通常,資料挖掘任務分為下面兩大類。
- 預測任務 這些任務的目标是根據其他屬性的值預測特定屬性的值。被預測的屬性一般稱目标變量(target variable)或因變量(dependent variable),而用來做預測的屬性稱為解釋變量(explanatory variable)或自變量(independent variable)。
- 描述任務 其目标是導出概述資料中潛在聯系的模式(相關、趨勢、聚類、軌迹和異常)。本質上,描述性資料挖掘任務通常是探查性的,并且常常需要後處理技術驗證和解釋結果。
圖1.3給出了本書其餘部分講述的4種主要的資料挖掘任務。
預測模組化(predictive modeling)指為目标變量建立模型,并将其作為解釋變量的函數。有兩類預測模組化任務:分類(classification),用于預測離散的目标變量;回歸(regression),用于預測連續的目标變量。例如,預測一個Web使用者是否會在網上書店買書是分類任務,9因為該目标變量是二值變量,而預測某股票的未來價格則是回歸任務,因為價格具有連續值屬性。兩項任務的目标都是訓練一個模型,使目标變量的預測值與實際值之間的誤差達到最小。預測模組化可以用來确定顧客對産品促銷活動的反應,預測地球生态系統的擾動,或根據檢査結果判斷病人是否患有某種疾病。
例1.1 預測花的種類 考慮如下任務:根據花的特征預測花的種類。本例根據鸢尾花是否屬于Setosa、Versicolour或Virginica這三類之一對其進行分類。為執行這一任務,我們需要一個資料集,包含這三類花的特性。一個具有這類資訊的資料集是著名的鸢尾花資料集,可從加州大學歐文分校的機器學習資料庫中得到(
http://www.ics.uci.edu/~mlearn)。除花的種類之外,該資料集還包含萼片寬度、萼片長度、花瓣長度和花瓣寬度四個其他屬性。圖1.4給出鸢尾花資料集中150種花的花瓣寬度與花瓣長度的對比圖。花瓣寬度分成low、medium、high三類,分别對應于區間[0,0.75)、[0.75,1.75)、[1.75,∞)。10花瓣長度也分成low、medium、high三類,分别對應于區間[0,2.5)、[2.5,5)、[5,∞)。根據花瓣寬度和長度的類别,可以推出如下規則:
- 花瓣寬度和花瓣長度為low蘊涵Setosa。
- 花瓣寬度和花瓣長度為medium蘊涵Versicolour。
- 花瓣寬度和花瓣長度為high蘊涵Virginica。
盡管這些規則不能對所有的花進行分類,但是已經可以對大多數花進行很好的分類(盡管不完善)。注意:根據花瓣寬度和花瓣長度,Setosa種類的花完全可以與Versicolour和Virginica種類的花分開,但是後兩類花在這些屬性上有一些重疊。
關聯分析(association analysis)用來發現描述資料中強關聯特征的模式。所發現的模式通常用蘊涵規則或特征子集的形式表示。由于搜尋空間是指數規模的,關聯分析的目标是以有效的11方式提取最有趣的模式。關聯分析的應用包括找出具有相關功能的基因組、識别使用者一起通路的Web頁面、了解地球氣候系統中不同元素之間的聯系等。
例1.2 購物籃分析 表1.1給出的事務是在一家雜貨店收銀台收集的銷售資料。關聯分析可以用來發現顧客經常同時購買的商品。例如,我們可能發現規則{紙尿布}→{牛奶}。該規則暗示購買紙尿布的顧客多半會購買牛奶。這種類型的規則可以用來發現各類商品中可能存在的交叉銷售的商機。
聚類分析(cluster analysis)旨在發現緊密相關的觀測值組群,使得與屬于不同簇的觀測值相比,屬于同一簇的觀測值互相之間盡可能類似。聚類可用來對相關的顧客分組、找出顯著影響地球氣候的海洋區域以及壓縮資料等。
例1.3 文檔聚類 表1.2給出的新聞文章可以根據它們各自的主題分組。每篇文章表示為詞頻率對(w:c)的集合,其中w是詞,而c是該詞在文章中出現的頻率。在該資料集中,有兩個自然簇。第一個簇由前四篇文章組成,對應于經濟新聞;而第二個簇包含後四篇文章,對應于衛生保健新聞。一個好的聚類算法應當能夠根據文章中出現的詞的相似性,識别這兩個簇。
異常檢測(anomaly detection)的任務是識别其特征顯著不同于其他資料的觀測值。這樣的觀測值稱為異常點(anomaly)或離群點(outlier)。異常檢測算法的目标是發現真正的異常點,而避免錯誤地将正常的對象标注為異常點。換言之,一個好的異常檢測器必須具有高檢測率和低誤報率。異常檢測的應用包括欺詐檢測、網絡攻擊、疾病的不尋常模式、生态系統擾動(如幹旱、洪水、火災、飓風)等。
例1.4 信用卡欺詐檢測 信用卡公司記錄每個持卡人所做的交易,同時也記錄信用額度、年齡、年薪和位址等個人資訊。由于與合法交易相比,欺詐行為的數量相對較少,是以異常檢測技術可以用來構造使用者的合法交易的輪廓。當一個新的交易到達時就與之比較。如果該交易的特性與先前構造的輪廓很不相同,就把交易标記為可能是欺詐。
1.5 本書組織結構
本書從算法的角度介紹資料挖掘所使用的主要原理與技術。為了更好地了解資料挖掘技術如何用于各種類型的資料,研究這些原理與技術是至關重要的。對于有志于從事這個領域研究的讀者,本書也可作為一個起點。
我們從資料(第2章)開始本書的技術讨論。該章讨論資料的基本類型、資料品質、預處理技術以及相似性和相異性度量。這些内容盡管可以快速閱讀,但卻是資料分析的重要基礎。第3章和第4章涵蓋分類。第3章是基礎,讨論決策樹分類和一些重要的分類問題:過拟合、欠拟合、模型選擇和性能評估。在此基礎上,第4章介紹其他重要的分類技術:基于規則的系統、最近鄰分類器、貝葉斯分類器、人工神經網絡(包含深度學習)、支援向量機群組合分類器(組合分類器是一組分類器)。這一章還讨論多類問題和不平衡類問題。這些主題可以彼此獨立地學習。
關聯分析将在第5章和第6章進行讨論。第5章介紹關聯分析的基礎——頻繁項集、關聯規則以及産生它們的一些算法。特殊類型的頻繁項集(極大項集、閉項集和超團集)對于資料挖掘也是重要的,它們也在這一章讨論。該章最後讨論關聯分析的評估度量。第6章考慮各種更進階的專題,包括如何将關聯分析用于分類資料和連續資料,或用于具有概念分層的資料(概念分層是對象的層次分類,例如庫存商品→服裝→鞋→運動鞋)。該章還介紹如何擴充關聯分析,以發現序列模式(涉及次序的模式)、圖中的模式、負聯系(如果一個項出現,則其他項不出現)。
聚類分析在第7章和第8章讨論。第7章先介紹不同類型的簇,然後給出三種特定的聚類技術:K均值、凝聚層次聚類和DBSCAN。接下去讨論驗證聚類算法結果的技術。更多的聚類概念和技術在第8章探讨,包括模糊和機率聚類、自組織映射(SOM)、基于圖的聚類、譜聚類和基于密度的聚類。這一章還讨論可伸縮問題和選擇聚類算法需要考慮的因素。
第9章是關于異常檢測的。在給出一些基本定義之後,介紹了若幹類型的異常檢測,包括統計的、基于距離的、基于密度的、基于聚類的、基于重構的、單類分類的和資訊論方法。最後一章(第10章)對其他章節進行了補充,并且讨論了避免虛假結果的主要統計概念,然後在前面章節提出的資料挖掘技術的背景下讨論了這些概念。這些技術包括統計假設檢驗、p值、僞發現率和置換檢驗。附錄A至F簡要回顧了本書各部分中的重要主題,包括線性代數、維歸約、統計、回歸、優化以及大資料挖掘技術的拓展。
盡管與統計學和機器學習相比,資料挖掘還很年輕,但是資料挖掘學科領域已經覆寫太大,很難用一本書涵蓋。對于本書僅簡略涉及的主題(如資料品質),我們在相應章的文獻注釋部分選列了一些參考文獻。對于本書未涵蓋的主題(如挖掘流資料和隐私保護資料挖掘),本章下面的文獻注釋提供了相關參考文獻。
文獻注釋
資料挖掘已有許多教科書。導論性教科書包括Dunham[16]、Han等[29]、Hand等[31]、Roiger和Geatz[50]、Zaki和Meira[61],以及Aggarwal[2]。更側重于商務應用的資料挖掘書籍包括Berry和Linoff[5]、Pyle[47]和Parr Rud[45]。側重統計學習的書籍包括Cherkassky和Mulier[11]以及Hastie等[32]。側重機器學習或模式識别的一些書籍包括Duda等[15]、Kantardzic[34]、Mitchell[43]、Webb[57],以及Witten和Frank[58]。還有一些更專業的書籍:Chakrabarti[9](Web挖掘)、Fayyad等[20](資料挖掘早期文獻彙編)、Fayyad等[18](可視化)、Grossman等[25](科學與工程)、Kargupta和Chan[35](分布式資料挖掘)、Wang等[56](生物資訊學),以及Zaki和Ho[60](并行資料挖掘)。
有許多與資料挖掘相關的會議。緻力于該領域研究的一些主要會議包括ACM SIGKDD知識發現與資料挖掘國際會議(KDD)、IEEE資料挖掘國際會議(ICDM)、SIAM資料挖掘國際會議(SDM)、歐洲資料庫中知識發現的原理與實踐會議(PKDD)和亞太知識發現與資料挖掘會議(PAKDD)。15資料挖掘的文章也可以在其他主要會議中找到,如神經資訊處理系統會議(NIPS 現改名為NeurIPS。——譯者注)、國際機器學習會議(ICML)、ACM SIGMOD/PODS會議、超大型資料庫國際會議(VLDB)、資訊和知識管理會議(CIKM)、資料工程國際會議(ICDE)、人工智能全國學術會議(AAAI)、IEEE國際大資料會議、IEEE國際會議資料科學和進階分析會議(DSAA)。
資料挖掘方面的期刊包括《IEEE知識與資料工程彙刊》(IEEE Transactions on Knowledge and Data Engineering)、《資料挖掘和知識發現》(Data Mining and Knowledge Discovery)、《知識與資訊系統》(Knowledge and Information Systems)、《ACM資料知識發現彙刊》(ACM Transactions on Knowledge Discovery from Data)、《統計分析和資料挖掘》(Statistical Analysis and Data Mining)和《資訊系統》(Information Systems)。存在各種開源資料挖掘軟體,包括Weka[27]和Scikit-learn[46]。最近,資料挖掘軟體如Apache Mahout和Apache Spark已經用于分布式計算平台上的大型問題。
有大量資料挖掘的一般性文章界定該領域及其與其他領域(特别是與統計學)之間的聯系。Fayyad等[19]介紹資料挖掘,以及如何将它與整個知識發現過程協調。Chen等[10]從資料庫角度闡釋資料挖掘。Ramakrishnan和Grama[48]給出資料挖掘的一般讨論,并提出若幹觀點。與Friedman[21]一樣,Hand[30]讨論資料挖掘與統計學的差別。Lambert[40]考察統計學在大型資料集上的應用,并對資料挖掘與統計學各自的角色提出一些評論。Glymour等[23]考慮統計學可能為資料挖掘提供的教訓。Smyth等[53]讨論諸如資料流、圖形和文本等新的資料類型和應用如何推動資料挖掘演變。新出現的資料挖掘應用也被Han等[28]考慮,而Smyth[52]介紹資料挖掘研究所面臨的一些挑戰。Wu等[59]讨論如何将資料挖掘研究成果轉化成實際工具。資料挖掘标準是Grossman等[24]論文的主題。Bradley[7]讨論如何将資料挖掘算法擴充到大型資料集。
随着資料挖掘新的應用的出現,資料挖掘會面臨新的挑戰。例如,近年來人們對資料挖掘破壞隐私問題的關注逐漸上升,在電子商務和衛生保健領域的應用尤其如此。這樣,人們對開發保護使用者隐私的資料挖掘算法的興趣也逐漸上升。為挖掘加密資料或随機資料開發的技術稱作保護隐私的資料挖掘。該領域的一些一般文獻包括Agrawal和Srikant[3]、Clifton等[12]以及Kargupta等[36]的論文。16Vassilios等[55]提供一個綜述。另一個值得關注的領域是可能用于某些應用的預測模型的偏差,例如篩選求職者或決定監獄假釋[39]。由于這種應用的預測模型通常都是黑箱模型,即不能以任何直接方式解釋的模型,是以評估這些應用産生的結果是否有偏差會變得更加困難。
資料科學的組成領域,或者更廣泛地說,它們所代表的知識發現新範式[33]具有很大的潛力,其中一些已經實作。然而,重要的是,要強調資料科學的工作主要是和觀測資料相聯系的,如各組織收集資料應當作為其正常運作的一部分。這樣做的結果是抽樣偏差非常常見,并且因果的确定變得更加困難。正是出于這個以及其他一些原因,通常很難解釋使用這些資料建立的預測模型[42,49]。是以,理論、實驗和計算模拟将繼續成為許多領域選擇的方法,特别是與科學相關的領域。
更重要的是,純資料驅動的方法往往忽略了特定領域的現有知識。這些模型可能表現不佳,例如,預測不可能的結果或未能推廣到新的情況。但是如果模型确實運作良好,例如具有較高的預測精度,那麼這種方法對于某些領域的實際目的可能是足夠的。但許多領域的目标是深入了解基礎領域,如醫學和科學領域。最近的一些研究工作将先前存在的領域知識考慮在内試圖解決這些問題,以建立理論指導的資料科學[17,37]。
近年來,我們看到快速産生連續的資料流的應用逐漸增加。資料流應用的例子包括網絡通信流、多媒體流和股票價格。挖掘資料流時,必須考慮一些因素,如可用記憶體有限、需要聯機分析、資料随時間而變等。流資料挖掘已經成為資料挖掘的一個重要領域。有關參考文獻有Domingos和Hulten[14](分類)、Giannella等[22](關聯分析)、Guha等[26](聚類)、Kifer等[38](變化檢測)、Papadimitriou等[44](時間序列)以及Law等[41](維歸約)。
另一個值得關注的領域是推薦和協同過濾系統[1,6,8,13,54],該系統可以給某人推薦可能喜歡的電影、電視節目、書籍和産品等。在很多情況下,這個問題或者至少其中一個組成部分可以被視為預測問題,是以可以應用資料挖掘技術[4,51]。
參考文獻
習題
1.讨論下列每項活動是否為資料挖掘任務。
(a) 根據性别劃分公司的顧客。
(b) 根據可赢利性劃分公司的顧客。
(c) 計算公司的總銷售額。
(d) 按學生的辨別号對學生資料庫排序。
(e) 預測擲一對骰子的結果。
(f) 使用曆史記錄預測某公司未來的股票價格。
(g) 監視病人心率的異常變化。
(h) 監視地震活動的地震波。
(i) 提取聲波的頻率。
2.假定你是一個資料挖掘顧問,受雇于一家網際網路搜尋引擎公司。舉例說明如何使用諸如聚類、分類、關聯規則挖掘和異常檢測等技術,讓資料挖掘為公司提供幫助。
3.對于如下每個資料集,解釋資料的私有性是否是重要問題。
(a) 從1900年到1950年收集的人口普查資料。
(b) 通路你的Web站點的使用者的IP位址和通路時間。
(c) 從地球軌道衛星得到的圖像。
(d) 電話号碼簿上的姓名和位址。
(e) 從網上收集的姓名和電子郵件位址。