常見的機器學習模型:感知機,線性回歸,邏輯回歸,支持向量機,決策樹,隨機森林,GBDT,XGBoost,貝葉斯,KNN,K-means等;
常見的機器學習理論:過擬合問題,交叉驗證問題,模型選擇問題,模型融合問題等;
優點:
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)
使用情景:
判別分析適用於高維數據需要降維的情況,自帶降維功能使得我們能方便地觀察樣本分布。它的正確性有數學公式可以證明,所以同樣是很經得住推敲的方式。
但是它的分類准確率往往不是很高,所以不是統計系的人就把它作為降維工具用吧。
同時注意它是假定樣本成正態分布的,所以那種同心圓形的數據就不要嘗試了。
更多分析見 https://www.zhihu.com/question/26726794
下邊這個轉自http://www.ppvke.com/Blog/archives/44028
機器 學習常見算法
機器學習領域涉及到很多的算法和模型,這里遴選一些常見的算法:
- 正則化算法(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)
圖模型詳解:機器學習算法之圖模型