機器學習:算法介紹

這篇文章介紹幾個最流行的機器學習算法。現在有很多機器學習算法,困難的是進行方法歸類,這裏我們介紹兩種方法進行思考和分類這些算法。第一組算法是學習風格,第二組是在形式和功能上類似。

學習風格

  一個算法基於問題建模有不同的方法,無論這個問題是基於經驗或環境的交互,或者是基於我們需要輸入的數據,學習風格是機器學習首先必須考慮的問題。

  下面我們看看一些算法的主要學習風格或者稱爲學習模型。

  • Supervised Learning有監督式學習: 輸入的數據被稱爲訓練數據,一個模型需要通過一個訓練過程,在這個過程中進行預期判斷,如果錯誤了再進行修正,訓練過程一直持續到基於訓練數據達到預期的精確性。其關鍵方法是分類和迴歸,算法是邏輯迴歸(Logistic Regression)和BP神經網絡(Back Propagation Neural Network)

  • Unsupervised Learning無監督學習: 沒有任何訓練數據,基於沒有標記的輸入數據採取推導結構的模型,其關鍵方式是關聯規則學習和聚合,算法有Apriori 算法和k-means.


  • Semi-Supervised Learning半監督式學習: 輸入數據是標記和非標記的混合案例,模型必須學習其中結構然後按照預期組織數據,其關鍵方法是分類和迴歸。


  • 強化學習:模型必須能從一個環境刺激中進行應對和反應。反饋不會作爲一個教學過程的形式,但是可以環境的獎懲。其關鍵方法是系統和機器人控制。算法有Q-learning和Temporal difference learning。

  當爲了商業決策建模而處理數據時,你通常使用監督和無監督學習方法。目前的一個熱點話題是圖像分類等領域的半監督學習,很少有標記的例子大型數據集的方法。強化學習是更容易在機器人控制與其他控制系統等領域有應用。

 

分類算法

  分類是找出數據庫中的一組數據對象的共同特點並按照分類模式將其劃分爲不同的類,其目的是通過分類模型,將數據庫中的數據項映射到摸個給定的類別中。可以應用到涉及到應用分類、趨勢預測中,如淘寶商鋪將用戶在一段時間內的購買情況劃分成不同的類,根據情況向用戶推薦關聯類的商品,從而增加商鋪的銷售量。

空間覆蓋算法-基於球鄰域的空間劃分

空間覆蓋算法-仿生模式識別

空間覆蓋算法-視覺分類方法

VCA把數據看作一幅圖像,核心是基於尺度空間理論,選擇合適的尺度使得同類樣本區域融合在一起。

 

分類超曲面算法HSC

  設訓練樣本所在空間爲一封閉維方體區域,將此區域按照一定細分規則劃分成若干小區域,使每個小區域只包含同一類樣本點,並用樣本點的類別標定該區域,合併相鄰同類區域邊界,獲得若干超平面片封閉組成的分類超曲面。輸入新樣本點,根據分類判別定理判斷樣本點所在的類別。

特點:

  1. 通過特徵區域細化直接解決非線性分類問題,不需要考慮使用何種函數,不需要升維變換。
  2. 通用可操作的分類超曲面構造法,基於分類超曲面的方法通過區域合併計算獲得分類超曲面對空間進行劃分
  3. 獨特、簡便、易行的分類判別方法,基於分類超曲面的方法是基於Jordan定理的分類判斷算法,使得基於非凸的超曲面的分類判別變得簡便、易行。

 

極小覆蓋子集

  覆蓋型分類算法的極小覆蓋子集——對特定的訓練樣本集,若其子樣本集訓練後得到的分類模型與與原樣本集訓練後得到的分類模型相同,則稱子樣本集是原樣本集的一個覆蓋。在一個樣本集的所有覆蓋中,包含樣本個數最少的覆蓋稱爲樣本集的極小覆蓋子集。

  (1)計算極小覆蓋子集的基本步驟:

  用一個方形區域覆蓋所有樣本點;將該區域劃分成一系列小區域 (單元格),直到每個小區域內包含的樣本點都屬於同一類別;將落在同一小區域內的樣本點中選擇且僅選擇一個樣本構成極小覆蓋子集。

  (2)採樣受限於極小覆蓋子集

  全樣本空間必然包含極小覆蓋子集,任意一個數據集未必包含完整的極小覆蓋子集。大數據環境下,極小覆蓋子集中的樣本更多地包含在大數據中,較多的數據可以戰勝較好的算法、再多的數據亦不會超過極小覆蓋子集的代表性、再好的提升手段亦不會超過極小覆蓋子集確定的精度。

 

相似度算法

  算法通常在功能或形式上呈現一定相似度。例如,基於樹的方法和神經網絡方法的啓發。這是一個有用的分組方法,但它是不完美的。仍然有一些算法容易地融入多個類別,如學習矢量量化Learning Vector Quantization,它既是一個神經網絡的啓發方法又是一個基於實例的方法的算法。

  也有一些描述問題域和算法類別上有相同名稱的算法,如迴歸分析和聚合。因此,像機器學習算法本身一樣,沒有完美的模型,只有適合的模型。

下面我們陳列出一些流行的機器學習算法。

 

Regression迴歸

  迴歸是關注變量之間關係的建模,利用模型預測誤差測量進行反覆提煉。迴歸方法是統計工作,已納入統計機器學習。這可能是令人困惑,因爲我們可以用迴歸來引用各類的問題及各類算法。迴歸其實是一個過程。

  在市場營銷中,迴歸分析可以被應用到各個方面。如通過對本季度銷售的迴歸分析,對下一季度的銷售趨勢作出預測並做出針對性的營銷改變。

  一些示例算法是:

  • Ordinary Least Squares普通最小二乘法
  • Logistic Regression邏輯迴歸
  • Stepwise Regression逐步迴歸
  • Multivariate Adaptive Regression Splines (MARS)多元自適應迴歸
  • Locally Estimated Scatterplot Smoothing (LOESS)本地散點平滑估計

基於實例的方法

  基於實例的學習模型是使用那些對於模型很重要訓練數據,這類方法通常使用基於示例數據的數據庫,用新數據和數據庫數據以一種相似度方式從中找到最佳匹配,從而作出預測。出於這個原因,基於實例的方法也被稱爲贏家通吃所有的方法和基於記憶的學習。重點放在存儲實例之間的相似性度量表現上。

  • k-Nearest Neighbour (kNN)
  • Learning Vector Quantization (LVQ)學習矢量量化
  • Self-Organizing Map (SOM)自組織映射算法

 

Regularization正則化方法

  正則化方法是其他算法(迴歸算法)的延伸,根據算法的複雜度對算法進行調整。正則化方法通常對簡單模型予以獎勵而對複雜算法予以懲罰。基於正則化方法的擴展 (典型是基於regression迴歸方法) 可能比較複雜,越簡單可能會利於推廣,下面列出的正則化方法是因爲它們比較流行 強大簡單。

  • Ridge Regression嶺迴歸數值計算方法
  • Least Absolute Shrinkage and Selection Operator (LASSO)至少絕對的收縮和選擇算子
  • Elastic Net彈性網絡

 

決策(Decision)樹學習

  決策樹方法是建立一種基於數據的實際屬性值的決策模型。決策使用樹型結構直至基於一個給定記錄的預測決策得到。決策樹的訓練是在分類和迴歸兩方面的數據上進行的。

  • Classification and Regression Tree (CART)分類迴歸樹
  • Iterative Dichotomiser 3 (ID3)迭代二叉樹3代
  • C4.5
  • Chi-squared Automatic Interaction Detection (CHAID)卡方自動交互檢測
  • Decision Stump單層決策樹
  • Random Forest隨機森林
  • Multivariate Adaptive Regression Splines (MARS)多元自適應迴歸樣條
  • Gradient Boosting Machines (GBM)梯度推進機

決策樹

 

Bayesian貝葉斯

貝葉斯方法是明確使用貝葉斯定理進行分類和迴歸:

  • Naive Bayes樸素貝葉斯
  • Averaged One-Dependence Estimators (AODE)平均單依賴估計
  • Bayesian Belief Network (BBN)貝葉斯信念網絡

 

Kernel Methods內核方法

Kernel Methods最有名的流行的支持向量機的方法, Kernel Methods更關注將數據映射到高維空間向量,在那裏可以進行一些分類或迴歸問題的建模。

  • Support Vector Machines (SVM)支持向量機
  • Radial Basis Function (RBF)徑向基函數
  • Linear Discriminate Analysis (LDA)線性鑑別分析

 

聚類Clustering方法

  Clustering聚類方法, 類似迴歸,是屬於描述問題和方法的類別,聚集方法通常被建模於基於幾何中心centroid-based和層次組織等系統。所有的方法都是有關使用數據中固有的結構,這樣以便更好將數據組織爲存在最大共性的分組。

  聚類類似於分類,但與分類的目的不同,是針對數據的相似性和差異性將一組數據分爲幾個類別。屬於同一類別的數據間的相似性很大,但不同類別之間數據的相似性很小,跨類的數據關聯性很低。

  • k-Means
  • Expectation Maximisation (EM)期望最大化算法

聚類

關聯規則學習

  關聯規則的學習方法是提取那些能解釋觀察到的變量之間的數據關係的規則。這些規則可以用於在大型多維數據集裏,以便能發現重要的和商業上對某個組織或公司有用的的關聯。

  關聯規則的挖掘過程主要包括兩個階段:第一階段爲從海量原始數據中找出所有的高頻項目組;第二極端爲從這些高頻項目組產生關聯規則。關聯規則挖掘技術已經被廣泛應用於金融行業企業中用以預測客戶的需求,各銀行在自己的ATM 機上通過捆綁客戶可能感興趣的信息供用戶瞭解並獲取相應信息來改善自身的營銷。

  • Apriori 算法
  • Eclat 算法

 

人工神經網絡

  人工神經網絡模型的靈感來自於生物神經網絡的結構和功能。他們是一類的模式匹配,常用於迴歸和分類問題。

  神經網絡作爲一種先進的人工智能技術,因其自身自行處理、分佈存儲和高度容錯等特性非常適合處理非線性的以及那些以模糊、不完整、不嚴密的知識或數據爲特徵的處理問題,它的這一特點十分適合解決數據挖掘的問題。典型的神經網絡模型主要分爲三大類:第一類是以用於分類預測和模式識別的前饋式神經網絡模型,其主要代表爲函數型網絡、感知機;第二類是用於聯想記憶和優化算法的反饋式神經網絡模型,以Hopfield 的離散模型和連續模型爲代表。第三類是用於聚類的自組織映射方法,以ART 模型爲代表。雖然神經網絡有多種模型及算法,但在特定領域的數據挖掘中使用何種模型及算法並沒有統一的規則,而且人們很難理解網絡的學習及決策過程

  因爲各種各樣的問題類型有數百種分支的算法。一些經典的流行的方法:

  • Perceptron感知器神經網絡
  • Back-Propagation反向傳遞
  • Hopfield Network(Hopfield網絡)
  • Self-Organizing Map (SOM)自組織映射
  • Learning Vector Quantization (LVQ)學習矢量量化

深度學習

  深度學習方法是一個現代的人工神經網絡方法升級版,利用豐富而又廉價的計算,建立更大和更復雜的神經網絡,許多方法都是涉及半監督學習(大型數據中包含很少有標記的數據)。

  • Restricted Boltzmann Machine (RBM)受限波爾茲曼機
  • Deep Belief Networks (DBN)深度信念網絡
  • Convolutional Network迴旋神經網
  • Stacked Auto-encoders堆棧式自動編碼器

Dimensionality Reduction降維方法

  類似羣集clustering方法, 降維是尋求和利用數據的內在結構,但在這種情況下,使用無監督的方式只能較少的信息總結或描述數據。以監督方式使用是有用的,能形成可視化的三維數據或簡化數據。

  • Principal Component Analysis (PCA)主成分分析
  • Partial Least Squares Regression (PLS)偏最小二乘迴歸
  • Sammon Mapping
  • Multidimensional Scaling (MDS)多維尺度
  • Projection Pursuit投影尋蹤

 

Ensemble集成方法

  集成方法是由多個獨立訓練的弱模型組成,這些模型以某種方式結合進行整體預測。大量的精力需要投入學習什麼弱類型以及它們的組合方式。這是一個非常強大的很受歡迎的技術類別:

  • Boosting
  • Bootstrapped Aggregation (Bagging)自展輸入引導式聚合
  • AdaBoost
  • Stacked Generalization (blending)堆棧泛化
  • Gradient Boosting Machines (GBM)梯度Boosting機器
  • Random Forest隨機森林

弱者是灰色的,組合預測是紅色的。具體顯示的是溫度/臭氧數據.


其他資源

這趟機器學習算法之旅意在讓你對有什麼算法和關聯算法的一些工具給你一個總體瞭解。

下面是一些其他資源, 請不要覺得太多,瞭解越多算法對你越有好處,但是對某些算法有深層次的瞭解也會很有用。

我希望你覺得這趟旅行對你有意,如果有任何問題或建議,都歡迎留言。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章