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

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