如何入門大數(shù)據(jù)(數(shù)據(jù)挖掘方面)?
處理大數(shù)據(jù)需要一個(gè)綜合、復(fù)雜、多方位的系統(tǒng),系統(tǒng)中的處理模塊有很多,而數(shù)據(jù)挖掘技術(shù)以一個(gè)獨(dú)立的身份存在于處理大數(shù)據(jù)的整個(gè)系統(tǒng)之中,與其他模塊之間相輔相成、協(xié)調(diào)發(fā)展。在大數(shù)據(jù)時(shí)代中,數(shù)據(jù)挖掘技術(shù)的地位是無可比擬的。

數(shù)據(jù)挖掘的基本流程
在正式講數(shù)據(jù)挖掘知識(shí)清單之前,我先和你聊聊數(shù)據(jù)挖掘的基本流程。
數(shù)據(jù)挖掘的過程可以分成以下 6 個(gè)步驟。
商業(yè)理解:數(shù)據(jù)挖掘不是我們的目的,我們的目的是更好地幫助業(yè)務(wù),所以第一步我們要從商業(yè)的角度理解項(xiàng)目需求,在這個(gè)基礎(chǔ)上,再對(duì)數(shù)據(jù)挖掘的目標(biāo)進(jìn)行定義。
數(shù)據(jù)理解:嘗試收集部分?jǐn)?shù)據(jù),然后對(duì)數(shù)據(jù)進(jìn)行探索,包括數(shù)據(jù)描述、數(shù)據(jù)質(zhì)量驗(yàn)證等。這有助于你對(duì)收集的數(shù)據(jù)有個(gè)初步的認(rèn)知。
數(shù)據(jù)準(zhǔn)備:開始收集數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行清洗、數(shù)據(jù)集成等操作,完成數(shù)據(jù)挖掘前的準(zhǔn)備工作。
模型建立:選擇和應(yīng)用各種數(shù)據(jù)挖掘模型,并進(jìn)行優(yōu)化,以便得到更好的分類結(jié)果。
模型評(píng)估:對(duì)模型進(jìn)行評(píng)價(jià),并檢查構(gòu)建模型的每個(gè)步驟,確認(rèn)模型是否實(shí)現(xiàn)了預(yù)定的商業(yè)目標(biāo)。
上線發(fā)布:模型的作用是從數(shù)據(jù)中找到金礦,也就是我們所說的“知識(shí)”,獲得的知識(shí)需要轉(zhuǎn)化成用戶可以使用的方式,呈現(xiàn)的形式可以是一份報(bào)告,也可以是實(shí)現(xiàn)一個(gè)比較復(fù)雜的、可重復(fù)的數(shù)據(jù)挖掘過程。數(shù)據(jù)挖掘結(jié)果如果是日常運(yùn)營的一部分,那么后續(xù)的監(jiān)控和維護(hù)就會(huì)變得重要。
數(shù)據(jù)挖掘的十大算法
為了進(jìn)行數(shù)據(jù)挖掘任務(wù),數(shù)據(jù)科學(xué)家們提出了各種模型,在眾多的數(shù)據(jù)挖掘模型中,國際權(quán)威的學(xué)術(shù)組織 ICDM (the IEEE International Conference on Data Mining)評(píng)選出了十大經(jīng)典的算法。
按照不同的目的,我可以將這些算法分成四類,以便你更好的理解。
l 分類算法:C4.5,樸素貝葉斯(Naive Bayes),SVM,KNN,Adaboost,CART
l 聚類算法:K-Means,EM
l 關(guān)聯(lián)分析:Apriori
l 連接分析:PageRank
1. C4.5
C4.5 算法是得票最高的算法,可以說是十大算法之首。C4.5 是決策樹的算法,它創(chuàng)造性地在決策樹構(gòu)造過程中就進(jìn)行了剪枝,并且可以處理連續(xù)的屬性,也能對(duì)不完整的數(shù)據(jù)進(jìn)行處理。它可以說是決策樹分類中,具有里程碑式意義的算法。
2. 樸素貝葉斯(Naive Bayes)
樸素貝葉斯模型是基于概率論的原理,它的思想是這樣的:對(duì)于給出的未知物體想要進(jìn)行分類,就需要求解在這個(gè)未知物體出現(xiàn)的條件下各個(gè)類別出現(xiàn)的概率,哪個(gè)最大,就認(rèn)為這個(gè)未知物體屬于哪個(gè)分類。
3. SVM
SVM 的中文叫支持向量機(jī),英文是 Support Vector Machine,簡(jiǎn)稱 SVM。SVM 在訓(xùn)練中建立了一個(gè)超平面的分類模型。如果你對(duì)超平面不理解,沒有關(guān)系,我在后面的算法篇會(huì)給你進(jìn)行介紹。
4. KNN
KNN 也叫 K 最近鄰算法,英文是 K-Nearest Neighbor。所謂 K 近鄰,就是每個(gè)樣本都可以用它最接近的 K 個(gè)鄰居來代表。如果一個(gè)樣本,它的 K 個(gè)最接近的鄰居都屬于分類 A,那么這個(gè)樣本也屬于分類 A。
5. AdaBoost
Adaboost 在訓(xùn)練中建立了一個(gè)聯(lián)合的分類模型。boost 在英文中代表提升的意思,所以 Adaboost 是個(gè)構(gòu)建分類器的提升算法。它可以讓我們多個(gè)弱的分類器組成一個(gè)強(qiáng)的分類器,所以 Adaboost 也是一個(gè)常用的分類算法。
6. CART
CART 代表分類和回歸樹,英文是 Classification and Regression Trees。像英文一樣,它構(gòu)建了兩棵樹:一顆是分類樹,另一個(gè)是回歸樹。和 C4.5 一樣,它是一個(gè)決策樹學(xué)習(xí)方法。
7. Apriori
Apriori 是一種挖掘關(guān)聯(lián)規(guī)則(association rules)的算法,它通過挖掘頻繁項(xiàng)集(frequent item sets)來揭示物品之間的關(guān)聯(lián)關(guān)系,被廣泛應(yīng)用到商業(yè)挖掘和網(wǎng)絡(luò)安全等領(lǐng)域中。頻繁項(xiàng)集是指經(jīng)常出現(xiàn)在一起的物品的集合,關(guān)聯(lián)規(guī)則暗示著兩種物品之間可能存在很強(qiáng)的關(guān)系。
8. K-Means
K-Means 算法是一個(gè)聚類算法。你可以這么理解,最終我想把物體劃分成 K 類。假設(shè)每個(gè)類別里面,都有個(gè)“中心點(diǎn)”,即意見領(lǐng)袖,它是這個(gè)類別的核心?,F(xiàn)在我有一個(gè)新點(diǎn)要?dú)w類,這時(shí)候就只要計(jì)算這個(gè)新點(diǎn)與 K 個(gè)中心點(diǎn)的距離,距離哪個(gè)中心點(diǎn)近,就變成了哪個(gè)類別。
9. EM
EM 算法也叫最大期望算法,是求參數(shù)的最大似然估計(jì)的一種方法。原理是這樣的:假設(shè)我們想要評(píng)估參數(shù) A 和參數(shù) B,在開始狀態(tài)下二者都是未知的,并且知道了 A 的信息就可以得到 B 的信息,反過來知道了 B 也就得到了 A??梢钥紤]首先賦予 A 某個(gè)初值,以此得到 B 的估值,然后從 B 的估值出發(fā),重新估計(jì) A 的取值,這個(gè)過程一直持續(xù)到收斂為止。
EM 算法經(jīng)常用于聚類和機(jī)器學(xué)習(xí)領(lǐng)域中。
10. PageRank
PageRank 起源于論文影響力的計(jì)算方式,如果一篇文論被引入的次數(shù)越多,就代表這篇論文的影響力越強(qiáng)。同樣 PageRank 被 Google 創(chuàng)造性地應(yīng)用到了網(wǎng)頁權(quán)重的計(jì)算中:當(dāng)一個(gè)頁面鏈出的頁面越多,說明這個(gè)頁面的“參考文獻(xiàn)”越多,當(dāng)這個(gè)頁面被鏈入的頻率越高,說明這個(gè)頁面被引用的次數(shù)越高?;谶@個(gè)原理,我們可以得到網(wǎng)站的權(quán)重劃分。
算法可以說是數(shù)據(jù)挖掘的靈魂,也是最精華的部分。這 10 個(gè)經(jīng)典算法在整個(gè)數(shù)據(jù)挖掘領(lǐng)域中的得票最高的,后面的一些其他算法也基本上都是在這個(gè)基礎(chǔ)上進(jìn)行改進(jìn)和創(chuàng)新。今天你先對(duì)十大算法有一個(gè)初步的了解,你只需要做到心中有數(shù)就可以了,具體內(nèi)容不理解沒有關(guān)系,后面我會(huì)詳細(xì)給你進(jìn)行講解。
數(shù)據(jù)挖掘的數(shù)學(xué)原理
我說了這么多數(shù)據(jù)挖掘中的經(jīng)典算法,但是如果你不了解概率論和數(shù)理統(tǒng)計(jì),還是很難掌握算法的本質(zhì);如果你不懂線性代數(shù),就很難理解矩陣和向量運(yùn)作在數(shù)據(jù)挖掘中的價(jià)值;如果你沒有最優(yōu)化方法的概念,就對(duì)迭代收斂理解不深。所以說,想要更深刻地理解數(shù)據(jù)挖掘的方法,就非常有必要了解它后背的數(shù)學(xué)原理。
1. 概率論與數(shù)理統(tǒng)計(jì)
概率論在我們上大學(xué)的時(shí)候,基本上都學(xué)過,不過大學(xué)里老師教的內(nèi)容,偏概率的多一些,統(tǒng)計(jì)部分講得比較少。在數(shù)據(jù)挖掘里使用到概率論的地方就比較多了。比如條件概率、獨(dú)立性的概念,以及隨機(jī)變量、多維隨機(jī)變量的概念。
很多算法的本質(zhì)都與概率論相關(guān),所以說概率論與數(shù)理統(tǒng)計(jì)是數(shù)據(jù)挖掘的重要數(shù)學(xué)基礎(chǔ)。
2. 線性代數(shù)
向量和矩陣是線性代數(shù)中的重要知識(shí)點(diǎn),它被廣泛應(yīng)用到數(shù)據(jù)挖掘中,比如我們經(jīng)常會(huì)把對(duì)象抽象為矩陣的表示,一幅圖像就可以抽象出來是一個(gè)矩陣,我們也經(jīng)常計(jì)算特征值和特征向量,用特征向量來近似代表物體的特征。這個(gè)是大數(shù)據(jù)降維的基本思路。
基于矩陣的各種運(yùn)算,以及基于矩陣的理論成熟,可以幫我們解決很多實(shí)際問題,比如 PCA 方法、SVD 方法,以及 MF、NMF 方法等在數(shù)據(jù)挖掘中都有廣泛的應(yīng)用。
3. 圖論
社交網(wǎng)絡(luò)的興起,讓圖論的應(yīng)用也越來越廣。人與人的關(guān)系,可以用圖論上的兩個(gè)節(jié)點(diǎn)來進(jìn)行連接,節(jié)點(diǎn)的度可以理解為一個(gè)人的朋友數(shù)。我們都聽說過人脈的六度理論,在 Facebook 上被證明平均一個(gè)人與另一個(gè)人的連接,只需要 3.57 個(gè)人。當(dāng)然圖論對(duì)于網(wǎng)絡(luò)結(jié)構(gòu)的分析非常有效,同時(shí)圖論也在關(guān)系挖掘和圖像分割中有重要的作用。
4. 最優(yōu)化方法
最優(yōu)化方法相當(dāng)于機(jī)器學(xué)習(xí)中自我學(xué)習(xí)的過程,當(dāng)機(jī)器知道了目標(biāo),訓(xùn)練后與結(jié)果存在偏差就需要迭代調(diào)整,那么最優(yōu)化就是這個(gè)調(diào)整的過程。一般來說,這個(gè)學(xué)習(xí)和迭代的過程是漫長(zhǎng)、隨機(jī)的。最優(yōu)化方法的提出就是用更短的時(shí)間得到收斂,取得更好的效果。
隨著大數(shù)據(jù)時(shí)代的到來,社會(huì)對(duì)“挖掘”到的數(shù)據(jù)要求變得更加嚴(yán)格,每一個(gè)精準(zhǔn)的結(jié)果都具備獨(dú)自的“價(jià)值”,這時(shí),大數(shù)據(jù)時(shí)代的新增屬性——“價(jià)值”被演繹得有聲有色。數(shù)據(jù)挖掘(data mining, DM)是一門新興的、匯聚多個(gè)學(xué)科的交叉性學(xué)科,這是一個(gè)不平凡的處理過程,即從龐大的數(shù)據(jù)中,將未知、隱含及具備潛在價(jià)值的信息進(jìn)行提取的過程。1989年8月,在美國底特律市召開的第十一屆人工智能聯(lián)合會(huì)議的專題討論會(huì)上,知識(shí)發(fā)現(xiàn)(knowledge discover in database,KDD)初次被科學(xué)家們提出,同時(shí),也有人將知識(shí)發(fā)現(xiàn)稱為數(shù)據(jù)挖掘,但兩者并不完全等同。1995年,KDD這個(gè)術(shù)語在加拿大蒙特利爾市召開的第一屆知識(shí)發(fā)現(xiàn)和數(shù)據(jù)挖掘國際學(xué)術(shù)會(huì)議上被人們接受,會(huì)議分析了數(shù)據(jù)挖掘的整個(gè)流程。實(shí)質(zhì)上,數(shù)據(jù)挖掘是知識(shí)發(fā)現(xiàn)的子過程。
數(shù)理統(tǒng)計(jì)與數(shù)據(jù)挖掘的區(qū)別
更普遍的觀點(diǎn)認(rèn)為,數(shù)據(jù)挖掘是數(shù)理統(tǒng)計(jì)的延伸和發(fā)展,如果一定要加以區(qū)分,它們又有哪些區(qū)別呢?數(shù)據(jù)挖掘在如下幾個(gè)方面與數(shù)理統(tǒng)計(jì)存在比較明顯的差異。數(shù)理統(tǒng)計(jì)的基礎(chǔ)之一就是概率論,在對(duì)數(shù)據(jù)進(jìn)行數(shù)理統(tǒng)計(jì)分析時(shí),分析人員常常需要對(duì)數(shù)據(jù)分布和變量間的關(guān)系作假設(shè),確定用什么概率函數(shù)來描述變量間的關(guān)系,以及如何檢驗(yàn)參數(shù)的統(tǒng)計(jì)顯著性。但是,在數(shù)據(jù)挖掘的應(yīng)用中,分析人員不需要對(duì)數(shù)據(jù)分布做任何假設(shè),數(shù)據(jù)挖掘中的算法會(huì)自動(dòng)尋找變量間的關(guān)系。因此,相對(duì)于海量、雜亂的數(shù)據(jù),數(shù)據(jù)挖掘技術(shù)有明顯的應(yīng)用優(yōu)勢(shì)。