最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

R語言泰坦尼克號(hào)隨機(jī)森林模型案例數(shù)據(jù)分析

2021-01-04 08:19 作者:拓端tecdat  | 我要投稿

原文鏈接:http://tecdat.cn/?p=4281

?

如果我們對(duì)所有這些模型的結(jié)果進(jìn)行平均,我們有時(shí)可以從它們的組合中找到比任何單個(gè)部分更好的模型。這就是集成模型的工作方式。

讓我們構(gòu)建一個(gè)由三個(gè)簡單決策樹組成的非常小的集合來說明:

這些樹中的每一個(gè)都根據(jù)不同的變量做出分類決策。

隨機(jī)森林模型比上面的決策樹更深地生長樹木,實(shí)際上默認(rèn)是盡可能地將每棵樹生長出來。隨機(jī)森林以兩種方式做到這一點(diǎn)。

第一個(gè)技巧是使用套袋。Bagging會(huì)對(duì)您的訓(xùn)練集中的行進(jìn)行隨機(jī)抽樣。使用樣本函數(shù)很容易在R中進(jìn)行模擬。假設(shè)我們想在10行的訓(xùn)練集上進(jìn)行裝袋。

  1. > sample(1:10, replace = TRUE)


  2. [1] 3 1 9 1 7 10 10 2 2 9

在此模擬中,如果再次運(yùn)行此命令,則每次都會(huì)獲得不同的行樣本。平均而言,大約37%的行將被排除在自舉樣本之外。通過這些重復(fù)和省略的行,每個(gè)使用裝袋生長的決策樹將略有不同。

第二個(gè)隨機(jī)來源超越了這個(gè)限制。隨機(jī)森林不是查看整個(gè)可用變量池,而是僅采用它們的一部分,通常是可用數(shù)量的平方根。在我們的例子中,我們有10個(gè)變量,因此使用三個(gè)變量的子集是合理的。

通過這兩個(gè)隨機(jī)性來源,整體包含一系列完全獨(dú)特的樹木,這些樹木的分類都不同。與我們的簡單示例一樣,每個(gè)樹都被調(diào)用以對(duì)給定乘客進(jìn)行分類,對(duì)投票進(jìn)行統(tǒng)計(jì)(可能有數(shù)百或數(shù)千棵樹)并且選擇多數(shù)決策。

R的隨機(jī)森林算法對(duì)我們的決策樹沒有一些限制。我們必須清理數(shù)據(jù)集中的缺失值。rpart它有一個(gè)很大的優(yōu)點(diǎn),它可以在遇到一個(gè)NA值時(shí)使用替代變量。在我們的數(shù)據(jù)集中,缺少很多年齡值。如果我們的任何決策樹按年齡分割,那么樹將搜索另一個(gè)以與年齡相似的方式分割的變量,并使用它們代替。隨機(jī)森林無法做到這一點(diǎn),因此我們需要找到一種手動(dòng)替換這些值的方法。

看一下合并后的數(shù)據(jù)框的年齡變量:

  1. > summary(combi$Age)


  2. Min. 1st Qu. Median Mean 3rd Qu. Max. NA's


  3. 0.17 21.00 28.00 29.88 39.00 80.00 263

1309個(gè)中有263個(gè)值丟失了,這個(gè)數(shù)字高達(dá)20%!此子集是否缺少值。我們現(xiàn)在也想使用method="anova"決策樹的版本,因?yàn)槲覀儾皇且兕A(yù)測(cè)某個(gè)類別,而是連續(xù)變量。因此,讓我們使用可用的年齡值在數(shù)據(jù)子集上生成一個(gè)樹,然后替換缺少的那些樣本:

  1. > combi$Age[is.na(combi$Age)] <- predict(Agefit, combi[is.na(combi$Age),])


您可以繼續(xù)檢查摘要,所有這些NA值都消失了。

現(xiàn)在讓我們看看整個(gè)數(shù)據(jù)集的摘要,看看是否還有其他我們以前沒有注意到的問題變量:

> summary(combi)

?

  1. > summary(combi$Embarked)


  2. C Q S


  3. 2 270 123 914

兩名乘客的空白。首先,我們需要找出他們是誰!我們可以which用于此:

  1. > which(combi$Embarked == '')


  2. [1] 62 830

然后我們簡單地替換這兩個(gè),并將其編碼為一個(gè)因素:

  1. > combi$Embarked <- factor(combi$Embarked)


另一個(gè)變量是Fare,讓我們來看看:

  1. > summary(combi$Fare)


  2. Min. 1st Qu. Median Mean 3rd Qu. Max. NA's


  3. 0.000 7.896 14.450 33.300 31.280 512.300 1

它只有一個(gè)乘客NA,所以讓我們找出它是哪一個(gè)并用中位數(shù)票價(jià)取而代之:

  1. > which(is.na(combi$Fare))


  2. [1] 1044

好的。我們的數(shù)據(jù)框現(xiàn)已被清理?,F(xiàn)在進(jìn)入第二個(gè)限制:R中的隨機(jī)森林只能消化多達(dá)32個(gè)等級(jí)的因子。我們的FamilyID變量幾乎翻了一倍。我們可以在這里采用兩條路徑,或者將這些級(jí)別更改為它們的基礎(chǔ)整數(shù)(使用unclass()函數(shù))并讓樹將它們視為連續(xù)變量,或者手動(dòng)減少級(jí)別數(shù)以使其保持在閾值之下。

我們采取第二種方法。然后我們將它轉(zhuǎn)換回一個(gè)因素:

  1. > combi$FamilyID2 <- combi$FamilyID

  2. > combi$FamilyID2 <- factor(combi$FamilyID2)

我們已經(jīng)降到了22級(jí),所以我們很好地將測(cè)試和訓(xùn)練集分開,安裝并加載包

  1. randomForest:


  2. > install.packages('randomForest')

設(shè)置隨機(jī)種子。

> set.seed(415)

內(nèi)部數(shù)字并不重要,您只需確保每次使用相同的種子編號(hào),以便在隨機(jī)森林函數(shù)內(nèi)生成相同的隨機(jī)數(shù)。

現(xiàn)在我們準(zhǔn)備運(yùn)行我們的模型了。語法類似于決策樹。

> fit <- randomForest( )

我們強(qiáng)制模型通過暫時(shí)將目標(biāo)變量更改為僅使用兩個(gè)級(jí)別的因子來預(yù)測(cè)我們的分類,而不是method="class"像使用那樣指定。

如果您正在使用更大的數(shù)據(jù)集,您可能希望減少樹的數(shù)量,至少在初始探索時(shí),使用限制每個(gè)樹的復(fù)雜性nodesize以及減少采樣的行數(shù)sampsize

那么讓我們來看看哪些變量很重要:

> varImpPlot(fit)

?

我們的Title變量在這兩個(gè)指標(biāo)中都處于領(lǐng)先地位。我們應(yīng)該非常高興地看到剩下的工程變量也做得非常好。

預(yù)測(cè)函數(shù)與決策樹的工作方式類似,我們可以完全相同的方式構(gòu)建提交文件。

  1. > Prediction <- predict(fit, test)

  2. > write.csv(submit, file = "firstforest.csv", row.names = FALSE)

讓我們嘗試一下條件推理樹的森林。

所以繼續(xù)安裝并加載party包。

  1. > install.packages('party')


  2. > library(party)

以與我們的隨機(jī)森林類似的方式構(gòu)建模型:

  1. > set.seed(415)

  2. > fit <- cforest( )

條件推理樹能夠處理比Random Forests更多級(jí)別的因子。讓我們做另一個(gè)預(yù)測(cè):

  1. > Prediction <- predict(fit, test, OOB=TRUE, type = "response")


?

?

有問題歡迎下方留言!

?

最受歡迎的見解

1.從決策樹模型看員工為什么離職

2.R語言基于樹的方法:決策樹,隨機(jī)森林

3.python中使用scikit-learn和pandas決策樹

4.機(jī)器學(xué)習(xí):在SAS中運(yùn)行隨機(jī)森林?jǐn)?shù)據(jù)分析報(bào)告

5.R語言用隨機(jī)森林和文本挖掘提高航空公司客戶滿意度

6.機(jī)器學(xué)習(xí)助推快時(shí)尚精準(zhǔn)銷售時(shí)間序列

7.用機(jī)器學(xué)習(xí)識(shí)別不斷變化的股市狀況——隱馬爾可夫模型的應(yīng)用

8.python機(jī)器學(xué)習(xí):推薦系統(tǒng)實(shí)現(xiàn)(以矩陣分解來協(xié)同過濾)

9.python中用pytorch機(jī)器學(xué)習(xí)分類預(yù)測(cè)銀行客戶流失


R語言泰坦尼克號(hào)隨機(jī)森林模型案例數(shù)據(jù)分析的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
河北省| 左权县| 涿鹿县| 广饶县| 昭平县| 天祝| 东平县| 丹东市| 鲁山县| 府谷县| 广德县| 都江堰市| 贡嘎县| 自治县| 左权县| 石林| 扶沟县| 筠连县| 聂拉木县| 上栗县| 芷江| 浑源县| 友谊县| 精河县| 栾城县| 涪陵区| 望奎县| 墨脱县| 玛曲县| 屯门区| 咸阳市| 杂多县| 石门县| 江山市| 平舆县| 葵青区| 尖扎县| 屯昌县| 西乌珠穆沁旗| 吉林省| 阿拉善左旗|