女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

機器學習算法之隨機森林算法詳解及工作原理圖解

nlfO_thejiangme ? 來源:未知 ? 作者:龔婷 ? 2018-03-14 16:10 ? 次閱讀

隨機森林是一種靈活且易于使用的機器學習算法,即便沒有超參數調優,也可以在大多數情況下得到很好的結果。它也是最常用的算法之一,因為它很簡易,既可用于分類也能用于回歸任務。 在這篇文章中,你將了解到隨機森林算法的工作原理以及適用范圍。

機器學習算法之隨機森林算法工作原理

隨機森林是一種有監督學習算法。 就像你所看到的它的名字一樣,它創建了一個森林,并使它擁有某種方式隨機性。 所構建的“森林”是決策樹的集成,大部分時候都是用“bagging”方法訓練的。 bagging方法,即bootstrap aggregating,采用的是隨機有放回的選擇訓練數據然后構造分類器,最后組合學習到的模型來增加整體的效果。

簡而言之:隨機森林建立了多個決策樹,并將它們合并在一起以獲得更準確和穩定的預測。隨機森林的一大優勢在于它既可用于分類,也可用于回歸問題,這兩類問題恰好構成了當前的大多數機器學習系統所需要面對的。 接下來,將探討隨機森林如何用于分類問題,因為分類有時被認為是機器學習的基石。 下圖,你可以看到兩棵樹的隨機森林是什么樣子的:

除了少數例外,隨機森林分類器使用所有的決策樹分類器以及bagging 分類器的超參數來控制整體結構。 與其先構建bagging分類器,并將其傳遞給決策樹分類器,您可以直接使用隨機森林分類器類,這樣對于決策樹而言,更加方便和優化。要注意的是,回歸問題同樣有一個隨機森林回歸器與之相對應。

隨機森林算法中樹的增長會給模型帶來額外的隨機性。與決策樹不同的是,每個節點被分割成最小化誤差的最佳特征,在隨機森林中我們選擇隨機選擇的特征來構建最佳分割。因此,當您在隨機森林中,僅考慮用于分割節點的隨機子集,甚至可以通過在每個特征上使用隨機閾值來使樹更加隨機,而不是如正常的決策樹一樣搜索最佳閾值。這個過程產生了廣泛的多樣性,通常可以得到更好的模型。

一個更容易理解算法的例子

想象一下,一個名叫安德魯的人,想知道一年的假期旅行中他應該去哪些地方。他會向了解他的朋友們咨詢建議。

起初,他去尋找一位朋友,這位朋友會問安德魯他曾經去過哪些地方,他喜歡還是不喜歡這些地方。基于這些回答就能給安德魯一些建議,這便是一種典型的決策樹算法。

朋友通過安德魯的回答,為其制定出一些規則來指導應當推薦的地方。隨后,安德魯開始尋求越來越多朋友們的建議,他們會問他不同的問題,并從中給出一些建議。 最后,安德魯選擇了推薦最多的地方,這便是典型的隨機森林算法。

機器學習算法之隨機森林算法的特征的重要性

隨機森林算法的另一個優點是可以很容易地測量每個特征對預測的相對重要性。 Sklearn為此提供了一個很好的工具,它通過查看使用該特征減少了森林中所有樹多少的不純度,來衡量特征的重要性。它在訓練后自動計算每個特征的得分,并對結果進行標準化,以使所有特征的重要性總和等于1。

如果你不了解決策樹是如何工作對,也不知道什么是葉子或節點,可以參考維基百科的描述:在決策樹中,每個內部節點代表對一類屬性的“測試”(例如,拋硬幣的結果是正面還是反面),每個分支代表測試的結果,每個葉節點代表一個類標簽(在計算所有屬性之后作出的決定)。葉子就是沒有下一分支的節點。

通過查看特征的重要性,您可以知道哪些特征對預測過程沒有足夠貢獻或沒有貢獻,從而決定是否丟棄它們。這是十分重要的,因為一般而言機器學習擁有的特征越多,模型就越有可能過擬合,反之亦然。

下面你可以看到一個表格和一個可視化圖表,顯示了13個特征的重要性,我在有監督分類項目中使用了kaggle上著名的Titanic 數據集。

決策樹與隨機森林的區別

正如我先前提到的,隨機森林是決策樹的集合,但仍有一些區別。

如果您將帶有特征和標簽的訓練數據集輸入到決策樹中,它將制定一些規則集,用于預測。

例如,如果您想預測某人是否會點擊在線廣告,可以收集該廣告的過去點擊人員以及能夠描述其做決定的特征。一旦你將這些特征和標簽放入決策樹中,它會生成節點和一些規則,然后你就可以預測廣告是否會被點擊。但決策樹通常通過計算信息增益和基尼指數來生成節點和規則時,相比之下,隨機森林則是隨機的。

另一個區別是“深度”決策樹往往會遭遇過擬合問題。而隨機森林則可以通過創建隨機的特征子集并使用這些子集構建較小的樹,隨后組成子樹,這種方法可以防止大部分情況的過擬合。要注意的是,這同時會使得計算速度變慢,并取決于隨機森林構建的樹數。

機器學習算法之隨機森林算法重要的超參數

隨機森林中的參數要么用來增強模型的預測能力,要么使模型更快。 以下將討論sklearns內置的隨機森林函數中的超參數。

提高模型預測準確性

首先,“n_estimators”超參數表示算法在進行最大投票或采取預測平均值之前建立的樹數。 一般來說,樹的數量越多,性能越好,預測也越穩定,但這也會減慢計算速度。

另一個重要的超參數是“max_features”,它表示隨機森林在單個樹中可擁有的特征最大數量。 Sklearn提供了幾個選項,在他們的文檔中有描述:

http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html

最后一個重要的超參數是“min_sample_leaf”,正如其名稱所述,這決定了葉子的數量。

加快模型計算速度

“n_jobs”超參數表示引擎允許使用處理器的數量。 若值為1,則只能使用一個處理器。 值為-1則表示沒有限制。

“random_state”,表示隨機數種子,保證模型的輸出具有可復制性。 當它被賦于一個指定值,且模型訓練具有相同的參數和相同的訓練數據時,該模型將始終產生相同的結果。

最后,還有一個“oob_score”(也稱為oob采樣),它是一種隨機森林交叉驗證方法。 在這個抽樣中,大約三分之一的數據不用于模型訓練,而用來評估模型的性能。這些樣本被稱為袋外樣本。它與留一法交叉驗證方法非常相似,但幾乎沒有附加的計算負擔。

優缺點分析

就像我之前提到的那樣,隨機森林的一個優點是它可以用于回歸和分類任務,并且很容易查看模型的輸入特征的相對重要性。

隨機森林同時也被認為是一種非常方便且易于使用的算法,因為它是默認的超參數通常會產生一個很好的預測結果。超參數的數量也不是那么多,而且它們所代表的含義直觀易懂。

機器學習中的一個重大問題是過擬合,但大多數情況下這對于隨機森林分類器而言不會那么容易出現。因為只要森林中有足夠多的樹,分類器就不會過度擬合模型。

隨機森林的主要限制在于使用大量的樹會使算法變得很慢,并且無法做到實時預測。一般而言,這些算法訓練速度很快,預測十分緩慢。越準確的預測需要越多的樹,這將導致模型越慢。在大多數現實世界的應用中,隨機森林算法已經足夠快,但肯定會遇到實時性要求很高的情況,那就只能首選其他方法。

當然,隨機森林是一種預測性建模工具,而不是一種描述性工具。也就是說,如果您正在尋找關于數據中關系的描述,那建議首選其他方法。

適用范圍

隨機森林算法可被用于很多不同的領域,如銀行,股票市場,醫藥和電子商務。 在銀行領域,它通常被用來檢測那些比普通人更高頻率使用銀行服務的客戶,并及時償還他們的債務。 同時,它也會被用來檢測那些想詐騙銀行的客戶。 在金融領域,它可用于預測未來股票的趨勢。 在醫療保健領域,它可用于識別藥品成分的正確組合,分析患者的病史以識別疾病。 除此之外,在電子商務領域中,隨機森林可以被用來確定客戶是否真的喜歡某個產品。

總 結

隨機森林是一種很好的算法,適合在模型開發過程的早期進行訓練,了解它的工作原理,并且由于其簡易性,很難構建出“糟糕”的隨機森林。 如果您需要在短時間內開發模型,隨機森林會是一個不錯的選擇。 最重要的是,它為你選擇的特征提供了一個很好的重要性表示。

隨機森林在性能方面也很難被擊敗。 當然,沒有最好只有更好,你總能找到一個性能更好的模型,比如神經網絡,但這類模型通常需要更多的時間來開發。 最重要的是,隨機森林同時可以處理許多不同屬性的特征類型,如二元的,類別的和數值的。總的來說,隨機森林是一個(相對大部分而言)快速,簡單且靈活的工具,盡管它存在一定的局限性。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 算法
    +關注

    關注

    23

    文章

    4698

    瀏覽量

    94735
  • 機器學習
    +關注

    關注

    66

    文章

    8492

    瀏覽量

    134085
  • 隨機森林
    +關注

    關注

    1

    文章

    22

    瀏覽量

    4349
  • 機器學習算法

    關注

    2

    文章

    47

    瀏覽量

    6596

原文標題:聊一聊「隨機森林算法」那些事兒...

文章出處:【微信號:thejiangmen,微信公眾號:將門創投】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    經典算法大全(51個C語言算法+單片機常用算法+機器學十大算法

    試題學SPFA算法整體來說,機器學習算法可以分為 3 大類:0.1 監督學習 工作原理:該
    發表于 10-23 14:31

    機器學習隨機森林相關知識

    機器學習隨機森林(三)
    發表于 04-02 10:06

    隨機森林的相關知識

    機器學習隨機森林(一)
    發表于 08-27 07:30

    算法圖解學習筆記分享

    算法圖解學習筆記03:分而治之
    發表于 06-05 17:42

    隨機森林的跌倒檢測算法

    針對現有跌倒檢測算法由于缺乏真實老人跌倒樣本以及使用年輕人仿真跌倒樣本規模較小導致的過擬合和適應性不足等問題,提出了基于隨機森林的跌倒檢測算法。該
    發表于 12-29 14:50 ?2次下載

    隨機塊模型學習算法

    由于隨機塊模型能夠有效處理不具有先驗知識的網絡,對其研究成為了機器學習、網絡數據挖掘和社會網絡分析等領域的研究熱點.如何設計出具有模型選擇能力的快速隨機塊模型
    發表于 01-09 18:20 ?1次下載

    反向傳播算法工作原理

    反向傳播算法(BP算法)是目前用來訓練人工神經網絡的最常用且最有效的算法。作為谷歌機器學習速成課程的配套材料,谷歌推出一個演示網站,直觀地
    的頭像 發表于 07-02 16:01 ?1w次閱讀
    反向傳播<b class='flag-5'>算法</b>的<b class='flag-5'>工作原理</b>

    10大常用機器學習算法匯總

    本文介紹了10大常用機器學習算法,包括線性回歸、Logistic回歸、線性判別分析、樸素貝葉斯、KNN、隨機森林等。
    發表于 11-20 11:10 ?2925次閱讀

    一種基于數據集成的隨機森林算法

    用于銷售預測的歷史數據存在稀疏性與波動性等特點,當預測周期較長時,傳統統計學或者機器學習領域預測算法的預測效果較差。為此,利用隨機森林的集成
    發表于 03-16 11:37 ?12次下載
    一種基于數據集成的<b class='flag-5'>隨機</b><b class='flag-5'>森林</b><b class='flag-5'>算法</b>

    基于k近鄰的完全隨機森林算法KCRForest

    針對有新類的動態數據流分類算法檢測新類性能不高的問題,提出一種基于k近鄰的完全隨機森林算法( Kcrforest)。該算法利用動態數據流中已
    發表于 04-02 10:01 ?18次下載
    基于k近鄰的完全<b class='flag-5'>隨機</b><b class='flag-5'>森林</b><b class='flag-5'>算法</b>KCRForest

    基于遺傳算法隨機森林的XGBoost改進方法

    回歸預測是機器學習中重要的研究方向之一,有著廣闊的應用領域。為了進一步提升回歸預測的精度,提出了基于遺傳算法隨機森林的 Gboost改進方
    發表于 04-26 15:44 ?10次下載
    基于遺傳<b class='flag-5'>算法</b>和<b class='flag-5'>隨機</b><b class='flag-5'>森林</b>的XGBoost改進方法

    面向差分數據挖掘隱私保護的隨機森林算法

    數據挖掘中的隱私保護問題是目前信息安全領域的研究熱點之一。針對隱私保護要求下的分類問題,提出一種面向差分隱私保護的隨機森林算法 REDPP-Gini。將隨機
    發表于 05-12 14:14 ?1次下載

    隨機森林的概念、工作原理及用例

    隨機森林是一種監督式算法,使用由眾多決策樹組成的一種集成學習方法,輸出是對問題最佳答案的共識。隨機森林
    的頭像 發表于 08-05 10:00 ?7763次閱讀

    機器學習有哪些算法機器學習分類算法有哪些?機器學習預判有哪些算法

    機器學習有哪些算法機器學習分類算法有哪些?機器
    的頭像 發表于 08-17 16:30 ?2331次閱讀

    基于Python實現隨機森林算法

    機器學習算法是數據挖掘、數據能力分析和數學建模必不可少的一部分,而隨機森林算法和決策樹
    的頭像 發表于 09-21 11:17 ?1574次閱讀
    基于Python實現<b class='flag-5'>隨機</b><b class='flag-5'>森林</b><b class='flag-5'>算法</b>