从0到1详解数据挖掘过程
導(dǎo)讀:數(shù)據(jù)挖掘過程包含數(shù)據(jù)清洗、特征提取、算法設(shè)計(jì)等多個(gè)階段,本文將討論這些階段。
作者:查魯·C.阿加沃爾(Charu C. Aggarwal)
來源:大數(shù)據(jù)DT(ID:hzdashuju)
01 數(shù)據(jù)挖掘過程
典型數(shù)據(jù)挖掘應(yīng)用的過程包含以下幾個(gè)階段。
1. 數(shù)據(jù)采集
數(shù)據(jù)采集工作可能是使用像傳感器網(wǎng)絡(luò)這樣的專門硬件、手工錄入的用戶調(diào)查,或者如Web爬蟲那樣的軟件工具來收集文檔。雖然這個(gè)階段與具體應(yīng)用息息相關(guān),但常常落在數(shù)據(jù)挖掘分析師們所考慮的范圍之外,而這個(gè)階段對(duì)數(shù)據(jù)挖掘過程也是至關(guān)重要的,因?yàn)檫@一階段所做的選擇會(huì)明顯地影響整個(gè)數(shù)據(jù)挖掘過程。
采集階段產(chǎn)生的數(shù)據(jù)通常會(huì)先存入數(shù)據(jù)庫,廣義上稱為數(shù)據(jù)倉庫,然后進(jìn)行處理。
2. 特征提取和數(shù)據(jù)清洗
上述采集階段得到的數(shù)據(jù),其格式往往不適合直接進(jìn)行處理。例如,采集來的數(shù)據(jù)可能是使用復(fù)雜編碼的日志或自由格式的文檔,并在許多情況下,各種類型的數(shù)據(jù)又任意地混合在一起,形成自由格式的文檔。
要使這樣的數(shù)據(jù)適合進(jìn)一步加工,有必要把它們轉(zhuǎn)化為對(duì)數(shù)據(jù)挖掘算法較為合適的格式,比如多維數(shù)據(jù)、時(shí)序數(shù)據(jù)或者半結(jié)構(gòu)化數(shù)據(jù)等。
多維數(shù)據(jù)是最常見的格式,其不同的字段對(duì)應(yīng)于可以稱為特征、屬性或維度的各種測量屬性。抽取這些特征是數(shù)據(jù)挖掘的一個(gè)至關(guān)重要的階段,而特征提取階段通常與數(shù)據(jù)清洗階段并行進(jìn)行,以便估計(jì)或校正丟失的數(shù)據(jù)以及錯(cuò)誤的數(shù)據(jù)。
另外,在許多情況下,數(shù)據(jù)可能從多個(gè)來源聚集而成,進(jìn)行處理時(shí)需要把它們轉(zhuǎn)換為統(tǒng)一的格式。上述過程的最終結(jié)果是一個(gè)有較好結(jié)構(gòu)的數(shù)據(jù)集,可以由計(jì)算機(jī)程序有效地使用。在特征提取階段之后,數(shù)據(jù)可以存回到數(shù)據(jù)庫中用于進(jìn)一步的處理。
3. 分析處理和算法
數(shù)據(jù)挖掘過程的最后一步是為處理過的數(shù)據(jù)設(shè)計(jì)有效的分析方法。在許多情況下,不太可能將手頭的應(yīng)用直接轉(zhuǎn)化成一個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)挖掘問題,比如轉(zhuǎn)化成關(guān)聯(lián)模式挖掘、聚類、分類以及異常檢測這四個(gè)“超級(jí)問題”中的某一個(gè)。
但這四個(gè)超級(jí)問題具有很廣泛的覆蓋性,可以構(gòu)成數(shù)據(jù)挖掘任務(wù)的基本模塊,而大多數(shù)應(yīng)用都能由這些作為基本模塊的組件拼搭起來實(shí)現(xiàn)。
整個(gè)數(shù)據(jù)挖掘過程可由圖1-1表示。請(qǐng)注意,圖中的分析處理模塊顯示了對(duì)特定應(yīng)用設(shè)計(jì)的、由多個(gè)基本模塊組合而成的解決方案,這一部分依賴于分析師的技能。通常的做法是使用四個(gè)主要問題中的一個(gè)或多個(gè)作為基本模塊來搭建。
▲圖1-1 數(shù)據(jù)處理流水線
需要承認(rèn)的是,并非所有的數(shù)據(jù)挖掘應(yīng)用都能用這四個(gè)主要問題來搭建解決方案,但許多應(yīng)用可以這樣解決,因此有必要給予這四個(gè)主要問題一個(gè)特殊的地位。下面我們使用一個(gè)有關(guān)推薦的應(yīng)用實(shí)例來解釋數(shù)據(jù)挖掘的整個(gè)過程。
示例1.2.1?考慮這樣一個(gè)網(wǎng)上零售商的場景,此零售商保存了客戶訪問其網(wǎng)站的訪問日志,還收集了客戶的基本情況信息。假設(shè)網(wǎng)站的每個(gè)網(wǎng)頁對(duì)應(yīng)一個(gè)商品,客戶訪問一個(gè)網(wǎng)頁可能表明對(duì)相應(yīng)的商品感興趣。零售商希望通過對(duì)客戶的個(gè)人資料及其購買行為的分析,有針對(duì)性地給客戶推薦商品。
解決問題的流程示例:分析師的第一步工作是收集兩種不同來源的數(shù)據(jù),其一是從該網(wǎng)站的日志系統(tǒng)中抽取的日志,其二是從零售商的數(shù)據(jù)庫中抽取的客戶個(gè)人資料。這里的一個(gè)難題就是這兩種數(shù)據(jù)使用了非常不同的數(shù)據(jù)格式,放到一起處理很不容易。例如,一條日志可以以下面這種形式出現(xiàn)。
日志中可能包含成千上萬個(gè)這種條目,上面這一條目顯示IP地址為98.206.207.157的客戶訪問了productA.htm這一網(wǎng)頁。要確認(rèn)使用一個(gè)IP地址的客戶是誰,可以通過之前的登錄信息,或者通過網(wǎng)頁的cookie記錄,甚至直接通過IP地址本身,但這個(gè)確認(rèn)過程可能充滿噪聲,不可能總是產(chǎn)生準(zhǔn)確的結(jié)果。
作為數(shù)據(jù)清洗和提取過程的一部分,分析師還需要設(shè)計(jì)算法對(duì)不同的日志條目進(jìn)行有效的過濾,以便只使用那些提供準(zhǔn)確結(jié)果的數(shù)據(jù)段,因?yàn)樵既罩局邪芏鄬?duì)零售商可能沒有任何用處的額外信息。
在特征提取階段,零售商決定從網(wǎng)頁訪問日志中提取特征,為每個(gè)客戶創(chuàng)建一條記錄,其中將每個(gè)商品設(shè)置為一個(gè)屬性,記錄此客戶對(duì)相應(yīng)商品網(wǎng)頁的訪問次數(shù)。
因此,這個(gè)特征抽取需要對(duì)每條原始日志進(jìn)行處理,并將多條日志中抽取的特征進(jìn)行聚合。之后在數(shù)據(jù)集成時(shí),再將這些屬性數(shù)據(jù)添加到零售商的客戶數(shù)據(jù)庫中去。這個(gè)客戶數(shù)據(jù)庫包含客戶個(gè)人資料,倘若個(gè)人資料記錄中缺少某些條目,則需要為其進(jìn)行進(jìn)一步的數(shù)據(jù)清洗。
最終,我們得到一個(gè)數(shù)據(jù)集,將客戶個(gè)人資料的屬性及客戶對(duì)商品訪問次數(shù)的屬性整合在一起。
此時(shí),分析師需要決定如何使用此清洗過的數(shù)據(jù)集,為客戶提供推薦。分析師可以將類似的客戶分成幾類群體,并根據(jù)每類群體的購買行為提出推薦意見。
聚類分析在這里可以作為一個(gè)基本模塊,用于確定類似客戶的群體。對(duì)每一個(gè)客戶,可以為其推薦該客戶所在群體作為一個(gè)整體訪問最多次的商品(這里指的是商品網(wǎng)頁)。這個(gè)案例包含了一個(gè)完整的數(shù)據(jù)挖掘流程。
有許多優(yōu)美的提供推薦的方法,它們?cè)诓煌那闆r下各有優(yōu)劣,因此,整個(gè)數(shù)據(jù)挖掘過程是一門藝術(shù),很大程度由分析師的技能所決定,而不完全由特定的技術(shù)或基本模塊所左右,這種技能只能通過在不同應(yīng)用需求下處理各類不同數(shù)據(jù)的實(shí)踐中獲得。
02 數(shù)據(jù)預(yù)處理階段
數(shù)據(jù)預(yù)處理階段也許是數(shù)據(jù)挖掘過程中最關(guān)鍵的一個(gè)階段,然而,這個(gè)階段很少得到應(yīng)有的探討,因?yàn)榇蟛糠謹(jǐn)?shù)據(jù)挖掘討論的重點(diǎn)放在了數(shù)據(jù)分析方面。這一階段在數(shù)據(jù)采集后就開始,包括以下步驟。
1. 特征提取
分析師可能面臨大量的原始文件、系統(tǒng)日志、商業(yè)交易,但幾乎沒有任何指導(dǎo)性的快速入門方法將這些原始數(shù)據(jù)轉(zhuǎn)化為有意義的數(shù)據(jù)。這一步驟高度依賴于分析師的抽象能力,以找出與手頭應(yīng)用最相關(guān)的特征。
例如,在信用卡欺詐檢測應(yīng)用中,收費(fèi)金額、重復(fù)頻率以及位置信息往往是找出欺詐的有效指標(biāo),而許多其他特征信息也許就用處不大。因此,提取正確的特征往往是個(gè)技術(shù)活,需要對(duì)手頭應(yīng)用相關(guān)的領(lǐng)域有充分的了解。
2. 數(shù)據(jù)清洗
上述特征提取得到的數(shù)據(jù)中可能含有錯(cuò)誤,也有些條目可能在采集及提取時(shí)丟失。因此,我們可能要丟棄一些含有錯(cuò)誤的數(shù)據(jù)記錄,或者對(duì)缺失的條目進(jìn)行估計(jì)填充,并剔除數(shù)據(jù)中的不一致性。
3. 特征選擇與轉(zhuǎn)換
當(dāng)數(shù)據(jù)維度很高時(shí),很多數(shù)據(jù)挖掘算法就會(huì)失效。而且當(dāng)數(shù)據(jù)維度很高時(shí),數(shù)據(jù)噪聲會(huì)增加,可能帶來數(shù)據(jù)挖掘的錯(cuò)誤。因此,需要使用一些方法,移除與應(yīng)用無關(guān)的特征,或者將數(shù)據(jù)變換到一個(gè)新的維度空間中,使數(shù)據(jù)分析更容易進(jìn)行。
另一個(gè)相關(guān)的問題是數(shù)據(jù)轉(zhuǎn)換,將一些屬性轉(zhuǎn)換為另一種相同或類似數(shù)據(jù)類型的屬性。比如將年齡數(shù)值轉(zhuǎn)化成年齡段,可能對(duì)分析更有效也更便利。
數(shù)據(jù)清洗過程中通常需要使用對(duì)缺失數(shù)據(jù)進(jìn)行估計(jì)的統(tǒng)計(jì)方法,此外,為確保挖掘結(jié)果的準(zhǔn)確性,通常需要剔除錯(cuò)誤的數(shù)據(jù)條目。
由于特征選擇和數(shù)據(jù)轉(zhuǎn)換高度依賴于具體的分析問題,不應(yīng)視為數(shù)據(jù)預(yù)處理的一部分,甚至在某些情況下,特征選擇可能與具體算法或方法緊密結(jié)合,以一種包裝模型或嵌入模型的形式出現(xiàn)。但在一般情況下,會(huì)在應(yīng)用具體挖掘算法之前執(zhí)行特征選擇階段。
03 分析階段
一個(gè)主要的挑戰(zhàn)是每個(gè)數(shù)據(jù)挖掘應(yīng)用都是獨(dú)特的,很難為很多類應(yīng)用打造出一個(gè)靈活的、可復(fù)用的挖掘技術(shù)。然而,我們發(fā)現(xiàn)有些數(shù)據(jù)挖掘方法在各類應(yīng)用中反復(fù)出現(xiàn),即所謂的“超級(jí)問題”或數(shù)據(jù)挖掘的基本模塊。
怎樣在特定的數(shù)據(jù)挖掘應(yīng)用中使用這些基本方法很大程度上取決于分析師的技能和經(jīng)驗(yàn),所以雖然可以對(duì)這些基本模塊進(jìn)行很好的描述,但怎樣在實(shí)際應(yīng)用中使用它們,只能通過實(shí)踐來學(xué)習(xí)。
關(guān)于作者:查魯C. 阿加沃爾(Charu C. Aggarwal),IBM T. J. Watson研究中心的杰出研究人員,于1996年獲麻省理工學(xué)院博士學(xué)位。他對(duì)數(shù)據(jù)挖掘領(lǐng)域有著廣泛的研究,在國際會(huì)議和期刊上發(fā)表了250多篇論文,擁有80多項(xiàng)專利。他曾三次被評(píng)為IBM的“杰出發(fā)明人”,并曾獲得IBM公司獎(jiǎng)、IBM杰出創(chuàng)新獎(jiǎng)和兩項(xiàng)IBM杰出技術(shù)成就獎(jiǎng)。
本文摘編自《數(shù)據(jù)挖掘:原理與實(shí)踐(基礎(chǔ)篇)》,經(jīng)出版方授權(quán)發(fā)布。
延伸閱讀《數(shù)據(jù)挖掘:原理與實(shí)踐(基礎(chǔ)篇)》
點(diǎn)擊上圖了解及購買
轉(zhuǎn)載請(qǐng)聯(lián)系微信:DoctorData
推薦語:大數(shù)據(jù)和人工智能時(shí)代數(shù)據(jù)挖掘教材,從四個(gè)“超級(jí)問題”出發(fā),詳解數(shù)據(jù)挖掘的基礎(chǔ)知識(shí),介紹高級(jí)數(shù)據(jù)類型,結(jié)合復(fù)雜多樣的實(shí)際數(shù)據(jù)環(huán)境,探討數(shù)據(jù)挖掘的應(yīng)用場景和使用方法。
劃重點(diǎn)????
干貨直達(dá)????
什么是數(shù)據(jù)湖?有什么用?終于有人講明白了……
4款深度學(xué)習(xí)框架簡介,初學(xué)者該如何選擇?
最后一個(gè)韓國人將在公元2750年死亡?人口學(xué)家:沒希望了
什么是擴(kuò)展現(xiàn)實(shí)(XR)?云XR系統(tǒng)怎樣實(shí)現(xiàn)?終于有人講明白了
更多精彩????
在公眾號(hào)對(duì)話框輸入以下關(guān)鍵詞
查看更多優(yōu)質(zhì)內(nèi)容!
PPT?|?讀書?|?書單?|?硬核?|?干貨?|?講明白?|?神操作
大數(shù)據(jù)?|?云計(jì)算?|?數(shù)據(jù)庫?|?Python?|?可視化
AI?|?人工智能?|?機(jī)器學(xué)習(xí)?|?深度學(xué)習(xí)?|?NLP
5G?|?中臺(tái)?|?用戶畫像?|?1024?|?數(shù)學(xué)?|?算法?|?數(shù)字孿生
據(jù)統(tǒng)計(jì),99%的大咖都完成了這個(gè)神操作
????
總結(jié)
以上是生活随笔為你收集整理的从0到1详解数据挖掘过程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP 正在干掉 Python
- 下一篇: 终于有人把数据湖讲明白了