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