机器学习——常用算法的总结
機器學習常用算法總結
機器學習——常用算法的總結
- 學習方式
- 一、監督式學習:
- 1、分類
- 2、回歸
- 補充——線性回歸與邏輯回歸
- 二、非監督式學習:
- 三、半監督式學習:
- 四、強化學習:
- 算法類似性
- 一、回歸算法:
- 二、基于實例的算法
- 三、正則化方法
- 四、決策樹學習
- 1、決策樹的劃分選擇
- 2、決策樹的剪枝
- 五、貝葉斯方法
- 六、基于核的算法
- 七、聚類算法
- 1、聚類——劃分、層次、密度
- 八、關聯規則學習
- 九、人工神經網絡(ANN)
- 1、MLP(多層感知器神經網絡)
- 十、深度學習
- 1、卷積神經網絡CNN以及幾種經典模型
- 2、循環神經網絡RNN以及幾種經典模型
- 十一、降低維度算法
- 十二、集成算法:
- 十三、關聯關系分析算法:
- 1、 Apriori算法和FP-Growth算法
- 機器學習的一些常見問題
- 2、學習率
- 3、優化方法
機器學習無疑是當前數據分析領域的一個熱點內容。很多人在平時的工作中都或多或少會用到機器學習的算法。本文總結一下常見的機器學習算法,以供參考。機器學習的算法很多,很多算法是一類算法,而有些算法又是從其他算法中延伸出來的。這里從兩個方面進行總結,第一個方面是學習的方式,第二個方面是算法的類似性。
機器學習是數據驅動的算法,數據驅動=數據+模型,模型就是輸入到輸出的映射關系。
學習方式
根據數據類型的不同,對一個問題的建模有不同的方式。在機器學習或者人工智能領域,人們首先會考慮算法的學習方式。將算法按照學習方式分類是一個不錯的想法,這樣可以讓人們在建模和算法選擇的時候考慮能根據輸入數據來選擇最合適的算法來獲得最好的結果。在機器學習領域,有幾種主要的學習方式:監督學習,非監督學習,半監督學習和強化學習。
一、監督式學習:
在監督式學習下,輸入數據被稱為“訓練數據”,每組訓練數據有一個明確的標識或結果,如對防垃圾郵件系統中“垃圾郵件”“非垃圾郵件”,對手寫數字識別中的“1“,”2“,”3“,”4“等。在建立預測模型的時候,監督式學習建立一個學習過程,將預測結果與“訓練數據”的實際結果進行比較,不斷的調整預測模型,直到模型的預測結果達到一個預期的準確率。監督式學習的常見應用場景如分類問題和回歸問題。常見監督式學習算法有決策樹學習(ID3,C4.5等),樸素貝葉斯分類,最小二乘回歸,邏輯回歸(Logistic Regression),支持矢量機,集成方法以及反向傳遞神經網絡BP(Back Propagation Neural Network)等等。
1、分類
分類的本質:在空間中找到一個決策邊界來完成分類的決策
2、回歸
補充——線性回歸與邏輯回歸
邏輯回歸:線性回歸可以預測連續值,但是不能解決分類問題,我們需要根據預測的結果判定其屬于正類還是負類。所以邏輯回歸就是將線性回歸的 (?∞,+∞)結果,通過sigmoid函數映射到(0,1)之間。
方法: 線性回歸+閾值
雖然邏輯回歸能夠用于分類,不過其本質還是線性回歸。它僅在線性回歸的基礎上,在特征到結果的映射中加入了一層sigmoid函數(非線性)映射,即先把特征線性求和,然后使用sigmoid函數來預測。 只適合處理二元分類問題
線性回歸和邏輯回歸
二、非監督式學習:
在非監督式學習中,數據并不被特別標識,學習模型是為了推斷出數據的一些內在結構。常見的應用場景包括關聯規則的學習以及聚類等。常見非監督學習算法包括奇異值分解、主成分分析(PCA),獨立成分分析(ICA),Apriori算法以及k-Means算法(聚類分析算法)等等。
三、半監督式學習:
在此學習方式下,輸入數據部分被標識,部分沒有被標識,這種學習模型可以用來進行預測,但是模型首先需要學習數據的內在結構以便合理的組織數據來進行預測。應用場景包括分類和回歸,算法包括一些對常用監督式學習算法的延伸,這些算法首先試圖對未標識數據進行建模,在此基礎上再對標識的數據進行預測。如圖論推理算法(Graph Inference)或者拉普拉斯支持向量機(Laplacian SVM)等。
四、強化學習:
在這種學習模式下,輸入數據作為對模型的反饋,不像監督模型那樣,輸入數據僅僅是作為一個檢查模型對錯的方式,在強化學習下,輸入數據直接反饋到模型,模型必須對此立刻作出調整。常見的應用場景包括動態系統以及機器人控制等。常見算法包括Q-Learning以及時間差學習(Temporal difference learning)。在企業數據應用的場景下, 人們最常用的可能就是監督式學習和非監督式學習的模型。 在圖像識別等領域,由于存在大量的非標識的數據和少量的可標識數據, 目前半監督式學習是一個很熱的話題。 而強化學習更多的應用在機器人控制及其他需要進行系統控制的領域。
算法類似性
根據算法的功能和形式的類似性,我們可以把算法分類,比如說基于樹的算法,基于神經網絡的算法等等。當然,機器學習的范圍非常龐大,有些算法很難明確歸類到某一類。而對于有些分類來說,同一分類的算法可以針對不同類型的問題。這里,我們盡量把常用的算法按照最容易理解的方式進行分類。
一、回歸算法:
回歸算法是試圖采用對誤差的衡量來探索變量之間的關系的一類算法。回歸算法是統計機器學習的利器。在機器學習領域,人們說起回歸,有時候是指一類問題,有時候是指一類算法,這一點常常會使初學者有所困惑。常見的回歸算法包括:最小二乘法(Ordinary Least Square),邏輯回歸(Logistic Regression),逐步式回歸(Stepwise Regression),多元自適應回歸樣條(Multivariate Adaptive Regression Splines)以及本地散點平滑估計(Locally Estimated Scatterplot Smoothing)。
通常,回歸可以被用于在現實世界的應用,如:
信用評分
度量營銷活動的成功率
預測某一產品的收入
在一個特定的日子里會發生地震嗎?
二、基于實例的算法
基于實例的算法常常用來對決策問題建立模型,這樣的模型常常先選取一批樣本數據,然后根據某些近似性把新數據與樣本數據進行比較。通過這種方式來尋找最佳的匹配。因此,基于實例的算法常常也被稱為“贏家通吃”學習或者“基于記憶的學習”。常見的算法包括 k-Nearest Neighbor(KNN), 學習矢量量化(Learning Vector Quantization, LVQ),以及自組織映射算法(Self-Organizing Map , SOM)。
三、正則化方法
正則化方法是其他算法(通常是回歸算法)的延伸,根據算法的復雜度對算法進行調整。正則化方法通常對簡單模型予以獎勵而對復雜算法予以懲罰。常見的算法包括:Ridge Regression, Least Absolute Shrinkage and Selection Operator(LASSO),以及彈性網絡(Elastic Net)。
四、決策樹學習
決策樹算法根據數據的屬性采用樹狀結構建立決策模型, 決策樹模型常常用來解決分類和回歸問題。常見的算法包括:分類及回歸樹(Classification And Regression Tree, CART), ID3 (Iterative Dichotomiser 3), C4.5, Chi-squared Automatic Interaction Detection(CHAID), Decision Stump, 隨機森林(Random Forest), 多元自適應回歸樣條(MARS)以及梯度推進機(Gradient Boosting Machine, GBM)。
1、決策樹的劃分選擇
三種決策樹劃分節點的選擇依據
決策樹(decision tree)(一)——構造決策樹方法
2、決策樹的剪枝
決策樹(decision tree)(二)——剪枝
五、貝葉斯方法
貝葉斯方法算法是基于貝葉斯定理的一類算法,主要用來解決分類和回歸問題。常見算法包括:樸素貝葉斯算法,平均單依賴估計(Averaged One-Dependence Estimators, AODE),以及Bayesian Belief Network(BBN)。
一些現實中的例子:
標記一個電子郵件為垃圾郵件或非垃圾郵件
將新聞文章分為技術類、政治類或體育類
檢查一段文字表達積極的情緒,或消極的情緒?
用于人臉識別軟件
六、基于核的算法
基于核的算法中最著名的莫過于==支持向量機(SVM)==了。 基于核的算法把輸入數據映射到一個高階的向量空間, 在這些高階向量空間里, 有些分類或者回歸問題能夠更容易的解決。 常見的基于核的算法包括:支持向量機(Support Vector Machine, SVM), 徑向基函數(Radial Basis Function ,RBF), 以及線性判別分析(Linear Discriminate Analysis ,LDA)等。
就規模而言,其中一些最主要的問題已經使用支持向量機解決了(通過適當的修改),如,入廣告顯示,人類的剪接位點識別,基于圖像的性別檢測,大規模圖像分類等等。
七、聚類算法
聚類,就像回歸一樣,有時候人們描述的是一類問題,有時候描述的是一類算法。聚類算法通常按照中心點或者分層的方式對輸入數據進行歸并。所以的聚類算法都試圖找到數據的內在結構,以便按照最大的共同點將數據進行歸類。常見的聚類算法包括 k-Means算法以及期望最大化算法(Expectation Maximization, EM)。
每一種聚類算法都不太一樣,這里有一些:
基于質心的算法
基于連通性的算法
基于密度的算法
概率聚類
降維
神經網絡/深度學習
1、聚類——劃分、層次、密度
聚類——劃分、層次、密度
八、關聯規則學習
關聯規則學習通過尋找最能夠解釋數據變量之間關系的規則,來找出大量多元數據集中有用的關聯規則。常見算法包括 Apriori算法和Eclat算法等。
九、人工神經網絡(ANN)
人工神經網絡算法模擬生物神經網絡,是一類模式匹配算法。通常用于解決分類和回歸問題。人工神經網絡是機器學習的一個龐大的分支,有幾百種不同的算法。(其中深度學習就是其中的一類算法,我們會單獨討論),重要的人工神經網絡算法包括:感知器神經網絡(Perceptron Neural Network), 反向傳遞(Back Propagation), Hopfield網絡,自組織映射(Self-Organizing Map, SOM)。學習矢量量化(Learning Vector Quantization, LVQ)。
1、MLP(多層感知器神經網絡)
網絡的輸入、輸出神經元其激活函數一般取為線性函數,而隱單元則為非線性函數
十、深度學習
深度學習算法是對人工神經網絡的發展。 在近期贏得了很多關注, 特別是百度也開始發力深度學習后, 更是在國內引起了很多關注。 在計算能力變得日益廉價的今天,深度學習試圖建立大得多也復雜得多的神經網絡。很多深度學習的算法是半監督式學習算法,用來處理存在少量未標識數據的大數據集。常見的深度學習算法包括:受限波爾茲曼機(Restricted Boltzmann Machine, RBN), Deep Belief Networks(DBN),卷積網絡(Convolutional Network), 堆棧式自動編碼器(Stacked Auto-encoders)循環神經網絡(遞歸神經網絡) RNN生成對抗網絡 GAN。
1、卷積神經網絡CNN以及幾種經典模型
卷積神經網絡CNN以及幾種經典模型
2、循環神經網絡RNN以及幾種經典模型
循環神經網絡RNN以及幾種經典模型
十一、降低維度算法
像聚類算法一樣,降低維度算法試圖分析數據的內在結構,不過降低維度算法是以非監督學習的方式試圖利用較少的信息來歸納或者解釋數據。這類算法可以用于高維數據的可視化或者用來簡化數據以便監督式學習使用。常見的算法包括:主成份分析(Principle Component Analysis, PCA),偏最小二乘回歸(Partial Least Square Regression,PLS), Sammon映射,多維尺度(Multi-Dimensional Scaling, MDS), 投影追蹤(Projection Pursuit)等。
奇異值分解示意圖
PCA降維示意圖
獨立成分分析示意圖
其中,ICA 和 PCA 是相關的,但是它是一種更強大的技術,當那些經典的方法完全失效的時候,它能夠從數據源中發現潛在的因素。它的應用包括數字圖像,文檔數據庫,經濟指標和心理測量。
十二、集成算法:
集成算法用一些相對較弱的學習模型獨立地就同樣的樣本進行訓練,然后把結果整合起來進行整體預測。集成算法的主要難點在于究竟集成哪些獨立的較弱的學習模型以及如何把學習結果整合起來。這是一類非常強大的算法,同時也非常流行。常見的算法包括:Boosting, Bootstrapped Aggregation(Bagging), AdaBoost,堆疊泛化(Stacked Generalization, Blending),梯度推進機(Gradient Boosting Machine, GBM),隨機森林(Random Forest)。
那么集成方法是怎樣工作的,為什么他們會優于單個的模型?
他們拉平了輸出偏差:如果你將具有民主黨傾向的民意調查和具有共和黨傾向的民意調查取平均,你將得到一個中和的沒有傾向一方的結果。
它們減小了方差:一堆模型的聚合結果和單一模型的結果相比具有更少的噪聲。在金融領域,這被稱為多元化——多只股票的混合投資要比一只股票變化更小。這就是為什么數據點越多你的模型會越好,而不是數據點越少越好。
它們不太可能產生過擬合:如果你有一個單獨的沒有過擬合的模型,你是用一種簡單的方式(平均,加權平均,邏輯回歸)將這些預測結果結合起來,然后就沒有產生過擬合的空間了。
十三、關聯關系分析算法:
1、 Apriori算法和FP-Growth算法
關聯規則—Apriori算法—FPTree
機器學習的一些常見問題
2、學習率
每次按照梯度減少的方向變化多少
① 學習率太大,會跳過最低點,可能不收斂
② 學習率太小收斂速度過慢
3、優化方法
監督學習的優化方法=損失函數+對損失函數的優化
總結
以上是生活随笔為你收集整理的机器学习——常用算法的总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 左移运算符
- 下一篇: 机器学习——决策树学习