隨機森林和機器學習
隨機森林和機器學習
http://blog.sina.com.cn/s/blog_cfa68e330102zelx.html
隨機森林演算法是當今最有用的機器學習演算法之一。該演算法被認為是機器學習世界的主力。本文目的是描述隨機森林演算法如何對資料集進行操作。我將描述隨機森林演算法的構建塊,包括決策樹,bootstrapping,bagging,並將它們放在一起以實際構建隨機森林演算法。另外,我將向您介紹我所遵循的示例,該示例將直觀地向您展示演算法的功能。
隨機森林演算法:它是如何工作的
決策樹:
隨機森林演算法透過將幾個二元決策樹聚合在一起來工作。決策樹是一種特殊的樹結構,其中每個節點代表一個決策,並透過從上到下的流結構連線到該決策的所有選項。隨機森林演算法使用二元決策樹,這實質上意味著每個節點分成兩條路徑,代表決策的結果。 樹是迴歸和分類問題的有用結構。如您所見,每個節點分成兩個路徑。在這種情況下,我們的二元決策樹中的每個節點都代表我們資料集的一個特徵。
Bootstrapping :
bootstrap 方法建立在以下思想的基礎上:透過使用資料的子樣本而不是計算整個資料集的平均值,可以獲得更好的資料平均值。在bootstrap方法中,您將採用替換的資料子樣本,然後計算每個子樣本的平均值。一旦你對合適數量的子樣本重複了這個過程,你就可以取所有計算出來的平均值,並返回資料集的平均值。 Bootstrapping 類似於hive mind原則,如果你給一個大群的人一個問題,問群體中如何解決它,通常這些答案可以組合成一個可行的解決方案。類似地,當使用樹作為模型時,bootstrap方法給出了更準確的資料平均值。
Bagging (Bootstrap Aggregation):
Bagging 是一種整合技術,代表bootstrap聚合。整合技術是一種將多個機器學習演算法的預測組合在一起的方法,它比任何給定模型都能做出更準確的預測。Bagging基於bootstrap聚合的思想,最適用於分類和迴歸樹(CART)。具體來說,Bagging過程就是對資料建立許多隨機的子樣本,然後在每個子樣本上訓練一個CART模型。在每個子樣本上執行模型將返回一個預測。然後從每個子樣本中進行預測以獲得最準確的預測,然後可以將該預測應用到新的機器學習資料集。
Bagging 法最適用於顯示高度差異的機器學習演算法。 在決策樹上訓練的模型可以顯示高水平的方差,因為它們是在不同的資料子樣本上訓練的,所以這些模型通常會根據子樣本中的資料返回截然不同的預測。透過聚合所有這些預測,可以減少模型中的誤差,並返回更準確的預測。
隨機森林:
隨機森林建立在前述概念的基礎上,透過將隨機性引入拆分二元決策樹中的每個節點的引數。 決策樹是貪婪的,這意味著它們使用貪婪演算法來確定要拆分的引數的最佳值,以便最小化誤差。 為了使我們的隨機森林能夠工作,所有樹都需要儘可能不相關。因此,隨機森林對CART模型進行了調整,並將其拆分為資料的不同子樣本中的大量隨機值。隨機森林的美妙之處在於,當我們在資料的子樣本上隨機拆分執行我們的模型時,我們為每個預測得到的誤差是隨機的。 這些誤差可以透過隨機分佈建模。隨機分佈的均值為0.因此,當我們執行我們的隨機森林並取所有預測的平均值時,我們會得到一個在理想條件下最小化誤差的模型。
關於噪聲的說明:
噪聲本質上是不相關的資料或資料中的錯誤,它們混淆了我們試圖在資料集中發現的潛在趨勢/模式。噪聲可以包括具有大量離群值的資料、具有與我們的模型無關的特性的資料集,以及資料中不遵循模式的記錄/關係。大多數資料集包含有噪聲的元素,這對我們的模型有誤差。
一個指導性的例子:
簡介:該教程指導我建立一個關於預測推土機銷售價格的老式競賽模型。資料集是用於推土機的Kelly Blue Book,它具有各種功能。
EDA (探索性資料分析):
我們首先閱讀CSV檔案並執行EDA。 EDA 是機器學習過程的重要組成部分。在EDA期間,您將檢視所有特徵,並嘗試選擇與預測目標最相關的特徵。 在我們的例子中,目標是銷售價格。
此資料集中最重要的特徵是SalesID,SalePrice,MachineID和SaleDate。下一步是解析SaleDate上的資料,以便我們可以獲得每個特定銷售日期的所有資料。
確定哪些特徵最有效後,下一步是清理和預處理資料。 Fastai 庫附帶了一些有用的功能,用於處理包含NA值的特徵以及將分類變數轉換為數值變數。train_cats函式將分類變數轉換為數值變數。例如,UsageBand特徵中的“High”,“Low”和“Medium”將以數字形式變為3,1和2。此外,proc_df函式將任何特徵中的NA值替換為該特徵的中值。
在完成EDA並清理資料框後,我們準備執行我們的初始隨機森林迴歸。
但是當你執行RandomForestRegressor時,究竟發生了什麼?
讓我們簡化迴歸量並繪製一棵樹
正如您所看到的,機器學習模型是一個二元決策樹,它在不同的特徵上進行分割。 在sklearn中,RandomForestRegressor實際上會自動遍歷子樣本中可用的所有特徵組合,並選擇要拆分的值以減少MSE。 第一個節點表示如果我們僅將10.189預測為log of sale price的平均值,將會發生什麼呢。第一個節點的MSE是0.495,如果我們只使用這個節點並預測 log of price 為10.189,這將是我們的MSE。。隨著樹的加深,我們的MSE被最小化,因為它將各種決策聚合在一起,變得更加精確。
現在想象一下,在數百個資料子樣本上執行這個過程並返回這些預測。 當您使用的樹的數量增加時,機器學習模型的效能就會提高,直到達到瓶頸。把這些樹整合在一起你就可以建造你的隨機森林並返回最準確的預測。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2285288/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【機器學習】--決策樹和隨機森林機器學習隨機森林
- 【機器學習】整合學習——Bagging與隨機森林機器學習隨機森林
- 6. 整合學習&隨機森林隨機森林
- 隨機森林n_estimators 學習曲線隨機森林
- 決策樹和隨機森林隨機森林
- ENVI新機器學習:隨機森林遙感分類工具操作手冊機器學習隨機森林
- 機器學習演算法系列(十八)-隨機森林演算法(Random Forest Algorithm)機器學習演算法隨機森林randomRESTGo
- 機器學習(五):通俗易懂決策樹與隨機森林及程式碼實踐機器學習隨機森林
- R:microtable包隨機森林隨機森林
- 隨機森林演算法隨機森林演算法
- 隨機森林的祕密隨機森林
- 隨機森林、EM、HMM、LDA隨機森林HMMLDA
- 機器學習之隨機梯度下降法機器學習隨機梯度
- 【火爐煉AI】機器學習051-視覺詞袋模型+極端隨機森林建立影象分類器AI機器學習視覺模型隨機森林
- 【火爐煉AI】機器學習051-視覺詞袋模型+極端隨機森林建立影像分類器AI機器學習視覺模型隨機森林
- 01整合學習-概述、Bagging-隨機森林、袋外錯誤率隨機森林
- 【火爐煉AI】機器學習007-用隨機森林構建共享單車需求預測模型AI機器學習隨機森林模型
- 隨機森林演算法梳理隨機森林演算法
- (一) 機器學習和機器學習介紹機器學習
- R資料分析:整合學習方法之隨機生存森林的原理和做法,例項解析隨機
- 機器學習第一步,這是一篇手把手的隨機森林入門實戰機器學習隨機森林
- 【小白學AI】隨機森林 全解 (從bagging到variance)AI隨機森林
- 隨機森林R語言預測工具隨機森林R語言
- 隨機森林演算法深入淺出隨機森林演算法
- 一句話總結隨機森林隨機森林
- Bagging(Bootstrap aggregating)、隨機森林(random forests)、AdaBoostboot隨機森林randomREST
- 隨機學習簡介隨機
- 【機器學習】機器學習簡介機器學習
- 【火爐煉AI】機器學習012-用隨機森林構建汽車評估模型及模型的優化提升方法AI機器學習隨機森林模型優化
- 一文讀懂隨機森林的解釋和實現隨機森林
- 用機器學習識別隨機生成的C&C域名機器學習隨機
- 聊聊基於Alink庫的隨機森林模型隨機森林模型
- [python學習]機器學習 -- 感知機Python機器學習
- 機器學習和深度學習資源蒐集機器學習深度學習
- 機器學習和深度學習的區別機器學習深度學習
- 機器學習和深度學習概念入門機器學習深度學習
- 大型機器學習【Coursera 史丹佛 機器學習】機器學習
- 【機器學習】--Python機器學習庫之Numpy機器學習Python