1. 程式人生 > >機器學習”小憩“——總結應用場景

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

常見的機器學習模型:感知機,線性迴歸,邏輯迴歸,支援向量機,決策樹,隨機森林,GBDT,XGBoost,貝葉斯,KNN,K-means等;

常見的機器學習理論:過擬合問題,交叉驗證問題,模型選擇問題,模型融合問題等;

K近鄰:演算法採用測量不同特徵值之間的距離的方法進行分類。

優點:

1.簡單好用,容易理解,精度高,理論成熟,既可以用來做分類也可以用來做迴歸;

2.可用於數值型資料和離散型資料;

3.訓練時間複雜度為O(n);無資料輸入假定;

4.對異常值不敏感

缺點:

1.計算複雜性高;空間複雜性高;

2.樣本不平衡問題(即有些類別的樣本數量很多,而其它樣本的數量很少);

3.一般數值很大的時候不用這個,計算量太大。但是單個樣本又不能太少 否則容易發生誤分。

4.最大的缺點是無法給出資料的內在含義。

樸素貝葉斯

優點:

1.生成式模型,通過計算概率來進行分類,可以用來處理多分類問題,

2.對小規模的資料表現很好,適合多分類任務,適合增量式訓練,演算法也比較簡單。

缺點:

1.對輸入資料的表達形式很敏感,

2.由於樸素貝葉斯的“樸素”特點,所以會帶來一些準確率上的損失。需要一個比較容易解釋,而且不同維度之間相關性較小的模型的時候。

3.需要計算先驗概率,分類決策存在錯誤率。

決策樹

優點:

1.概念簡單,計算複雜度不高,可解釋性強,輸出結果易於理解;

2.資料的準備工作簡單, 能夠同時處理資料型和常規型屬性,其他的技術往往要求資料屬性的單一。

3.對中間值得確實不敏感,比較適合處理有缺失屬性值的樣本,能夠處理不相關的特徵;

4.應用範圍廣,可以對很多屬性的資料集構造決策樹,可擴充套件性強。決策樹可以用於不熟悉的資料集合,並從中提取出一些列規則 這一點強於KNN。

缺點

1.容易出現過擬合;

2.對於那些各類別樣本數量不一致的資料,在決策樹當中,資訊增益的結果偏向於那些具有更多數值的特徵。

3. 資訊缺失時處理起來比較困難。 忽略資料集中屬性之間的相關性。

4.同時它也是相對容易被攻擊的分類器。這裡的攻擊是指人為的改變一些特徵,使得分類器判斷錯誤

隨機森林

嚴格來說,隨機森林其實算是一種整合演算法。它首先隨機選取不同的特徵(feature)和訓練樣本(training sample),生成大量的決策樹,然後綜合這些決策樹的結果來進行最終的分類。

隨機森林在現實分析中被大量使用,它相對於決策樹,在準確性上有了很大的提升,同時一定程度上改善了決策樹容易被攻擊的特點。

適用情景:

資料維度相對低(幾十維),同時對準確性有較高要求時。

因為不需要很多引數調整就可以達到不錯的效果,基本上不知道用什麼方法的時候都可以先試一下隨機森林。

Svm

優點:

1.可用於線性/非線性分類,也可以用於迴歸,泛化錯誤率低,計算開銷不大,結果容易解釋;

2.可以解決小樣本情況下的機器學習問題,可以解決高維問題 可以避免神經網路結構選擇和區域性極小點問題。

3.SVM是最好的現成的分類器,現成是指不加修改可直接使用。並且能夠得到較低的錯誤率,SVM可以對訓練集之外的資料點做很好的分類決策。

4.SVM儘量保持與樣本間距離的性質導致它抗攻擊的能力更強。

缺點:對引數調節和和函式的選擇敏感,原始分類器不加修改僅適用於處理二分類問題。

Logistic迴歸:根據現有資料對分類邊界線建立迴歸公式,依次進行分類。

優點:實現簡單,易於理解和實現;計算代價不高,速度很快,儲存資源低;

缺點:容易欠擬合,分類精度可能不高

EM 期望最大化演算法-上帝演算法

只要有一些訓練資料,再定義一個最大化函式,採用EM演算法,利用計算機經過若干次迭代,就可以得到所需的模型。EM演算法是自收斂的分類演算法,既不需要事先設定類別也不需要資料見的兩兩比較合併等操作。缺點是當所要優化的函式不是凸函式時,EM演算法容易給出區域性最佳解,而不是最優解。

判別分析 (Discriminant analysis)

LDA的核心思想是把高維的樣本投射(project)到低維上,如果要分成兩類,就投射到一維。要分三類就投射到二維平面上。這樣的投射當然有很多種不同的方式,LDA投射的標準就是讓同類的樣本儘量靠近,而不同類的儘量分開。對於未來要預測的樣本,用同樣的方式投射之後就可以輕易地分辨類別了。

使用情景:

判別分析適用於高維資料需要降維的情況,自帶降維功能使得我們能方便地觀察樣本分佈。它的正確性有數學公式可以證明,所以同樣是很經得住推敲的方式。

但是它的分類準確率往往不是很高,所以不是統計系的人就把它作為降維工具用吧。

同時注意它是假定樣本成正態分佈的,所以那種同心圓形的資料就不要嘗試了。

機器 學習常見演算法

機器學習領域涉及到很多的演算法和模型,這裡遴選一些常見的演算法:

  • 正則化演算法(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) 正則化演算法是另一種方法(通常是迴歸方法)的拓展,這種方法會基於模型複雜性對其進行懲罰,它喜歡相對簡單能夠更好的泛化的模型。 正則化中我們將保留所有的特徵變數,但是會減小特徵變數的數量級(引數數值的大小θ(j))。這個方法非常有效,當我們有很多特徵變數時,其中每一個變數都能對預測產生一點影響。 演算法例項:
  • 嶺迴歸(Ridge Regression)
  • 最小絕對收縮與選擇運算元(LASSO)
  • GLASSO
  • 彈性網路(Elastic Net)
  • 最小角迴歸(Least-Angle Regression) 詳解連結:機器學習之正則化演算法

整合演算法(Ensemble algorithms)

整合方法是由多個較弱的模型整合模型組,其中的模型可以單獨進行訓練,並且它們的預測能以某種方式結合起來去做出一個總體預測。這類演算法又稱元演算法(meta-algorithm)。最常見的整合思想有兩種bagging和boosting。

boosting
基於錯誤提升分類器效能,通過集中關注被已有分類器分類錯誤的樣本,構建新分類器並整合。
bagging
基於資料隨機重抽樣的分類器構建方法。

演算法例項:

  • 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)

人工神經網路

人工神經網路是受生物神經網路啟發而構建的演算法模型。它是一種模式匹配,常被用於迴歸和分類問題,但擁有龐大的子域,由數百種演算法和各類問題的變體組成。
人工神經網路(ANN)提供了一種普遍而且實際的方法從樣例中學習值為實數、離散值或向量函式。人工神經網路由一系列簡單的單元相互連線構成,其中每個單元有一定數量的實值輸入,併產生單一的實值輸出。
演算法例項:

  • 感知器
  • 反向傳播
  • Hopfield 網路
  • 徑向基函式網路(Radial Basis Function Network,RBFN)

深度學習(Deep Learning)

深度學習是人工神經網路的最新分支,它受益於當代硬體的快速發展。
眾多研究者目前的方向主要集中於構建更大、更復雜的神經網路,目前有許多方法正在聚焦半監督學習問題,其中用於訓練的大資料集只包含很少的標記。

演算法例項:

  • 深玻耳茲曼機(Deep Boltzmann Machine,DBM)
  • Deep Belief Networks(DBN)
  • 卷積神經網路(CNN)
  • Stacked Auto-Encoders

支援向量機(Support Vector Machines)

支援向量機是一種監督式學習 (Supervised Learning)的方法,主要用在統計分類 (Classification)問題和迴歸分析 (Regression)問題上。支援向量機屬於一般化線性分類器,也可以被認為是提克洛夫規範化(Tikhonov Regularization)方法的一個特例。這族分類器的特點是他們能夠同時最小化經驗誤差與最大化幾何邊緣區,因此支援向量機也被稱為最大邊緣區分類器。現在多簡稱為SVM。
給定一組訓練事例,其中每個事例都屬於兩個類別中的一個,支援向量機(SVM)訓練演算法可以在被輸入新的事例後將其分類到兩個類別中的一個,使自身成為非概率二進位制線性分類器。
SVM 模型將訓練事例表示為空間中的點,它們被對映到一幅圖中,由一條明確的、儘可能寬的間隔分開以區分兩個類別。

降維演算法(Dimensionality Reduction Algorithms)

所謂的降維就是指採用某種對映方法,將原高維空間中的資料點對映到低維度的空間中。降維的本質是學習一個對映函式 f : x->y,其中x是原始資料點的表達,目前最多使用向量表達形式。 y是資料點對映後的低維向量表達,通常y的維度小於x的維度(當然提高維度也是可以的)。f可能是顯式的或隱式的、線性的或非線性的。
這一演算法可用於視覺化高維資料或簡化接下來可用於監督學習中的資料。許多這樣的方法可針對分類和迴歸的使用進行調整。

演算法例項:

  • 主成分分析(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)

貝葉斯演算法(Bayesian Algorithms)

貝葉斯定理(英語:Bayes’ theorem)是概率論中的一個定理,它跟隨機變數的條件概率以及邊緣概率分佈有關。在有些關於概率的解說中,貝葉斯定理(貝葉斯更新)能夠告知我們如何利用新證據修改已有的看法。貝葉斯方法是指明確應用了貝葉斯定理來解決如分類和迴歸等問題的方法。

演算法例項:

  • 樸素貝葉斯(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)

圖模型(GraphicalModels)在概率論與圖論之間建立起了聯姻關係。它提供了一種自然工具來處理應用數學與工程中的兩類問題——不確定性(Uncertainty)和複雜性(Complexity)問 題,特別是在機器學習演算法的分析與設計中扮演著重要角色。圖模型的基本理念是模組化的思想,複雜系統是通過組合簡單系統建構的。概率論提供了一種粘合劑使 系統的各個部分組合在一起,確保系統作為整體的持續一致性,提供了多種資料介面模型方法。

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

演算法例項:

  • 貝葉斯網路(Bayesian network)
  • 馬爾可夫隨機域(Markov random field)
  • 鏈圖(Chain Graphs)
  • 祖先圖(Ancestral graph)

圖模型詳解:機器學習演算法之圖模型