書(shū)名: 數(shù)據(jù)挖掘:你必須知道的32個(gè)經(jīng)典案例(第2版)作者名: 任昱衡 姜斌 李倩興 米曉飛本章字?jǐn)?shù): 2999字更新時(shí)間: 2019-07-25 11:35:55
1.1 探索性數(shù)據(jù)分析綜述
當(dāng)一個(gè)數(shù)據(jù)分析任務(wù)放在我們面前的時(shí)候,一般需要先對(duì)數(shù)據(jù)進(jìn)行一些簡(jiǎn)單的統(tǒng)計(jì)和結(jié)構(gòu)的梳理等操作。千萬(wàn)不要小看這些看似簡(jiǎn)單的操作,數(shù)據(jù)分析師們發(fā)現(xiàn),在大部分的實(shí)際應(yīng)用中,預(yù)先進(jìn)行數(shù)據(jù)探索是項(xiàng)目成功的必要條件。通過(guò)閱讀本節(jié),讀者將會(huì)對(duì)數(shù)據(jù)收集和預(yù)處理等方法有基本的理解。
1.1.1 什么是探索性數(shù)據(jù)分析
正如學(xué)習(xí)英語(yǔ)要從A、B、C、D開(kāi)始一樣,我們學(xué)習(xí)數(shù)據(jù)分析也要從數(shù)據(jù)的收集和預(yù)處理開(kāi)始。有一些急于求成的人認(rèn)為數(shù)據(jù)的收集和預(yù)處理很簡(jiǎn)單,沒(méi)有什么技術(shù)含量,馬馬虎虎看一下就好了,重點(diǎn)還是應(yīng)該放在后續(xù)的數(shù)據(jù)分析算法上。這種看法是非常膚淺的,在數(shù)據(jù)分析項(xiàng)目中,數(shù)據(jù)的收集和預(yù)處理往往占據(jù)整個(gè)項(xiàng)目工作量的十之八九,正是這些簡(jiǎn)單的工作決定了整個(gè)項(xiàng)目的成敗。
舉個(gè)例子,當(dāng)我們對(duì)一份數(shù)據(jù)進(jìn)行回歸分析,發(fā)現(xiàn)吸煙越多得癌癥的概率就越小時(shí),我想正常人的反應(yīng)都是返回檢查數(shù)據(jù)是否出錯(cuò)了,而不是欣喜若狂地趕快去醫(yī)學(xué)雜志發(fā)表論文。再比如,當(dāng)我們分析一份數(shù)據(jù)時(shí),發(fā)現(xiàn)甲二苯甘酸越多胞嘧啶就越少時(shí),請(qǐng)問(wèn)大家能一眼判斷出這個(gè)結(jié)果是否具有發(fā)表論文的價(jià)值呢?對(duì)于欠缺相關(guān)專業(yè)知識(shí)的人來(lái)說(shuō),只有首先進(jìn)行探索性數(shù)據(jù)分析,才能準(zhǔn)確理解分析結(jié)果的意義。這就是為什么我們需要進(jìn)行探索性數(shù)據(jù)分析的原因。
從廣泛意義上講,探索性數(shù)據(jù)分析主要包括數(shù)據(jù)的預(yù)處理和數(shù)據(jù)的探索性分析。其中數(shù)據(jù)的預(yù)處理是指對(duì)數(shù)據(jù)進(jìn)行清洗、轉(zhuǎn)化、重組和篩選,而數(shù)據(jù)的探索性分析則包括基本的五數(shù)總括、數(shù)據(jù)分布等,簡(jiǎn)單的相關(guān)分析和方差分析等,也都屬于數(shù)據(jù)的探索性分析的范疇。通常情況下,我們不認(rèn)為探索性數(shù)據(jù)分析包含數(shù)據(jù)的收集,但篇幅所限,本書(shū)將數(shù)據(jù)的收集也歸入探索性數(shù)據(jù)分析這一章。
數(shù)據(jù)的收集是整個(gè)數(shù)據(jù)分析項(xiàng)目的原點(diǎn),沒(méi)有收集來(lái)的數(shù)據(jù),什么數(shù)據(jù)分析技術(shù)都是紙上談兵。對(duì)于一小部分較為常見(jiàn)的問(wèn)題,比如預(yù)測(cè)市政府的財(cái)政收入,預(yù)測(cè)未來(lái)某一時(shí)間的天氣數(shù)據(jù)等問(wèn)題,都可以從相關(guān)的公開(kāi)網(wǎng)站下載相關(guān)的數(shù)據(jù)包。但對(duì)于大部分商家根據(jù)自身情況提出的特定問(wèn)題來(lái)說(shuō),則需要專門(mén)設(shè)計(jì)收集數(shù)據(jù)的方法,一個(gè)巧妙的方法可以節(jié)約成千上萬(wàn)的資金。本章要介紹的紅牛營(yíng)銷(xiāo)案例就是一個(gè)經(jīng)典的例子。
在真實(shí)生活中,收集的數(shù)據(jù)往往是不能直接用來(lái)進(jìn)行高級(jí)數(shù)據(jù)分析的,這是因?yàn)樵紨?shù)據(jù)中會(huì)包含許多殘缺值和錯(cuò)誤值,比如將一個(gè)人的身高記錄為17.5米,這顯然是一個(gè)錄入出錯(cuò)的值,數(shù)據(jù)預(yù)處理就是要將原始數(shù)據(jù)中的殘缺值和錯(cuò)誤值一一剔除,只留下有意義的數(shù)據(jù)。除此之外,也并不是所有的數(shù)據(jù)變量都適合進(jìn)行數(shù)據(jù)分析,因此數(shù)據(jù)預(yù)處理還要承擔(dān)起挑選有價(jià)值的數(shù)據(jù)變量的任務(wù)。
簡(jiǎn)單的探索性數(shù)據(jù)分析主要用于研究數(shù)據(jù)的分布結(jié)構(gòu)。研究一個(gè)數(shù)據(jù)變量的極大值、極小值、中位數(shù)各是什么,數(shù)據(jù)呈正態(tài)分布還是偏態(tài)分布是十分重要的。例如,回歸分析就要求分析變量具有正態(tài)分布的特征。探索性數(shù)據(jù)分析可以使數(shù)據(jù)分析師直觀掌握數(shù)據(jù)的各項(xiàng)特征,這一點(diǎn)將幫助數(shù)據(jù)分析師在后續(xù)分析中選擇更合適的數(shù)據(jù)分析技術(shù)。
總的來(lái)說(shuō),數(shù)據(jù)的收集、預(yù)處理和簡(jiǎn)單分析考驗(yàn)了數(shù)據(jù)分析師的細(xì)心、耐心和觀察力。正是這些基本功將好的數(shù)據(jù)分析師和壞的數(shù)據(jù)分析師區(qū)分開(kāi)來(lái),這些工作就好比建房子時(shí)的基石,只有花力氣細(xì)致地做好這些工作,才能在數(shù)據(jù)中挖掘有價(jià)值的信息。
1.1.2 如何收集數(shù)據(jù)
探索性數(shù)據(jù)分析展開(kāi)的重要一步就是數(shù)據(jù)源的獲取,對(duì)于比較特殊的沒(méi)有數(shù)據(jù)源的任務(wù),我們應(yīng)該如何搜集有效數(shù)據(jù)呢?答案就是網(wǎng)絡(luò)爬蟲(chóng)——爬蟲(chóng)的基本思想是沿著網(wǎng)頁(yè)的超鏈接內(nèi)容逐步抓取數(shù)據(jù)分析師需要用到的數(shù)據(jù)。
那么爬蟲(chóng)究竟是如何分析并抓取網(wǎng)頁(yè)的內(nèi)容呢?通常來(lái)講,一個(gè)網(wǎng)頁(yè)由HTML文件、CSS文件和JavaScript文件3部分組成。一般來(lái)講,在網(wǎng)站上面我們看到的所有內(nèi)容都是存在于圖1.1的“<>…</>”中被稱為錨標(biāo)簽的內(nèi)容中的。

圖1.1 簡(jiǎn)單網(wǎng)頁(yè)代碼
根據(jù)上面提到的網(wǎng)頁(yè)結(jié)構(gòu)性質(zhì),爬蟲(chóng)通過(guò)模擬瀏覽器對(duì)網(wǎng)頁(yè)進(jìn)行訪問(wèn),并對(duì)感興趣的文本標(biāo)簽位置進(jìn)行對(duì)應(yīng)解析操作,在這中間還會(huì)涉及一些模擬登錄、驗(yàn)證碼等技術(shù)的使用,將解析得到的結(jié)果返回,便是數(shù)據(jù)分析師需要的數(shù)據(jù)。這就是一個(gè)完整的爬蟲(chóng)過(guò)程。
1.1.3 數(shù)據(jù)預(yù)處理技術(shù)
數(shù)據(jù)挖掘或數(shù)據(jù)分析的一般流程是:確定目標(biāo)→獲取數(shù)據(jù)源→數(shù)據(jù)探索→數(shù)據(jù)預(yù)處理→挖掘分析建模→模型效果評(píng)價(jià)。隨著開(kāi)源社區(qū)的活躍和技術(shù)的發(fā)展,越來(lái)越多的算法和框架被創(chuàng)造出來(lái)簡(jiǎn)化數(shù)據(jù)挖掘和數(shù)據(jù)分析工程師們的工作。近年來(lái),隨著相關(guān)算法的日趨成熟,決定一個(gè)項(xiàng)目是否成功的關(guān)鍵因素逐漸從算法本身變成了“數(shù)據(jù)探索+數(shù)據(jù)預(yù)處理”這個(gè)部分。
在機(jī)器學(xué)習(xí)/模式識(shí)別領(lǐng)域有句話很經(jīng)典:“Garbage in,Garbage out.。”顧名思義,這句話的意思就是說(shuō),如果你的數(shù)據(jù)本身就是有問(wèn)題的(數(shù)據(jù)特征非常不規(guī)律,缺失值很多,特征和結(jié)果聯(lián)系不緊密等),那么無(wú)論什么模型都沒(méi)辦法化腐朽為神奇,得到一個(gè)讓分析人員滿意的結(jié)果。
下面簡(jiǎn)單介紹數(shù)據(jù)預(yù)處理的基本步驟:數(shù)據(jù)預(yù)處理技術(shù)的第一步,要衡量數(shù)據(jù)本身的質(zhì)量——如收集來(lái)的數(shù)據(jù)是否完整、各類(lèi)屬性特征齊全與否等。接下來(lái),就要對(duì)數(shù)據(jù)本身進(jìn)行一些探索,通過(guò)使用Excel可視化工具、R中的ggplot2、Python中的Matplotlib、Seaborn等一系列可視化工具,對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行直觀展示(分位數(shù)圖、散點(diǎn)圖等)。與此同時(shí),也可以分析特征或者數(shù)據(jù)之間的相似/相異性,認(rèn)識(shí)數(shù)據(jù)的數(shù)值、序列等本質(zhì)屬性,并用均值、中位數(shù)、眾數(shù)等基本統(tǒng)計(jì)指標(biāo)將數(shù)據(jù)刻畫(huà)出來(lái),如圖1.2所示。

圖1.2 數(shù)據(jù)可視化
在數(shù)據(jù)探索的過(guò)程中,一般還涉及組織數(shù)據(jù)集的方法:如對(duì)特征進(jìn)行檢查,將非結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換為結(jié)構(gòu)化數(shù)據(jù);基于現(xiàn)有數(shù)據(jù),引入或構(gòu)建新的特征;對(duì)多個(gè)小數(shù)據(jù)集進(jìn)行合并和去重;從大數(shù)據(jù)集中抽樣出一些中小型數(shù)據(jù)集等。
數(shù)據(jù)清洗是數(shù)據(jù)預(yù)處理中最關(guān)鍵的一步,也是前處理階段中應(yīng)用復(fù)雜算法最多的地方,它的主要作用是填充空缺值、平滑噪點(diǎn)并識(shí)別顯著離群點(diǎn)(outlier)進(jìn)行后序處理。以時(shí)間續(xù)列數(shù)據(jù)為例,在個(gè)別空缺值處理中,通常采用人工規(guī)則、平均值、中位數(shù)、拉格朗日插值、牛頓插值和線性規(guī)劃求解等方法;噪聲平滑目前來(lái)講箱形圖技術(shù)用得比較多,平滑方法有滑動(dòng)窗口法、按箱平均值/中值平滑法等。至于噪聲點(diǎn)的識(shí)別,離群點(diǎn)檢測(cè)的經(jīng)典算法是最K近鄰算法(KNN),還可以使用一元/多元回歸分析來(lái)擬合光滑數(shù)據(jù),從而使噪聲點(diǎn)暴露出來(lái)。
數(shù)據(jù)規(guī)約——它是數(shù)據(jù)預(yù)處理技術(shù)中用于降低數(shù)據(jù)量、提取核心信息的方法,主要體現(xiàn)在3個(gè)方面:(1)屬性(特征)維度的規(guī)約。即刪除不相關(guān)/不重要的屬性來(lái)減少數(shù)據(jù)量,通常的方法是子集選擇和樹(shù)形合并,即通過(guò)決策樹(shù)歸納、前向選擇、向后刪除等完成集合篩選。(2)數(shù)據(jù)壓縮。小波變換是數(shù)據(jù)壓縮領(lǐng)域的典型算法,對(duì)于有稀疏、傾斜等情況出現(xiàn)的數(shù)據(jù)集,基于小波變換的有損壓縮方法往往可以得到很好的結(jié)果。除了小波變換,主成分分析方法(PCA)將原有的多維特征根據(jù)重要性排序,只提取重點(diǎn)關(guān)注的特征,它和它的擴(kuò)展算法在實(shí)際中應(yīng)用非常廣泛。(3)數(shù)值規(guī)約。數(shù)值規(guī)約的概念就比較廣了,小到將整型數(shù)據(jù)屬性類(lèi)型從long變?yōu)閕nt,大到使用對(duì)數(shù)線性模型等方法將數(shù)據(jù)劃分為多維空間并進(jìn)行相應(yīng)規(guī)約。它們都屬于數(shù)值規(guī)約的部分。
數(shù)據(jù)離散化技術(shù)目前也較為常用,它用于解決特征中連續(xù)特征比例過(guò)高的問(wèn)題,其主要思路是基于分箱或直方圖分析的方法將連續(xù)特征變?yōu)殡x散特征,從而達(dá)到減少連續(xù)特征的目的。這種方法對(duì)于處理連續(xù)特征比較困難的ID3決策樹(shù)算法,有非常大的幫助。
除了上述方法之外,數(shù)據(jù)預(yù)處理中最重要的其實(shí)是根據(jù)實(shí)際情況來(lái)制定預(yù)處理的規(guī)則和標(biāo)準(zhǔn)。只有理解了業(yè)務(wù)才能抓住重點(diǎn),才能有效地避免盲目和浪費(fèi)時(shí)間。
- 數(shù)據(jù)庫(kù)基礎(chǔ)教程(SQL Server平臺(tái))
- 大數(shù)據(jù)技術(shù)基礎(chǔ)
- 數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用教程(Access)
- 輕松學(xué)大數(shù)據(jù)挖掘:算法、場(chǎng)景與數(shù)據(jù)產(chǎn)品
- Architects of Intelligence
- Oracle RAC 11g實(shí)戰(zhàn)指南
- 揭秘云計(jì)算與大數(shù)據(jù)
- 達(dá)夢(mèng)數(shù)據(jù)庫(kù)性能優(yōu)化
- Microsoft Power BI數(shù)據(jù)可視化與數(shù)據(jù)分析
- 科研統(tǒng)計(jì)思維與方法:SPSS實(shí)戰(zhàn)
- Python數(shù)據(jù)分析與挖掘?qū)崙?zhàn)(第3版)
- Augmented Reality using Appcelerator Titanium Starter
- 聯(lián)動(dòng)Oracle:設(shè)計(jì)思想、架構(gòu)實(shí)現(xiàn)與AWR報(bào)告
- Spring MVC Beginner’s Guide
- Cognitive Computing with IBM Watson