機器學習十大算法系列


1.線性回歸 (Linear Regression)

2.邏輯回歸 (Logistic Regression)

3.決策樹 (Decision Tree)

4.支持向量機(SVM)

5.朴素貝葉斯 (Naive Bayes)

6.K鄰近算法(KNN)

7.K-均值算法(K-means)

8.隨機森林 (Random Forest)

9.降低維度算法(Dimensionality Reduction Algorithms)

10.Gradient Boost和Adaboost算法 

 

1.線性回歸 (Linear Regression)

https://www.cnblogs.com/pinard/p/6004041.html

梯度下降(Gradient Descent)小結

http://www.cnblogs.com/pinard/p/5970503.html

最小二乘法小結

http://www.cnblogs.com/pinard/p/5976811.html

Lasso回歸算法: 坐標軸下降法與最小角回歸法小結

http://www.cnblogs.com/pinard/p/6018889.html

先來解釋一下什么是回歸。假設現在有一些數據點,我們用一條直線對這些點進行擬合,這個擬合過程就叫做回歸。      線性回歸是利用連續性變量來估計實際數值(例如房價,呼叫次數和總銷售額等)。我們通過線性回歸算法找出自變量和因變量間的最佳線性關系,圖形上可以確定一條最佳直線。這條最佳直線就是回歸線。這個回歸關系可以用Y=aX+b 表示。

 2.邏輯回歸 (Logistic Regression)

https://www.cnblogs.com/pinard/p/6029432.html

邏輯回歸是一個分類算法,它可以處理二元分類以及多元分類。雖然它名字里面有“回歸”兩個字,卻不是一個回歸算法。那為什么有“回歸”這個誤導性的詞呢?個人認為,雖然邏輯回歸是分類模型,但是它的原理里面卻殘留着回歸模型的影子,本文對邏輯回歸原理做一個總結。

3.決策樹 (Decision Tree)

https://www.cnblogs.com/pinard/p/6050306.html

https://www.cnblogs.com/pinard/p/6053344.html

決策樹算法在機器學習中算是很經典的一個算法系列了。它既可以作為分類算法,也可以作為回歸算法,同時也特別適合集成學習比如隨機森林。本文就對決策樹算法原理做一個總結,上篇對ID3, C4.5的算法思想做了總結,下篇重點對CART算法做一個詳細的介紹。選擇CART做重點介紹的原因是scikit-learn使用了優化版的CART算法作為其決策樹算法的實現。

 

4.支持向量機(SVM)

支持向量機原理(一) 線性支持向量機

支持向量機原理(二) 線性支持向量機的軟間隔最大化模型

支持向量機原理(三)線性不可分支持向量機與核函數

支持向量機原理(四)SMO算法原理

支持向量機原理(五)線性支持回歸

支持向量機原理(一) 線性支持向量機

https://www.cnblogs.com/pinard/p/6097604.html

  支持向量機(Support Vecor Machine,以下簡稱SVM)雖然誕生只有短短的二十多年,但是自一誕生便由於它良好的分類性能席卷了機器學習領域,並牢牢壓制了神經網絡領域好多年。如果不考慮集成學習的算法,不考慮特定的訓練數據集,在分類算法中的表現SVM說是排第一估計是沒有什么異議的。

  SVM是一個二元分類算法,線性分類和非線性分類都支持。經過演進,現在也可以支持多元分類,同時經過擴展,也能應用於回歸問題。本系列文章就對SVM的原理做一個總結。本篇的重點是SVM用於線性分類時模型和損失函數優化的一個總結。

 

支持向量機原理(二) 線性支持向量機的軟間隔最大化模型

http://www.cnblogs.com/pinard/p/6100722.html

 在支持向量機原理(一) 線性支持向量機中,我們對線性可分SVM的模型和損失函數優化做了總結。最后我們提到了有時候不能線性可分的原因是線性數據集里面多了少量的異常點,由於這些異常點導致了數據集不能線性可分,本篇就對線性支持向量機如何處理這些異常點的原理方法做一個總結。

支持向量機原理(三)線性不可分支持向量機與核函數

http://www.cnblogs.com/pinard/p/6103615.html

在前面兩篇我們講到了線性可分SVM的硬間隔最大化和軟間隔最大化的算法,它們對線性可分的數據有很好的處理,但是對完全線性不可分的數據沒有辦法。本文我們就來探討SVM如何處理線性不可分的數據,重點講述核函數在SVM中處理線性不可分數據的作用。

 

支持向量機原理(四)SMO算法原理

http://www.cnblogs.com/pinard/p/6111471.html

在SVM的前三篇里,我們優化的目標函數最終都是一個關於αα向量的函數。而怎么極小化這個函數,求出對應的αα向量,進而求出分離超平面我們沒有講。本篇就對優化這個關於αα向量的函數的SMO算法做一個總結。

支持向量機原理(五)線性支持回歸

http://www.cnblogs.com/pinard/p/6113120.html

在前四篇里面我們講到了SVM的線性分類和非線性分類,以及在分類時用到的算法。這些都關注與SVM的分類問題。實際上SVM也可以用於回歸模型,本篇就對如何將SVM用於回歸模型做一個總結。重點關注SVM分類和SVM回歸的相同點與不同點。

 5.朴素貝葉斯 (Naive Bayes)

https://www.cnblogs.com/pinard/p/6069267.html

 6.K鄰近算法(KNN)

https://www.cnblogs.com/pinard/p/6061661.html

 K近鄰法(k-nearest neighbors,KNN)是一種很基本的機器學習方法了,在我們平常的生活中也會不自主的應用。比如,我們判斷一個人的人品,只需要觀察他來往最密切的幾個人的人品好壞就可以得出了。這里就運用了KNN的思想。KNN方法既可以做分類,也可以做回歸,這點和決策樹算法相同。

 KNN做回歸和分類的主要區別在於最后做預測時候的決策方式不同。KNN做分類預測時,一般是選擇多數表決法,即訓練集里和預測的樣本特征最近的K個樣本,預測為里面有最多類別數的類別。而KNN做回歸時,一般是選擇平均法,即最近的K個樣本的樣本輸出的平均值作為回歸預測值。由於兩者區別不大,雖然本文主要是講解KNN的分類方法,但思想對KNN的回歸方法也適用。由於scikit-learn里只使用了蠻力實現(brute-force),KD樹實現(KDTree)和球樹(BallTree)實現,本文只討論這幾種算法的實現原理。其余的實現方法比如BBF樹,MVP樹等,在這里不做討論。

 7.K-均值算法(K-means)

http://www.cnblogs.com/pinard/p/6164214.html

K-Means算法是無監督的聚類算法,它實現起來比較簡單,聚類效果也不錯,因此應用很廣泛。K-Means算法有大量的變體,本文就從最傳統的K-Means算法講起,在其基礎上講述K-Means的優化變體方法。包括初始化優化K-Means++, 距離計算優化elkan K-Means算法和大數據情況下的優化Mini Batch K-Means算法。

8.隨機森林 (Random Forest)

https://www.cnblogs.com/pinard/p/6156009.html

  在集成學習原理小結中,我們講到了集成學習有兩個流派,一個是boosting派系,它的特點是各個弱學習器之間有依賴關系。另一種是bagging流派,它的特點是各個弱學習器之間沒有依賴關系,可以並行擬合。本文就對集成學習中Bagging與隨機森林算法做一個總結。

 隨機森林是集成學習中可以和梯度提升樹GBDT分庭抗禮的算法,尤其是它可以很方便的並行訓練,在如今大數據大樣本的的時代很有誘惑力。

9.降低維度算法(Dimensionality Reduction Algorithms)

https://www.cnblogs.com/pinard/p/5970503.html

在求解機器學習算法的模型參數,即無約束優化問題時,梯度下降(Gradient Descent)是最常采用的方法之一,另一種常用的方法是最小二乘法。這里就對梯度下降法做一個完整的總結。

 

 

10.Gradient Boost算法 

https://www.cnblogs.com/pinard/p/6140514.html

  在集成學習之Adaboost算法原理小結中,我們對Boosting家族的Adaboost算法做了總結,本文就對Boosting家族中另一個重要的算法梯度提升樹(Gradient Boosting Decison Tree, 以下簡稱GBDT)做一個總結。GBDT有很多簡稱,有GBT(Gradient Boosting Tree), GTB(Gradient Tree Boosting ), GBRT(Gradient Boosting Regression Tree), MART(Multiple Additive Regression Tree),其實都是指的同一種算法,本文統一簡稱GBDT。GBDT在BAT大廠中也有廣泛的應用,假如要選擇3個最重要的機器學習算法的話,個人認為GBDT應該占一席之地。

11.Adaboost算法 

https://www.cnblogs.com/pinard/p/6133937.html

集成學習原理小結中,我們講到了集成學習按照個體學習器之間是否存在依賴關系可以分為兩類,第一個是個體學習器之間存在強依賴關系,另一類是個體學習器之間不存在強依賴關系。前者的代表算法就是是boosting系列算法。在boosting系列算法中, Adaboost是最著名的算法之一。Adaboost既可以用作分類,也可以用作回歸。本文就對Adaboost算法做一個總結。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM