生態(tài)學(xué)建模:增強(qiáng)回歸樹(shù)(BRT)預(yù)測(cè)短鰭鰻生存分布和影響因素|附代碼數(shù)據(jù)
全文下載鏈接:?http://tecdat.cn/?p=22482
在本文中,在R中擬合BRT(提升回歸樹(shù))模型。我們的目標(biāo)是使BRT(提升回歸樹(shù))模型應(yīng)用于生態(tài)學(xué)數(shù)據(jù),并解釋結(jié)果。
引言
本教程的目的是幫助你學(xué)習(xí)如何在R中開(kāi)發(fā)一個(gè)BRT模型。
?示例數(shù)據(jù)
有兩套短鰭鰻的記錄數(shù)據(jù)。一個(gè)用于模型訓(xùn)練(建立),一個(gè)用于模型測(cè)試(評(píng)估)。在下面的例子中,我們加載的是訓(xùn)練數(shù)據(jù)。存在(1)和不存在(0)被記錄在第2列。環(huán)境變量在第3至14列。
>?head(train)
擬合模型
擬合gbm模型,你需要決定使用什么設(shè)置,本文為你提供經(jīng)驗(yàn)法則使用的信息。這些數(shù)據(jù)有1000個(gè)地點(diǎn),包括202條短鰭鰻的存在記錄。你可以假設(shè):1. 有足夠的數(shù)據(jù)來(lái)建立具有合理復(fù)雜性的相互作用模型? 2. 大約0.01的lr學(xué)習(xí)率可能是一個(gè)合理的初始點(diǎn)。下面的例子顯示如何確定最佳樹(shù)數(shù)(nt)。
step(data=?train,??x?=?3:13,
?family?=?"bernoulli",??comp?=?5,
?lr?=?0.01,?bag.fr?=?0.5)
對(duì)提升回歸樹(shù)模型進(jìn)行交叉驗(yàn)證優(yōu)化。
使用1000個(gè)觀測(cè)值和11個(gè)預(yù)測(cè)因子,創(chuàng)建10個(gè)50棵樹(shù)的初始模型。
上面我們使用了交叉驗(yàn)證的。我們定義了:數(shù)據(jù);預(yù)測(cè)變量;因變量--表示物種數(shù)據(jù)的列號(hào);樹(shù)的復(fù)雜度--我們首先嘗試樹(shù)的復(fù)雜度為5;學(xué)習(xí)率--我們嘗試用0. 01。
運(yùn)行一個(gè)如上所述的模型,將輸出進(jìn)度報(bào)告,做出圖形。首先,你能看到的東西。這個(gè)模型是用默認(rèn)的10倍交叉驗(yàn)證法建立的。黑色實(shí)心曲線是預(yù)測(cè)偏差變化的平均值,點(diǎn)狀曲線是1個(gè)標(biāo)準(zhǔn)誤差(即在交叉驗(yàn)證上測(cè)量的結(jié)果)。紅線表示平均值的最小值,綠線表示生成該值的樹(shù)的數(shù)量。模型對(duì)象中返回的最終模型是在完整的數(shù)據(jù)集上建立的,使用的是最優(yōu)的樹(shù)數(shù)量。
length(fitted)
返回的結(jié)果包含 fitted - 來(lái)自最終樹(shù)的擬合值,fitted.vars - 擬合值的方差, residuals - 擬合值的殘差,contribution - 變量的相對(duì)重要性。statistics - 相關(guān)的評(píng)估統(tǒng)計(jì)量。cv.statistics 這些是最合適的評(píng)估統(tǒng)計(jì)數(shù)據(jù)。
我們?cè)诿總€(gè)交叉驗(yàn)證中計(jì)算每個(gè)統(tǒng)計(jì)量(在確定的最佳樹(shù)數(shù)下,根據(jù)所有交叉驗(yàn)證中預(yù)測(cè)偏差的平均變化進(jìn)行計(jì)算),然后在此呈現(xiàn)這些基于交叉驗(yàn)證的統(tǒng)計(jì)量的平均值和標(biāo)準(zhǔn)誤差。weights - 擬合模型時(shí)使用的權(quán)重(默認(rèn)情況下,每個(gè)觀測(cè)值為 "1",即權(quán)重相等)。trees. fitted - 階段性擬合過(guò)程中每一步所擬合的樹(shù)的數(shù)量記錄;training.loss.values - 訓(xùn)練數(shù)據(jù)上偏差的階段性變化 ,cv.values - 階段性過(guò)程中每一步所計(jì)算的預(yù)測(cè)偏差的CV估計(jì)值的平均值。
你可以用摘要函數(shù)查看變量的重要性
>?summary(lr?)
選擇設(shè)置
以上是對(duì)設(shè)置的初步猜測(cè),使用了Elith等人(2008)中討論的經(jīng)驗(yàn)法則。它做出的模型只有650棵樹(shù),所以我們的下一步將是減少lr。例如,嘗試lr = 0.005,爭(zhēng)取超過(guò)1000棵樹(shù)。
step(data=train,??x?=?3:13,??
??tree.co??=?5,
+?lr?=?0.005
為了探索其他設(shè)置是否表現(xiàn)更好,你可以將數(shù)據(jù)分成訓(xùn)練集和測(cè)試集,或者使用交叉驗(yàn)證結(jié)果,改變tc、lr和bagging,然后比較結(jié)果。
簡(jiǎn)化模型
簡(jiǎn)化會(huì)建立了許多模型,所以它可能很慢。在其中,我們?cè)u(píng)估了簡(jiǎn)化lr為0.005的模型的價(jià)值,但只測(cè)試剔除最多5個(gè)變量("n.drop "參數(shù);默認(rèn)是自動(dòng)規(guī)則一直持續(xù)到預(yù)測(cè)偏差的平均變化超過(guò)gbm.step中計(jì)算的原始標(biāo)準(zhǔn)誤差)。
對(duì)于我們的運(yùn)行,估計(jì)要剔除的最佳變量數(shù)是1;可以使用紅色垂直線指示的數(shù)字?,F(xiàn)在,建立一個(gè)剔除1個(gè)預(yù)測(cè)變量的模型,使用[[1]]表示我們要剔除一個(gè)變量。
點(diǎn)擊標(biāo)題查閱往期內(nèi)容
R語(yǔ)言樣條曲線、決策樹(shù)、Adaboost、梯度提升(GBM)算法進(jìn)行回歸、分類和動(dòng)態(tài)可視化
左右滑動(dòng)查看更多
01
02
03
04
step(??x=?pred.list[[1]],?)
現(xiàn)在這已經(jīng)形成了一個(gè)新的模型,但是考慮到我們并不特別想要一個(gè)更簡(jiǎn)單的模型(因?yàn)樵谶@種規(guī)模的數(shù)據(jù)集中,包含的變量貢獻(xiàn)很小是可以接受的),我們不會(huì)繼續(xù)使用它。
繪制模型的函數(shù)和擬合值
由我們的函數(shù)創(chuàng)建的BRT模型的擬合函數(shù)可以用plot來(lái)繪制。
>??plot(?lr005?)
這個(gè)函數(shù)的附加參數(shù)允許對(duì)圖進(jìn)行平滑表示。根據(jù)環(huán)境空間內(nèi)觀測(cè)值的分布,擬合函數(shù)可以給出與每個(gè)預(yù)測(cè)因子有關(guān)的擬合值分布。
?fits(?lr005)
每張圖上方的數(shù)值表示與每個(gè)非因素預(yù)測(cè)因子有關(guān)的擬合值的加權(quán)平均值。
繪制交互作用
該代碼評(píng)估數(shù)據(jù)中成對(duì)的交互作用的程度。
?inter(?lr005)
返回一個(gè)列表。前兩個(gè)部分是對(duì)結(jié)果的總結(jié),首先是5個(gè)最重要的交互作用的排名列表,其次是所有交互作用的表格。
f$intera
你可以像這樣繪制交互作用。
persp(?lr005,??z.range=c(0,0.6)
對(duì)新數(shù)據(jù)進(jìn)行預(yù)測(cè)
如果您想對(duì)一組地點(diǎn)進(jìn)行預(yù)測(cè)(而不是對(duì)整個(gè)地圖進(jìn)行預(yù)測(cè)),一般的程序是建立一個(gè)數(shù)據(jù)框架,行代表地點(diǎn),列代表您模型中的變量。我們用于預(yù)測(cè)站點(diǎn)的數(shù)據(jù)集在一個(gè)名為test的文件中。"列需要轉(zhuǎn)換為一個(gè)因子變量,其水平與建模數(shù)據(jù)中的水平一致。使用predict對(duì)BRT模型中的站點(diǎn)進(jìn)行預(yù)測(cè),預(yù)測(cè)結(jié)果在一個(gè)名為preds的向量中。
preds?<-?predict(lr005,test,
deviance(obs=test,?pred=preds)
>?d?<-?cbind(obs,?preds)
>?e?<-?evaluate(p=pres,?a=abs)
gbm中預(yù)測(cè)的一個(gè)有用的特點(diǎn)是可以預(yù)測(cè)不同數(shù)量的樹(shù)。
tree<-?seq(100,?5000,?by=100)predict(?n.trees=tree,?"response")
上面的代碼會(huì)形成一個(gè)矩陣,每一列都是模型對(duì)tree.list中該元素所指定的樹(shù)數(shù)量的預(yù)測(cè),例如,第5列的預(yù)測(cè)是針對(duì)tree.list[5]=500棵樹(shù)。現(xiàn)在來(lái)計(jì)算所有這些結(jié)果的偏差,然后繪制。
>?for?(i?in?1:50)?{?calc.devi(obs,+?pred[,i])+?}>?plot(tree.list,deviance
空間預(yù)測(cè)
這里我們展示了如何對(duì)整張地圖進(jìn)行預(yù)測(cè)。
>?plot(grids)
我們用一個(gè)常量值("因子 "類)創(chuàng)建一個(gè)data.frame,并將其傳遞給預(yù)測(cè)函數(shù)。
>?p?<-?predict(grids,?lr005,
>?plot(p)
本文摘選?《?R語(yǔ)言生態(tài)學(xué)建模:增強(qiáng)回歸樹(shù)(BRT)預(yù)測(cè)短鰭鰻生存分布和影響因素?》?,點(diǎn)擊“閱讀原文”獲取全文完整資料。
點(diǎn)擊標(biāo)題查閱往期內(nèi)容
Python決策樹(shù)、隨機(jī)森林、樸素貝葉斯、KNN(K-最近鄰居)分類分析銀行拉新活動(dòng)挖掘潛在貸款客戶
R語(yǔ)言邏輯回歸(Logistic Regression)、回歸決策樹(shù)、隨機(jī)森林信用卡違約分析信貸數(shù)據(jù)集R語(yǔ)言基于Bagging分類的邏輯回歸(Logistic Regression)、決策樹(shù)、森林分析心臟病患者
R語(yǔ)言樣條曲線、決策樹(shù)、Adaboost、梯度提升(GBM)算法進(jìn)行回歸、分類和動(dòng)態(tài)可視化
R語(yǔ)言用主成分PCA、?邏輯回歸、決策樹(shù)、隨機(jī)森林分析心臟病數(shù)據(jù)并高維可視化
matlab使用分位數(shù)隨機(jī)森林(QRF)回歸樹(shù)檢測(cè)異常值
R語(yǔ)言用邏輯回歸、決策樹(shù)和隨機(jī)森林對(duì)信貸數(shù)據(jù)集進(jìn)行分類預(yù)測(cè)
R語(yǔ)言中使用線性模型、回歸決策樹(shù)自動(dòng)組合特征因子水平
R語(yǔ)言中自編基尼系數(shù)的CART回歸決策樹(shù)的實(shí)現(xiàn)
Python對(duì)商店數(shù)據(jù)進(jìn)行l(wèi)stm和xgboost銷售量時(shí)間序列建模預(yù)測(cè)分析
R語(yǔ)言基于樹(shù)的方法:決策樹(shù),隨機(jī)森林,Bagging,增強(qiáng)樹(shù)
R語(yǔ)言實(shí)現(xiàn)偏最小二乘回歸法 partial least squares (PLS)回歸
R語(yǔ)言多項(xiàng)式回歸擬合非線性關(guān)系
R語(yǔ)言邏輯回歸(Logistic回歸)模型分類預(yù)測(cè)病人冠心病風(fēng)險(xiǎn)
R語(yǔ)言用局部加權(quán)回歸(Lowess)對(duì)logistic邏輯回歸診斷和殘差分析
R語(yǔ)言混合效應(yīng)邏輯回歸(mixed effects logistic)模型分析肺癌數(shù)據(jù)