機器學習與數(shù)據(jù)挖掘的關系
在大多數(shù)非計算機專業(yè)人士以及部分計算機專業(yè)背景人士眼中,機器學習(Data Mining)以及數(shù)據(jù)挖掘(Machine Learning)是兩個高深的領域。在筆者看來,這是一種過高”瞻仰“的習慣性錯誤理解(在這里我加了好多定語)。事實上,這兩個領域與計算機其他領域一樣都是在融匯理論和實踐的過程中不斷熟練和深入,不同之處僅在于滲透了更多的數(shù)學知識(主要是統(tǒng)計學),在后面的文章中我會努力將這些數(shù)學知識以一種更容易理解的方式講解給大家。本文從基本概念出發(fā)淺析他們的關系和異同,不講具體算法和數(shù)學公式。希望對大家能有所幫助。
幾個相關示例首先,給大家列舉一些生活中與數(shù)據(jù)挖掘、機器學習相關的應用示例以幫助大家更好的理解。
示例1(關聯(lián)問題):
經(jīng)常去超市的同學可能會發(fā)現(xiàn),我們事先在購物清單上列舉好的某些商品可能會被超市阿姨擺放在相鄰的區(qū)域。例如, 面包柜臺旁邊會擺上黃油、面條柜臺附近一定會有老干媽等等。這樣的物品擺放會讓我們的購物過程更加快捷、輕松。
那么如何知道哪些物品該擺放在一塊?又或者用戶在購買某一個商品的情況下購買另一個商品的概率有多大?這就要利用關聯(lián)數(shù)據(jù)挖掘的相關算法來解決。
示例2(分類問題):
在嘈雜的廣場上,身邊人來人往。仔細觀察他們的外貌、衣著、言行等我們會不自覺地斷論這個人是新疆人、東北人或者是上海人。又例如,在剛剛結束的2015NBA總決賽中,各類權威機構會大量分析騎士隊與勇士隊的歷史數(shù)據(jù)從而得出騎士隊或者勇士隊是否會奪冠的結論。
在上述第一個例子中,由于地域眾多,在對人進行地域分類的時候這是一個典型的多分類問題。而在第二個例子中各類機構預測勇士隊是否會戰(zhàn)勝騎士隊奪冠,這是一個二分類問題,其結果只有兩種。二分類問題在業(yè)界的出鏡率異常高,例如在推薦系統(tǒng)中預測一個人是否會買某個商品、其他諸如地震預測、火災預測等等。
示例3(聚類問題):
”物以類聚,人以群分“,生活中到處都有聚類問題的影子。假設銀行擁有若干客戶的歷史消費記錄,現(xiàn)在由于業(yè)務擴張需要新增幾款面對不同人群的理財產(chǎn)品,那么如何才能準確的將不同的理財產(chǎn)品通過電話留言的方式推薦給不同的人群?這便是一個聚類問題,銀行一般會將所有的用戶進行聚類,有相似特征的用戶屬于同一個類別,最后將不同理財產(chǎn)品推薦給相應類別的客戶。
示例4(回歸問題):
回歸問題或者稱作預測問題同樣也是一個生活中相當接地氣的應用。大家知道,證券公司會利用歷史數(shù)據(jù)對未來一段時間或者某一天的股票價格走勢進行預測。同樣,房地產(chǎn)商也會根據(jù)地域情況對不同面積樓層的房產(chǎn)進行定價預測。
上述兩個示例都是回歸問題的典型代表,這類問題往往根據(jù)一定的歷史數(shù)據(jù)對某一個指定條件下的目標預測一個實數(shù)值。
相信經(jīng)過上面通俗易懂的示例,大家應該初步了解數(shù)據(jù)挖掘以及機器學習會應用到哪些問題之上(這里列舉的四類問題是很常見的,當然還有例如異常檢測等應用),這就解決了面對一個新問題三要素中的Why。下面解釋什么是機器學習與數(shù)據(jù)挖掘(即What)以及他們的關系和異同點。
數(shù)據(jù)挖掘數(shù)據(jù)挖掘(Data mining),又譯為資料探勘、數(shù)據(jù)采礦。它是數(shù)據(jù)庫知識發(fā)現(xiàn)(英語:Knowledge-Discovery in Databases,簡稱:KDD)中的一個步驟。數(shù)據(jù)挖掘一般是指從大量的數(shù)據(jù)中通過算法搜索隱藏于其中信息的過程。數(shù)據(jù)挖掘通常與計算機科學有關,并通過統(tǒng)計、在線分析處理、情報檢索、機器學習、專家系統(tǒng)(依靠過去的經(jīng)驗法則)和模式識別等諸多方法來實現(xiàn)上述目標。
從上面的定義可以看出數(shù)據(jù)挖掘相對于機器學習而言是一個更加偏向應用的領域。實際上,數(shù)據(jù)挖掘是一門涉及面很廣的交叉學科,在處理各種問題時,只要我們清楚了業(yè)務邏輯那么就可以將問題轉換為挖掘問題。
數(shù)據(jù)挖掘的處理過程一般包括數(shù)據(jù)預處理(ETL、數(shù)據(jù)清洗、數(shù)據(jù)集成等),數(shù)據(jù)倉庫(可以是DBMS、大型數(shù)據(jù)倉庫以及分布式存儲系統(tǒng))與OLAP,使用各種算法(主要是機器學習的算法)進行挖掘以及最后的評估工作。
簡言之,數(shù)據(jù)挖掘是一系列的處理過程,最終的目的是從數(shù)據(jù)中挖掘出你想要的或者意外收獲的信息。下圖展示了數(shù)據(jù)挖掘的眾多應用領域。
機器學習
在上一節(jié),我們初步討論了數(shù)據(jù)挖掘的相關概念, 這一節(jié)我們繼續(xù)討論機器學習的基礎知識、學習方式、常用算法等。
機器學習這門學科所關注的問題是:計算機程序如何隨著經(jīng)驗積累自動提高性能。——Tom Mitchell
上述定義是Tom Mitchell在其著作《機器學習》中給出的定義。這個定義簡單明了但是卻蘊含了太多東西。
通俗的來將,我們寫一段程序讓計算機自己進行一個學習過程,直到達到一個滿意程度。那么學習的目的是什么?怎樣學習?滿意程度又是如何定義的呢?
通常,假設我們的目標是一個funcTIon f,我們會給計算機提供一定的訓練數(shù)據(jù)讓其進行學習訓練,每一次的學習會訓練出一個hypothesis h,當h和f隨著計算機不斷學習越來越接近時,就說h越來越達到滿意程度。而滿意程度的度量是用誤差e來度量的(針對不同情況有不同的方式)。更簡單的說,機器學習就是通過數(shù)據(jù)訓練找一個合適的目標函數(shù)的過程。而目前,機器學習學科應用到了大量的統(tǒng)計學知識,我們也稱其為統(tǒng)計機器學習。
下面給大家解釋一下必須知道的幾個概念。
學習方式根據(jù)數(shù)據(jù)類型的不同,對一個問題的建模有不同的方式。將算法按照學習方式分類是一個不錯的想法,這樣可以讓人們在建模和算法選擇的時候考慮能根據(jù)輸入數(shù)據(jù)來選擇最合適的算法來獲得最好的結果。在機器學習領域,有幾種主要的學習方式:
1.監(jiān)督學習(supervised learning)
在監(jiān)督式學習下,每組訓練數(shù)據(jù)有一個明確的標識或結果,如對人按地域分類中的“新疆”、“上海”、“東別”等屬于地域標識。在建立預測模型的時候,監(jiān)督式學習建立一個學習過程,將預測結果與“訓練數(shù)據(jù)”的實際結果進行比較,不斷的調(diào)整預測模型,直到模型的預測結果達到一個預期的準確率。
上述示例中的分類問題和回歸問題都屬于監(jiān)督學習范疇。其中常用的分類算法包括:決策樹分類法(Decision Tree)(參考我之前的文章),樸素貝葉斯分類算法(NaTIve Bayesian Classifier)、基于支持向量機(SVM)的分類器、神經(jīng)網(wǎng)絡法(Neural Network)、k-最近鄰法(k-nearest neighbor,kNN)等。
2.非監(jiān)督式學習(unsupervised learning)
在非監(jiān)督式學習中,數(shù)據(jù)并不被標識,學習模型是為了推斷出數(shù)據(jù)的一些內(nèi)在結構。前面四個示例中的關聯(lián)問題和聚類問題屬于非監(jiān)督學習的范疇。關聯(lián)問題中常見算法包括Apriori(該算法基于Spark的并行化算法參考我之前文章)、FP-Growth以及Eclat等,而聚類問題中最經(jīng)典的算法當屬k-Means。
3.半監(jiān)督式學習(semi-supervised learning)
在半監(jiān)督式學習學習方式下,輸入數(shù)據(jù)部分被標識,部分沒有被標識,這種學習模型可以用來進行預測,但是模型首先需要學習數(shù)據(jù)的內(nèi)在結構以便合理的組織數(shù)據(jù)來進行預測。應用場景包括分類和回歸,算法包括一些對常用監(jiān)督式學習算法的延伸,這些算法首先試圖對未標識數(shù)據(jù)進行建模,在此基礎上再對標識的數(shù)據(jù)進行預測。如圖論推理算法(Graph Inference)或者拉普拉斯支持向量機(Laplacian SVM.)等。
4.強化學習(reinforcement learning)
在這種學習模式下,輸入數(shù)據(jù)作為對模型的反饋,不像監(jiān)督模型那樣,輸入數(shù)據(jù)僅僅是作為一個檢查模型對錯的方式,在強化學習下,輸入數(shù)據(jù)直接反饋到模型,模型必須對此立刻作出調(diào)整。常見的應用場景包括動態(tài)系統(tǒng)以及機器人控制等。常見算法包括Q-Learning以及時間差學習(Temporal difference learning)
數(shù)據(jù)挖掘與機器學習的關系
在上面我們分別介紹了機器學習與數(shù)據(jù)挖掘的基本概念,應用,相關算法等內(nèi)容。接下來繼續(xù)討論兩者的關系與異同。
統(tǒng)計學——1749年
人工智能——1940年
機器學習——1946年
數(shù)據(jù)挖掘——1980年
從歷史的發(fā)展可以看出數(shù)據(jù)挖掘是一門新興學科,其建立在強有力的知識體系之上,使用了大量的機器學習算法,同時根據(jù)上一節(jié)的敘述,數(shù)據(jù)挖掘也使用了一系列的工程技術。而機器學習則是以統(tǒng)計學為支撐的一門偏理論的學科,其不需要考慮諸如數(shù)據(jù)倉庫,OLAP等應用工程技術。
總結機器學習是一門更加偏向理論性學科,其目的是為了讓計算機不斷學習找到接近目標函數(shù)f的假設h。而數(shù)據(jù)挖掘則是使用了包括機器學習算法在內(nèi)的眾多知識的一門應用學科,它主要是使用一系列處理方法挖掘數(shù)據(jù)背后的信息。





