1. 程式人生 > >各種機器學習的優缺點及應用場景

各種機器學習的優缺點及應用場景

在我們日常生活中所用到的推薦系統、智慧圖片美化應用和聊天機器人等應用中,各種各樣的機器學習和資料處理演算法正盡職盡責地發揮著自己的功效。本文篩選並簡單介紹了一些最常見演算法類別,還為每一個類別列出了一些實際的演算法並簡單介紹了它們的優缺點。



目錄

  • 正則化演算法(Regularization Algorithms)

  • 整合演算法(Ensemble Algorithms)

  • 決策樹演算法(Decision Tree Algorithm)

  • 迴歸(Regression)

  • 人工神經網路(Artificial Neural Network)

  • 深度學習(Deep Learning)

  • 支援向量機(Support Vector Machine)

  • 降維演算法(Dimensionality Reduction Algorithms)

  • 聚類演算法(Clustering Algorithms)

  • 基於例項的演算法(Instance-based Algorithms)

  • 貝葉斯演算法(Bayesian Algorithms)

  • 關聯規則學習演算法(Association Rule Learning Algorithms)

  • 圖模型(Graphical Models)

正則化演算法(Regularization Algorithms)


它是另一種方法(通常是迴歸方法)的拓展,這種方法會基於模型複雜性對其進行懲罰,它喜歡相對簡單能夠更好的泛化的模型。

例子:

  • 嶺迴歸(Ridge Regression)

  • 最小絕對收縮與選擇運算元(LASSO)

  • GLASSO

  • 彈性網路(Elastic Net)

  • 最小角迴歸(Least-Angle Regression)

優點:

  • 其懲罰會減少過擬合

  • 總會有解決方法

缺點:

  • 懲罰會造成欠擬合

  • 很難校準

整合演算法(Ensemble algorithms)


整合方法是由多個較弱的模型整合模型組,其中的模型可以單獨進行訓練,並且它們的預測能以某種方式結合起來去做出一個總體預測。

該演算法主要的問題是要找出哪些較弱的模型可以結合起來,以及結合的方法。這是一個非常強大的技術集,因此廣受歡迎。

  • Boosting

  • Bootstrapped Aggregation(Bagging)

  • AdaBoost

  • 層疊泛化(Stacked Generalization)(blending)

  • 梯度推進機(Gradient Boosting Machines,GBM)

  • 梯度提升迴歸樹(Gradient Boosted Regression Trees,GBRT)

  • 隨機森林(Random Forest)

優點:

  • 當先最先進的預測幾乎都使用了演算法整合。它比使用單個模型預測出來的結果要精確的多

缺點:

  • 需要大量的維護工作

決策樹演算法(Decision Tree Algorithm)


決策樹學習使用一個決策樹作為一個預測模型,它將對一個 item(表徵在分支上)觀察所得對映成關於該 item 的目標值的結論(表徵在葉子中)。

樹模型中的目標是可變的,可以採一組有限值,被稱為分類樹;在這些樹結構中,葉子表示類標籤,分支表示表徵這些類標籤的連線的特徵。

例子:

  • 分類和迴歸樹(Classification and Regression Tree,CART)

  • Iterative Dichotomiser 3(ID3)

  • C4.5 和 C5.0(一種強大方法的兩個不同版本)

優點:

  • 容易解釋

  • 非引數型

缺點:

  • 趨向過擬合

  • 可能或陷於區域性最小值中

  • 沒有線上學習

迴歸(Regression)演算法


迴歸是用於估計兩種變數之間關係的統計過程。當用於分析因變數和一個 多個自變數之間的關係時,該演算法能提供很多建模和分析多個變數的技巧。具體一點說,迴歸分析可以幫助我們理解當任意一個自變數變化,另一個自變數不變時,因變數變化的典型值。最常見的是,迴歸分析能在給定自變數的條件下估計出因變數的條件期望。

迴歸演算法是統計學中的主要演算法,它已被納入統計機器學習。

例子:

  • 普通最小二乘迴歸(Ordinary Least Squares Regression,OLSR)

  • 線性迴歸(Linear Regression)

  • 邏輯迴歸(Logistic Regression)

  • 逐步迴歸(Stepwise Regression)

  • 多元自適應迴歸樣條(Multivariate Adaptive Regression Splines,MARS)

  • 本地散點平滑估計(Locally Estimated Scatterplot Smoothing,LOESS)

優點:

  • 直接、快速

  • 知名度高

缺點:

  • 要求嚴格的假設

  • 需要處理異常值

人工神經網路


人工神經網路是受生物神經網路啟發而構建的演算法模型。

它是一種模式匹配,常被用於迴歸和分類問題,但擁有龐大的子域,由數百種演算法和各類問題的變體組成。

例子:

  • 感知器

  • 反向傳播

  • Hopfield 網路

  • 徑向基函式網路(Radial Basis Function Network,RBFN)

優點:

  • 在語音、語義、視覺、各類遊戲(如圍棋)的任務中表現極好。

  • 演算法可以快速調整,適應新的問題。

缺點:

需要大量資料進行訓練

訓練要求很高的硬體配置

模型處於「黑箱狀態」,難以理解內部機制

元引數(Metaparameter)與網路拓撲選擇困難。

深度學習(Deep Learning)


深度學習是人工神經網路的最新分支,它受益於當代硬體的快速發展。

眾多研究者目前的方向主要集中於構建更大、更復雜的神經網路,目前有許多方法正在聚焦半監督學習問題,其中用於訓練的大資料集只包含很少的標記。

例子:

  • 深玻耳茲曼機(Deep Boltzmann Machine,DBM)

  • Deep Belief Networks(DBN)

  • 卷積神經網路(CNN)

  • Stacked Auto-Encoders

優點/缺點:見神經網路

支援向量機(Support Vector Machines)


給定一組訓練事例,其中每個事例都屬於兩個類別中的一個,支援向量機(SVM)訓練演算法可以在被輸入新的事例後將其分類到兩個類別中的一個,使自身成為非概率二進位制線性分類器。

SVM 模型將訓練事例表示為空間中的點,它們被對映到一幅圖中,由一條明確的、儘可能寬的間隔分開以區分兩個類別。

隨後,新的示例會被對映到同一空間中,並基於它們落在間隔的哪一側來預測它屬於的類別。

優點:

在非線性可分問題上表現優秀

缺點:

  • 非常難以訓練

  • 很難解釋

降維演算法(Dimensionality Reduction Algorithms)


和集簇方法類似,降維追求並利用資料的內在結構,目的在於使用較少的資訊總結或描述資料。

這一演算法可用於視覺化高維資料或簡化接下來可用於監督學習中的資料。許多這樣的方法可針對分類和迴歸的使用進行調整。

例子:

  • 主成分分析(Principal Component Analysis (PCA))

  • 主成分迴歸(Principal Component Regression (PCR))

  • 偏最小二乘迴歸(Partial Least Squares Regression (PLSR))

  • Sammon 對映(Sammon Mapping)

  • 多維尺度變換(Multidimensional Scaling (MDS))

  • 投影尋蹤(Projection Pursuit)

  • 線性判別分析(Linear Discriminant Analysis (LDA))

  • 混合判別分析(Mixture Discriminant Analysis (MDA))

  • 二次判別分析(Quadratic Discriminant Analysis (QDA))

  • 靈活判別分析(Flexible Discriminant Analysis (FDA))

優點:

  • 可處理大規模資料集

  • 無需在資料上進行假設

缺點:

  • 難以搞定非線性資料

  • 難以理解結果的意義

聚類演算法(Clustering Algorithms)


聚類演算法是指對一組目標進行分類,屬於同一組(亦即一個類,cluster)的目標被劃分在一組中,與其他組目標相比,同一組目標更加彼此相似(在某種意義上)。

例子:

  • K-均值(k-Means)

  • k-Medians 演算法

  • Expectation Maximi 封層 ation (EM)

  • 最大期望演算法(EM)

  • 分層叢集(Hierarchical Clstering)

優點:

  • 讓資料變得有意義

缺點:

  • 結果難以解讀,針對不尋常的資料組,結果可能無用。

基於例項的演算法(Instance-based Algorithms)


基於例項的演算法(有時也稱為基於記憶的學習)是這樣學 習演算法,不是明確歸納,而是將新的問題例子與訓練過程中見過的例子進行對比,這些見過的例子就在儲存器中。

之所以叫基於例項的演算法是因為它直接從訓練例項中建構出假設。這意味這,假設的複雜度能隨著資料的增長而變化:最糟的情況是,假設是一個訓練專案列表,分類一個單獨新例項計算複雜度為 O(n)

例子:

  • K 最近鄰(k-Nearest Neighbor (kNN))

  • 學習向量量化(Learning Vector Quantization (LVQ))

  • 自組織對映(Self-Organizing Map (SOM))

  • 區域性加權學習(Locally Weighted Learning (LWL))

優點:

  • 演算法簡單、結果易於解讀

缺點:

  • 記憶體使用非常高

  • 計算成本高

  • 不可能用於高維特徵空間

貝葉斯演算法(Bayesian Algorithms)


貝葉斯方法是指明確應用了貝葉斯定理來解決如分類和迴歸等問題的方法。

例子:

  • 樸素貝葉斯(Naive Bayes)

  • 高斯樸素貝葉斯(Gaussian Naive Bayes)

  • 多項式樸素貝葉斯(Multinomial Naive Bayes)

  • 平均一致依賴估計器(Averaged One-Dependence Estimators (AODE))

  • 貝葉斯信念網路(Bayesian Belief Network (BBN))

  • 貝葉斯網路(Bayesian Network (BN))

優點:

快速、易於訓練、給出了它們所需的資源能帶來良好的表現

缺點:

  • 如果輸入變數是相關的,則會出現問題

關聯規則學習演算法(Association Rule Learning Algorithms)


關聯規則學習方法能夠提取出對資料中的變數之間的關係的最佳解釋。比如說一家超市的銷售資料中存在規則 {洋蔥,土豆}=> {漢堡},那說明當一位客戶同時購買了洋蔥和土豆的時候,他很有可能還會購買漢堡肉。

例子:

  • Apriori 演算法(Apriori algorithm)

  • Eclat 演算法(Eclat algorithm)

  • FP-growth

圖模型(Graphical Models)


圖模型或概率圖模型(PGM/probabilistic graphical model)是一種概率模型,一個圖(graph)可以通過其表示隨機變數之間的條件依賴結構(conditional dependence structure)。

例子:

  • 貝葉斯網路(Bayesian network)

  • 馬爾可夫隨機域(Markov random field)

  • 鏈圖(Chain Graphs)

  • 祖先圖(Ancestral graph)

優點:

  • 模型清晰,能被直觀地理解

缺點:

  • 確定其依賴的拓撲很困難,有時候也很模糊

相關推薦

各種機器學習優缺點應用場景

在我們日常生活中所用到的推薦系統、智慧圖片美化應用和聊天機器人等應用中,各種各樣的機器學習和資料處理演算法正盡職盡責地發揮著自己的功效。本文篩選並簡單介紹了一些最常見演算法類別,還為每一個類別列出了一些實際的演算法並簡單介紹了它們的優缺點。 目錄 正則化演算法(Re

memcache和redis、Mongodb優缺點應用場景

1.mongodb 埠(27017) (1)是文件型的非關係型資料庫,使用bson結構。其優勢在於查詢功能比較強大,能儲存海量資料,缺點是比較消耗記憶體。 (2)一般可以用來存放評論等半結構化資料,支援二級索引。 適合儲存json型別資料,不經常變化。 優點: l  

機器學習”小憩“——總結應用場景

常見的機器學習模型:感知機,線性迴歸,邏輯迴歸,支援向量機,決策樹,隨機森林,GBDT,XGBoost,貝葉斯,KNN,K-means等; 常見的機器學習理論:過擬合問題,交叉驗證問題,模型選擇問題,模型融合問題等; K近鄰:演算法採用測量不同特徵值之間的距離的方法進行分

lvs,nginx,haproxy負載均衡軟體優缺點應用場景

Nginx/LVS/HAProxy的基於Linux的開源免費的負載均衡軟體。LVS:使用叢集技術和Linux作業系統實現一個高效能、高可用的伺服器,它具有很好的可伸縮性、可靠性和可管理性,是一款強大實用的開源軟體。LVS的優點:1:抗負載能力強、是工作在網路4層之上僅作分發之

新手學習Linux——NFS應用場景環境搭建

log 創建 watermark 51cto 輸入 ado dir ins 共享目錄 以上為解釋神圖。 ———————————————————分割線———————————————————一、接下來我們的操作在服務端進行。1、首先準備兩臺配置好IP地址和yum源的虛擬機。 2

java第九天---多型、抽象類、介面、各種修飾符的作用應用場景、內部類

1   什麼叫多型     某一個事物,在不同時刻表現出來的不同狀態。貓可以是貓的型別。貓 m = new 貓();  同時貓也是動物的一種,也可以把貓稱為動物。動物 d = new 貓(); 2   多型的前提    

監督學習演算法的應用場景優缺點

轉自簡書-劉開心_8a6c 記錄一波監督學習演算法的應用場景和優缺點。 高斯樸素貝葉斯 場景:該模型常用於性別分類,即通過一些測量的特徵,包括身高、體重、腳的尺寸,判定一個人是男性還是女性。 優點:這個模型的優勢是處理連續資料,特別當資料是高斯分佈時,有一個很好的表現。處理連續資

Docker 學習筆記(一) docker特點應用場景

 在我們討論Docker的使用場景之前,先來看看Docker這個工具有什麼特別的地方吧。 Docker提供了輕量級的虛擬化,它幾乎沒有任何額外開銷,這個特性非常酷。 首先你在享有Docker帶來的虛擬化能力的時候無需擔心它帶來的額外開銷。其次,相比於虛擬機器,你可以在

各種機器學習演算法的優缺點(轉知乎)

##各種演算法的優缺點 ###K近鄰:演算法採用測量不同特徵值之間的距離的方法進行分類。 優點: 1.簡單好用,容易理解,精度高,理論成熟,既可以用來做分類也可以用來做迴歸; 2.可用於數值型資料和離散型資料; 3.訓練時間複雜度為O(n);無資料輸入假定; 4

.net各種設計模式應用場景

本文章只做各種設計模式應用場景的記錄,不提供相關程式碼及demo,只為方便在工作中遇到相關場景是能方便查閱!   以下內容均為個人見解,如有不當之處還請給予指正、相互交流   一,橋接模式: 將抽象化與實現化拖耦,使二者可獨立的變化。常應用在多維度上都會有變化或擴充的需求專案中,

詳細分析HFSS、ADS、CST各自優缺點應用範圍,看看你到底應該學習哪種模擬?

原網址:http://rf.eefocus.com/module/forum/thread-552576-1-1.html 好多RF工程師初學者一直問:我應該學習那種模擬工具呢?從哪個入手更簡單一點兒?我想這個不能用學習的難易程度來決定學習哪一個,而是應該根據

各種機器學習分類模型的優缺點

KNN: 依賴資料,無數學模型可言。適用於可容易解釋的模型。 對異常值敏感,容易受到資料不平衡的影響。 Bayesian: 基於條件概率, 適用於不同維度之間相關性較小的時候,比較容易解釋。也適合增量訓練,不必要再重算一遍。應用:垃圾郵件處理。 Decision

淺談session,cookie,sessionStorage,localStorage的區別應用場景

text 響應 font 會話 安全 path 時間 mage 路徑 瀏覽器的緩存機制提供了可以將用戶數據存儲在客戶端上的方式,可以利用cookie,session等跟服務端進行數據交互。 一、cookie和session cookie和session都是用來跟蹤瀏覽器用戶

順序表和鏈表的優缺點使用場景

sla rtl logs info dvd www. www html phy 54nksi藤興痘苑挖慕http://t.docin.com/mfcd951rfnjeo址人仙棺攣刻http://weibo.com/u/618911099514181s苛吩纖憾勒俸http:/

斯坦福2014機器學習筆記七----應用機器學習的建議

訓練集 image 是的 bsp 推斷 學習曲線 正則 偏差 wid 一、綱要   糾正較大誤差的方法   模型選擇問題之目標函數階數的選擇   模型選擇問題之正則化參數λ的選擇   學習曲線 二、內容詳述   1、糾正較大誤差的方法   當我們運用訓練好了的模型來做預測時

R語言進行機器學習方法實例

最近鄰 ridge glog 原始的 默認值 ria er模型 不能 預測概率 機器學習的研究領域是發明計算機算法,把數據轉變為智能行為。機器學習和數據挖掘的區別可能是機器學習側重於執行一個已知的任務,而數據發掘是在大數據中尋找有價值的東西。 機器學習一般

NodeJS優缺點適用場景討論

ase cli comm sta 什麽 問題 clas 任務 官網 NodeJS優缺點及適用場景討論 概述:NodeJS宣稱其目標是“旨在提供一種簡單的構建可伸縮網絡程序的方法”,那麽它的出現是為了解決什麽問題呢,它有什麽優缺點以及它適用於什麽場景呢? 本文就個人使用經驗對

Java設計模式之《單例模式》應用場景

urn vol 運行 www 同步問題 href 外部 占用 模式 轉載參考:http://www.cnblogs.com/V1haoge/p/6510196.html 所謂單例,指的就是單實例,有且僅有一個類實例,這個單例不應該由人來控制,而應該由代碼來限制,強制單例。

Java設計模式之《外觀模式》應用場景

nbsp str 之間 系統設計 static 系統 被調用 sub div 轉載參考:http://www.cnblogs.com/V1haoge/p/6484128.html 1、外觀模式簡介   外觀模式,一般用在子系統與訪問之間,用於對訪問屏蔽復雜的子系統調用,采用

Docker五種存儲驅動原理應用場景和性能測試對比

Docker 存儲驅動 Docker最開始采用AUFS作為文件系統,也得益於AUFS分層的概念,實現了多個Container可以共享同一個image。但由於AUFS未並入Linux內核,且只支持Ubuntu,考慮到兼容性問題,在Docker 0.7版本中引入了存儲驅動, 目前,Docker支持AUFS