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