matlab 随机森林算法_随机森林算法
隨機森林是一種靈活,易于使用的機器學習算法,即使沒有超參數調整,也能在大多數情況下產生出色的結果。它也是最常用的算法之一,因為它簡單,并且可以用于分類和回歸任務。在這篇文章中,您將學習隨機森林算法如何工作以及其他幾個重要的事情。
目錄:
- 這個怎么運作
- 真實生活類比
- 特征重要性
- 決策樹與隨機森林的區別
- 重要的超參數(預測能力,速度)
- 優點和缺點
- 用例
- 摘要
這個怎么運作:
隨機森林是一種監督學習算法。就像你已經從它的名字中看到的一樣,它創造了一個森林,并使它在某種程度上是隨機的。它構建的“森林”是決策樹的集合,大部分時間都是用“裝袋”方法訓練的。裝袋方法的一般思想是學習模型的組合增加了整體結果。
用簡單的話來說:隨機森林構建多個決策樹并將它們合并在一起以獲得更準確和穩定的預測。隨機森林的一大優勢是,它可以用于分類和回歸問題,這些問題構成了當前機器學習系統的大部分。我將在分類中討論隨機森林,因為分類有時被認為是機器學習的基石。您可以在下面看到隨機森林如何使用兩棵樹:
隨機森林具有與決策樹或裝袋分類器幾乎相同的超參數。幸運的是,您不必將決策樹與裝袋分類器組合在一起,只需輕松使用隨機森林的分類器類即可。就像我已經說過的,使用Random Forest,你也可以使用Random Forest回歸量來處理回歸任務。
隨機森林為模型增加了額外的隨機性,同時種植樹木。它不是在分割節點時搜索最重要的特征,而是在隨機特征子集中搜索最佳特征。這導致了廣泛的多樣性,通常導致更好的模型。
因此,在隨機森林中,用于分割節點的算法僅考慮特征的隨機子集。您甚至可以通過為每個特征使用隨機閾值而不是搜索最佳可能閾值(如正常決策樹那樣)來使樹更隨機。
真實生活類比:
想象一下,一個名叫安德魯的人,想要決定在一年的假期旅行中應該去哪些地方。他問那些認識他的人。首先,他去找一位朋友,朋友問安德魯之前他去過哪里,他是否喜歡。根據答案,他會給安德魯一些建議。
這是典型的決策樹算法方法。安德魯斯的朋友通過使用安德魯的答案創建了規則,以指導他決定應該向安德魯推薦什么。
之后,安德魯開始要求越來越多的朋友給他建議,他們再次問他不同的問題,他們可以從中得到一些建議。然后他選擇了對他最推薦的地方,這是典型的隨機森林算法方法。
特征重要性:
隨機森林算法的另一個高質量是,很容易測量每個特征對預測的相對重要性。Sklearn為此提供了一個很好的工具,它可以通過查看使用該功能的樹節點減少森林中所有樹木的雜質來測量特征的重要性。它會在訓練后自動為每個要素計算此分數并對結果進行縮放,以使所有重要性的總和等于1。
如果你不知道決策樹是如何工作的,如果你不知道葉子或節點是什么,這里是維基百科的一個很好的描述:在決策樹中,每個內部節點代表一個屬性的“測試”(例如硬幣正面還是反面朝上),每個分支代表測試的結果,每個葉節點代表一個類標簽(在計算所有屬性后作出決定)。 沒有子節點的節點是葉子。
通過查看特征重要性,您可以決定要刪除哪些特征,因為它們對預測過程沒有足夠的貢獻或沒有貢獻。這很重要,因為機器學習的一般規則是,您擁有的特征越多,您的模型就越容易受到過度擬合的影響,反之亦然。
下面你可以看到一個表格和一個可視化,它顯示了13個特征的重要性,我在監督分類項目中使用了有名的泰坦尼克號數據集。你可以在這里找到整個項目。
決策樹與隨機森林之間的差異:
就像我已經提到的,隨機森林是決策樹的集合,但是存在一些差異。
如果您將具有要素和標簽的訓練數據集輸入到決策樹中,它將制定一組規則,用于進行預測。
例如,如果您想預測一個人是否會點擊在線廣告,您可以收集過去點擊過的人的廣告以及描述他的決定的一些功能。如果將功能和標簽放入決策樹中,它將生成一些規則。然后,您可以預測廣告是否會被點擊。相比之下,隨機森林算法隨機選擇觀察和特征來構建幾個決策樹,然后平均結果。
另一個區別是“深層”決策樹可能會受到過度擬合的影響。隨機森林通過創建特征的隨機子集并使用這些子集構建較小的樹來防止過度擬合。之后,它結合了子樹。請注意,這不會每次都起作用,并且它還會使計算速度變慢,具體取決于隨機林構建的樹數。
重要的超參數:
隨機森林中的超參數用于增加模型的預測能力或使模型更快。我將在這里談談sklearns內置隨機森林函數的超參數。
1.增加預測能力
首先,有“n_estimators”超參數,它只是算法在進行最大投票或取平均預測之前構建的樹數。通常,更多數量的樹會提高性能并使預測更穩定,但它也會減慢計算速度。
另一個重要的超參數是“max_features”,它是Random Forest考慮拆分節點的最大特征數。Sklearn提供了幾個選項,在他們的文檔中有描述。
我們將在速度方面討論的最后一個重要的超參數是“min_sample_leaf”。與其名稱一樣,這確定了拆分內部節點所需的最小葉子數。
2.提高模型速度
該“n_jobs”超參數告訴引擎是多少處理器允許使用。如果它的值為1,則它只能使用一個處理器。值“-1”表示沒有限制。
“random_state”使模型的輸出可復制。當模型具有random_state的確定值并且已經給出相同的超參數和相同的訓練數據時,該模型將始終產生相同的結果。
最后,還有“oob_score”(也稱為oob采樣),它是一種隨機森林交叉驗證方法。在此抽樣中,大約三分之一的數據不用于訓練模型,可用于評估其性能。這些樣品稱為袋外樣品。它與留一法交叉驗證方法非常相似,但幾乎沒有額外的計算負擔。
優點和缺點:
就像我已經提到的,隨機森林的一個優點是它可以用于回歸和分類任務,并且很容易查看它分配給輸入要素的相對重要性。
隨機森林也被認為是一種非常方便易用的算法,因為它的默認超參數通常會產生良好的預測結果。超參數的數量也不是那么高,而且它們很容易理解。
機器學習中的一個重大問題是過度擬合,但大多數情況下,這對于隨機森林分類器來說不容易發生。那是因為如果森林中有足夠的樹,分類器就不會過度擬合模型。
隨機森林的主要局限在于大量決策樹可以使算法減慢并且對實時預測無效。一般來說,這些算法訓練速度很快,但一旦訓練完成預測就很慢。更準確的預測需要更多的樹,這導致更慢的模型。在大多數實際應用中,隨機森林算法足夠快,但肯定存在運行時性能很重要而其他方法更受歡迎的情況。
當然,隨機森林是一種預測建模工具,而不是一種描述性工具。這意味著,如果您正在尋找數據中關系的描述,則首選其他方法。
用例:
隨機森林算法用于許多不同的領域,如銀行,股票市場,醫藥和電子商務。例如,在銀行業中,它用于檢測將比其他人更頻繁地使用銀行服務的客戶,并及時償還他們的債務。在此域中,它還用于檢測想要詐騙銀行的欺詐客戶。在金融領域,它用于確定未來股票的行為。在醫療保健領域,它用于識別醫學中組分的正確組合,并分析患者的病史以識別疾病。最后,在電子商務中,隨機森林用于確定客戶是否真的喜歡該產品。
摘要:
隨機森林是一個很好的算法,可以在模型開發過程的早期進行訓練,看看它是如何執行的,并且由于其簡單性,很難建立一個“壞”的隨機森林。如果您需要在短時間內開發模型,此算法也是一個很好的選擇。最重要的是,它提供了一個非常好的指標,表明它為您的功能賦予的重要性。
隨機森林在性能方面也很難被擊敗。當然,您可能總能找到一個能夠表現更好的模型,比如神經網絡,但這些通常需要花費更多的時間進行開發。最重要的是,它們可以處理許多不同的要素類型,如二進制,分類和數字。
總體而言,隨機森林是一種(大多數)快速,簡單和靈活的工具,盡管它有其局限性。
點擊英文原文 https://towardsdatascience.com/the-random-forest-algorithm-d457d499ffcd
更多文章歡迎訪問: http://www.apexyun.com
公眾號:銀河系1號
聯系郵箱:public@space-explore.com
(未經同意,請勿轉載)
總結
以上是生活随笔為你收集整理的matlab 随机森林算法_随机森林算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 真香!特斯拉门店透露降价后销量翻倍 单天
- 下一篇: matlaba绘制gps星空图_教大家用