為你的迴歸問題選擇最佳機器學習演算法
http://blog.itpub.net/31473948/viewspace-2168987/
【IT168 編譯】在處理任何型別的機器學習(ML)問題時,我們有許多不同的演算法可供選擇。而機器學習領域有一個得到大家共識的觀點,大概就是:沒有一個ML演算法能夠最佳地適用於解決所有問題。不同ML演算法的效能在很大程度上取決於資料的大小和結構。因此,如何選擇正確的演算法往往是一個大難題,除非我們直接透過大量的試驗和錯誤來測試我們的演算法。
但是,每個ML演算法都有一些優點和缺點,我們可以將它們用作指導。雖然一種演算法並不總是比另一種更好,但是我們可以使用每種演算法的一些屬性作為快速選擇正確演算法和調優超引數的指南。我們將介紹一些用於迴歸問題的著名ML演算法,並根據它們的優缺點設定使用它們的指導方針。這篇文章將幫助您為迴歸問題選擇最好的ML演算法!
線性和多項式迴歸
線性迴歸
從簡單的情況開始。單變數線性迴歸是一種用於使用線性模型例如一條線對單個輸入自變數(特徵變數)和輸出因變數之間的關係進行建模的技術。更普遍的情況是多變數線性累加,其中為多個獨立輸入變數(特徵變數)和輸出因變數之間的關係建立了一個模型。模型保持線性,因為輸出是輸入變數的線性組合。
第三種最普遍的情況叫做多項式迴歸模型現在變成了特徵變數的非線性組合,例如可以是指數變數,和餘弦等,但這需要知道資料與輸出的關係。迴歸模型可以使用隨機梯度下降(SGD)進行訓練。
優點:
·快速建模,當要建模的關係不是非常複雜,而且你沒有很多資料時,這是非常有用的。
·線性迴歸很容易理解哪些對業務決策非常有用。
缺點:
·對於非線性資料,多項式迴歸的設計是非常具有挑戰性的,因為必須有一些關於資料結構和特徵變數之間關係的資訊。
·因此,當涉及到高度複雜的資料時,這些模型並不像其他模型那樣好。
神經網路
神經網路
神經網路由一組相互連線的被稱作神經元的節點組成。資料中的輸入特徵變數作為多變數線性組合傳遞給這些神經元,其中每個特徵變數乘以的值稱為權重。然後將非線性應用於這種線性組合,使神經網路能夠建立複雜的非線性關係。神經網路可以有多個層,其中一層的輸出以同樣的方式傳遞給下一層。在輸出端,通常不應用非線性。神經網路的訓練使用隨機梯度下降(SGD)和反向傳播演算法(兩者都顯示在上面的GIF中)。
優點:
·由於神經網路可以有許多具有非線性的層(和引數),因此它們在建模高度複雜的非線性關係時非常有效。
·我們通常不需要擔心,神經網路的資料結構在學習任何型別的特徵變數關係時都很靈活。
·研究表明,簡單地向網路提供更多的訓練資料,無論是全新的,還是增加原始資料集,都有利於網路效能。
缺點:
·由於這些模型的複雜性,它們並不容易解釋和理解。
·對於訓練而言,它們可能具有相當的挑戰性和計算密集性,需要仔細進行超引數調整,設定學習進度計劃。
·它們需要大量的資料才能獲得高效能,在“小資料”情況下,它們往往會被其他ML演算法超越。
迴歸樹和隨機森林
隨機森林
從基本情況開始。決策樹是一種直觀的模型,透過一個遍歷樹的分支,並根據節點上的決策選擇下一個分支。樹誘導是將一組訓練例項作為輸入的任務,決定哪些屬性最適合拆分,分割資料集,並在產生的拆分資料集上重複出現,直到所有的訓練例項都被分類為止。構建樹時,目標是對建立可能的最高純度子節點的屬性進行分割,這將使對資料集中的所有例項進行分類時,需要進行的分割數量保持最低。純度是由資訊增益的概念來衡量的,這一概念涉及為了對其進行適當的分類,需要對一個以前不可見的例項瞭解多少。在實踐中,透過比較熵,或對當前資料集分割槽的單個例項進行分類所需的資訊量,對單個例項進行分類,如果當前的資料集分割槽要在給定的屬性上進一步分割槽的話。
隨機森林只是一組決策樹。輸入向量在多個決策樹中執行。對於迴歸,取所有樹的輸出值的平均值;對於分類,使用投票方案來決定最終的類。
優點:
·擅長學習複雜的、高度非線性的關係。它們通常可以達到相當高的效能,比多項式迴歸更好,而且通常與神經網路相當。
·很容易解釋和理解。雖然最終的訓練模型可以學習複雜的關係,但是在訓練過程中建立的決策邊界是很容易理解和實用的。
缺點:
·由於訓練決策樹的性質,它們可能傾向於主要的過度擬合。一個完整的決策樹模型可能過於複雜,包含不必要的結構。雖然這有時可以透過適當的樹木修剪和更大的隨機森林組合來緩解。
·使用更大的隨機森林組合來實現更高的效能帶來了速度慢和需要更多記憶體的缺點。
最後
希望你喜歡這篇文章,並學到一些新的和有用的東西。
作者:George Seif AI/機器學習工程師
原文連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2199184/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 機器學習:迴歸問題機器學習
- 【機器學習】--迴歸問題的數值優化機器學習優化
- 演算法金 | 選擇最佳機器學習模型的 10 步指南演算法機器學習模型
- 機器學習處理問題如何選擇一個合適的演算法?機器學習演算法
- 手擼機器學習演算法 - 嶺迴歸機器學習演算法
- 機器學習之Logistic迴歸演算法機器學習演算法
- 哪個才是解決迴歸問題的最佳演算法?線性迴歸、神經網路還是隨機森林?演算法神經網路隨機森林
- 8種方法用Python實現線性迴歸,為你解析最高效選擇Python
- 迴歸演算法全解析!一文讀懂機器學習中的迴歸模型演算法機器學習模型
- 為你介紹7種流行的線性迴歸收縮與選擇方法(附程式碼)
- MySQL 你可能忽視的選擇問題MySql
- 手擼機器學習演算法 - 邏輯迴歸機器學習演算法邏輯迴歸
- 手擼機器學習演算法 - 線性迴歸機器學習演算法
- 機器學習-樹迴歸機器學習
- 從模型選擇到超參調整:如何為機器學習專案選擇演算法模型機器學習演算法
- 手擼機器學習演算法 - 多項式迴歸機器學習演算法
- 機器學習演算法--邏輯迴歸原理介紹機器學習演算法邏輯迴歸
- 機器學習筆記之Logistic迴歸演算法機器學習筆記演算法
- 機器學習 | 線性迴歸與邏輯迴歸機器學習邏輯迴歸
- 機器學習-線性迴歸機器學習
- 機器學習:線性迴歸機器學習
- 寫在校招季,談談機器學習崗的Offer選擇問題機器學習
- (轉)為什麼選擇機器學習策略機器學習
- 機器學習演算法:Logistic迴歸學習筆記機器學習演算法筆記
- 迴歸問題知識樹
- 活動選擇問題理解貪心演算法演算法
- 迴歸測試遇到的問題求助
- 選擇MRAM最佳測試演算法演算法
- 演算法金 | 線性迴歸:不能忽視的五個問題演算法
- 機器學習之迴歸指標機器學習指標
- 機器學習之線性迴歸機器學習
- 機器學習之邏輯迴歸機器學習邏輯迴歸
- 機器學習整理(線性迴歸)機器學習
- 機器學習整理(邏輯迴歸)機器學習邏輯迴歸
- 機器學習之Logistic迴歸機器學習
- [DataAnalysis]機器學習演算法——線性模型(邏輯迴歸+LDA)機器學習演算法模型邏輯迴歸LDA
- 演算法導論16.1 活動選擇問題演算法
- orange人工智慧迴歸問題人工智慧