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

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

【視頻】Boosting集成學(xué)習(xí)原理與R語言提升回歸樹BRT預(yù)測短鰭鰻分布生態(tài)學(xué)實例

2022-05-04 11:29 作者:拓端tecdat  | 我要投稿

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

原文出處:拓端數(shù)據(jù)部落公眾號

為什么要使用Boosting?

單一模型的預(yù)測往往會有缺陷,為了解決復(fù)雜的問題,我們需要集成學(xué)習(xí)通過組合多個模型來提高機器學(xué)習(xí)的預(yù)測性能。

視頻:Boosting集成學(xué)習(xí)原理與R語言提升回歸樹BRT預(yù)測短鰭鰻分布生態(tài)學(xué)實例

Boosting集成學(xué)習(xí)原理與R語言提升回歸樹BRT預(yù)測短鰭鰻分布生態(tài)學(xué)實例

,時長10:25

假設(shè)給定包含貓和其他動物圖像的數(shù)據(jù)集,您被要求構(gòu)建一個模型,可以將這些圖像分為兩個單獨的類。像其他人一樣,您將首先使用一些規(guī)則來識別圖像,如下所示:

圖像有尖耳朵:圖像判斷為貓

圖像有一個更寬的嘴結(jié)構(gòu):圖像判斷為狗

圖像有貓形眼睛:圖像判斷為貓

圖像有鋒利的爪子:圖像判斷為貓

所有這些規(guī)則都可以幫助我們識別圖像是狗還是貓,但是,如果我們要根據(jù)單一規(guī)則對圖像進行分類,那么預(yù)測就會有缺陷。這些規(guī)則中的每一個都被單獨稱為弱學(xué)習(xí)器,因為這些規(guī)則不足以將圖像分類為貓或狗。

因此,為了確保我們的預(yù)測更準確,我們可以通過使用多數(shù)規(guī)則或加權(quán)平均來組合來自這些弱學(xué)習(xí)器中的每一個的預(yù)測。這構(gòu)成了一個強大的學(xué)習(xí)者模型。

在上面的例子中,我們定義了 4 個弱學(xué)習(xí)器,這些規(guī)則中的大多數(shù)(即 4 個學(xué)習(xí)器中有 3 個將圖像預(yù)測為貓)為我們提供了預(yù)測圖像是一只貓。因此,我們的最終輸出是一只貓。

什么是Boosting?

Boosting 是一種集成學(xué)習(xí)技術(shù),它使用一組機器學(xué)習(xí)算法將弱學(xué)習(xí)器轉(zhuǎn)換為強學(xué)習(xí)器,以提高模型的準確性。

集成學(xué)習(xí)是一種通過組合多個學(xué)習(xí)器來提高機器學(xué)習(xí)模型性能的方法,它試圖從弱分類器的數(shù)量中構(gòu)建一個強分類器。它是通過串聯(lián)使用弱模型來構(gòu)建模型來完成的。與單一模型相比,這種類型的學(xué)習(xí)構(gòu)建的模型具有更高的效率和準確性。這就是為什么使用集成方法贏得市場領(lǐng)先的比賽,如 Netflix 推薦比賽、Kaggle 比賽等。

AdaBoost是第一個真正成功的為二分類而開發(fā)的Boosting算法。AdaBoost是Adaptive Boosting的縮寫,是一種非常流行的提升技術(shù),它將多個“弱分類器”組合成一個“強分類器”。


上圖以非常簡單的方式解釋了AdaBoost算法。讓我們嘗試逐步理解它:?

模型1由10個數(shù)據(jù)點組成,它們由兩種類型組成,即加號和減號,其中5個是加號,另外5個是減號,并且每個數(shù)據(jù)點最初都被分配了相同的權(quán)重。第一個模型嘗試對數(shù)據(jù)點進行分類并生成一條垂直分隔線,但它錯誤地將3加號分類為減號。

模型2由來自先前模型的10個數(shù)據(jù)點組成,其中3個錯誤分類的加號被加權(quán)更多,以便當(dāng)前模型嘗試更多地正確分類這些加號。該模型生成了一條垂直分隔線,可以正確分類先前錯誤分類的加號,但在此嘗試中,它錯誤地分類了三個減號。

模型3由來自先前模型的10個數(shù)據(jù)點組成,其中3個錯誤分類的減號的權(quán)重更高,因此當(dāng)前模型嘗試更多地正確分類這些減號。該模型生成一個水平分隔線,可以正確分類先前錯誤分類的減號。

模型4將模型1、模型2 和模型3 組合在一起,以構(gòu)建一個比使用的任何單個模型都要好得多的強大預(yù)測模型。

boosting的利弊

與其他類型的模型相比,boosting的明顯好處是它能夠生成具有高預(yù)測準確性的模型。

一個潛在的缺點是擬合的提升模型很難解釋。雖然它可能提供了預(yù)測新數(shù)據(jù)因變量的巨大能力,但很難解釋它執(zhí)行此操作的確切過程。

Boosting的種類有哪些?

Boosting 算法分為以下三種類型:

剛才提到的AdaBoost(自適應(yīng)提升)算法。

梯度提升算法。

XGBoost 算法。

梯度提升

Gradient Boosting 也是基于順序集成學(xué)習(xí)。這里的基礎(chǔ)學(xué)習(xí)器是按順序生成的,這樣當(dāng)前的基礎(chǔ)學(xué)習(xí)器總是比前一個更有效,即整個模型隨著每次迭代而順序改進。

這種類型的提升的不同之處在于錯誤分類結(jié)果的權(quán)重不會增加,相反,梯度提升方法試圖通過添加一個添加弱學(xué)習(xí)者的新模型來優(yōu)化先前學(xué)習(xí)者的損失函數(shù),以減少損失函數(shù)。

這里的主要思想是克服先前學(xué)習(xí)者預(yù)測中的錯誤。這種類型的提升具有三個主要組成部分:

1.需要改進的損失函數(shù)。

2.用于計算預(yù)測和形成強學(xué)習(xí)器的弱學(xué)習(xí)器。

3.將規(guī)范化損失函數(shù)的加法模型。

與 AdaBoost 一樣,梯度提升也可用于分類和回歸問題。

XGBoost?

XGBoost 是 Gradient Boosting 方法的高級版本,字面意思是 eXtreme Gradient Boosting。陳天啟開發(fā)的 XGBoost 屬于分布式機器學(xué)習(xí)社區(qū)(DMLC)的范疇。

該算法的主要目的是提高計算速度和效率。Gradient Descent Boosting 算法以較慢的速度計算輸出,因為它們按順序分析數(shù)據(jù)集,因此 XGBoost 用于提升或極大提升模型的性能。

XGBoost 旨在專注于計算速度和模型效率。XGBoost 提供的主要功能有:

并行創(chuàng)建決策樹。

實施用于評估大型復(fù)雜模型的分布式計算方法。

使用核外計算分析龐大的數(shù)據(jù)集。

實施緩存優(yōu)化以充分利用資源。

R語言生態(tài)學(xué)建模:提升回歸樹(BRT)預(yù)測短鰭鰻生存分布和影響因素

這是一個簡短的教程,在R中擬合BRT(提升回歸樹)模型。我們的目標(biāo)是使BRT(提升回歸樹)模型應(yīng)用于生態(tài)學(xué)數(shù)據(jù),并解釋結(jié)果。

本教程的目的是幫助你學(xué)習(xí)如何在R中開發(fā)一個BRT模型。

?示例數(shù)據(jù)

有兩套短鰭鰻的記錄數(shù)據(jù)。一個用于模型訓(xùn)練(建立),一個用于模型測試(評估)。在下面的例子中,我們加載的是訓(xùn)練數(shù)據(jù)。存在(1)和不存在(0)被記錄在第2列。環(huán)境變量在第3至14列。

>?head(train)

擬合模型

擬合gbm模型,你需要決定使用什么設(shè)置,本文為你提供經(jīng)驗法則使用的信息。這些數(shù)據(jù)有1000個地點,包括202條短鰭鰻的存在記錄。你可以假設(shè):1. 有足夠的數(shù)據(jù)來建立具有合理復(fù)雜性的相互作用模型? 2. 大約0.01的lr學(xué)習(xí)率可能是一個合理的初始點。下面的例子顯示如何確定最佳樹數(shù)(nt)。

  1. step(data=?train,??x?=?3:13,

  2. ?family?=?"bernoulli",??comp?=?5,

  3. ?lr?=?0.01,?bag.fr?=?0.5)

對提升回歸樹模型進行交叉驗證優(yōu)化。
使用1000個觀測值和11個預(yù)測因子,創(chuàng)建10個50棵樹的初始模型。

上面我們使用了交叉驗證的。我們定義了:數(shù)據(jù);預(yù)測變量;因變量--表示物種數(shù)據(jù)的列號;樹的復(fù)雜度--我們首先嘗試樹的復(fù)雜度為5;學(xué)習(xí)率--我們嘗試用0. 01。

運行一個如上所述的模型,將輸出進度報告,做出圖形。首先,你能看到的東西。這個模型是用默認的10倍交叉驗證法建立的。黑色實心曲線是預(yù)測偏差變化的平均值,點狀曲線是1個標(biāo)準誤差(即在交叉驗證上測量的結(jié)果)。紅線表示平均值的最小值,綠線表示生成該值的樹的數(shù)量。模型對象中返回的最終模型是在完整的數(shù)據(jù)集上建立的,使用的是最優(yōu)的樹數(shù)量。

length(fitted)

返回的結(jié)果包含 fitted - 來自最終樹的擬合值,fitted.vars - 擬合值的方差, residuals - 擬合值的殘差,contribution - 變量的相對重要性。statistics - 相關(guān)的評估統(tǒng)計量。cv.statistics 這些是最合適的評估統(tǒng)計數(shù)據(jù)。

我們在每個交叉驗證中計算每個統(tǒng)計量(在確定的最佳樹數(shù)下,根據(jù)所有交叉驗證中預(yù)測偏差的平均變化進行計算),然后在此呈現(xiàn)這些基于交叉驗證的統(tǒng)計量的平均值和標(biāo)準誤差。weights - 擬合模型時使用的權(quán)重(默認情況下,每個觀測值為 "1",即權(quán)重相等)。trees. fitted - 階段性擬合過程中每一步所擬合的樹的數(shù)量記錄;training.loss.values - 訓(xùn)練數(shù)據(jù)上偏差的階段性變化 ,cv.values - 階段性過程中每一步所計算的預(yù)測偏差的CV估計值的平均值。
你可以用摘要函數(shù)查看變量的重要性

>?summary(lr?)

選擇設(shè)置

以上是對設(shè)置的初步猜測,使用了Elith等人(2008)中討論的經(jīng)驗法則。它做出的模型只有650棵樹,所以我們的下一步將是減少lr。例如,嘗試lr = 0.005,爭取超過1000棵樹。

  1. step(data=train,??x?=?3:13,??

  2. ??tree.co??=?5,

  3. +?lr?=?0.005

為了探索其他設(shè)置是否表現(xiàn)更好,你可以將數(shù)據(jù)分成訓(xùn)練集和測試集,或者使用交叉驗證結(jié)果,改變tc、lr和bagging,然后比較結(jié)果。

簡化模型

簡化會建立了許多模型,所以它可能很慢。在其中,我們評估了簡化lr為0.005的模型的價值,但只測試剔除最多5個變量("n.drop "參數(shù);默認是自動規(guī)則一直持續(xù)到預(yù)測偏差的平均變化超過gbm.step中計算的原始標(biāo)準誤差)。

對于我們的運行,估計要剔除的最佳變量數(shù)是1;可以使用紅色垂直線指示的數(shù)字?,F(xiàn)在,建立一個剔除1個預(yù)測變量的模型,使用[[1]]表示我們要剔除一個變量。

step(??x=?pred.list\[\[1\]\],?)

現(xiàn)在這已經(jīng)形成了一個新的模型,但是考慮到我們并不特別想要一個更簡單的模型(因為在這種規(guī)模的數(shù)據(jù)集中,包含的變量貢獻很小是可以接受的),我們不會繼續(xù)使用它。

繪制模型的函數(shù)和擬合值

由我們的函數(shù)創(chuàng)建的BRT模型的擬合函數(shù)可以用plot來繪制。

>??plot(?lr005?)

這個函數(shù)的附加參數(shù)允許對圖進行平滑表示。根據(jù)環(huán)境空間內(nèi)觀測值的分布,擬合函數(shù)可以給出與每個預(yù)測因子有關(guān)的擬合值分布。

?fits(?lr005)

每張圖上方的數(shù)值表示與每個非因素預(yù)測因子有關(guān)的擬合值的加權(quán)平均值。

繪制交互作用

該代碼評估數(shù)據(jù)中成對的交互作用的程度。

?inter(?lr005)

返回一個列表。前兩個部分是對結(jié)果的總結(jié),首先是5個最重要的交互作用的排名列表,其次是所有交互作用的表格。

f$intera

你可以像這樣繪制交互作用。

persp(?lr005,??z.range=c(0,0.6)

對新數(shù)據(jù)進行預(yù)測

如果您想對一組地點進行預(yù)測(而不是對整個地圖進行預(yù)測),一般的程序是建立一個數(shù)據(jù)框架,行代表地點,列代表您模型中的變量。我們用于預(yù)測站點的數(shù)據(jù)集在一個名為test的文件中。"列需要轉(zhuǎn)換為一個因子變量,其水平與建模數(shù)據(jù)中的水平一致。使用predict對BRT模型中的站點進行預(yù)測,預(yù)測結(jié)果在一個名為preds的向量中。

  1. preds?<-?predict(lr005,test,

  2. deviance(obs=test,?pred=preds)

  1. >?d?<-?cbind(obs,?preds)

  2. >?e?<-?evaluate(p=pres,?a=abs)

gbm中預(yù)測的一個有用的特點是可以預(yù)測不同數(shù)量的樹。

  1. tree<-?seq(100,?5000,?by=100)

  2. predict(?n.trees=tree,?"response")

上面的代碼會形成一個矩陣,每一列都是模型對tree.list中該元素所指定的樹數(shù)量的預(yù)測,例如,第5列的預(yù)測是針對tree.list[5]=500棵樹?,F(xiàn)在來計算所有這些結(jié)果的偏差,然后繪制。

  1. >?for?(i?in?1:50)?{

  2. ?calc.devi(obs,

  3. +?pred\[,i\])

  4. +?}

  5. >?plot(tree.list,deviance

空間預(yù)測

這里我們展示了如何對整張地圖進行預(yù)測。

>?plot(grids)

我們用一個常量值("因子 "類)創(chuàng)建一個data.frame,并將其傳遞給預(yù)測函數(shù)。

  1. >?p?<-?predict(grids,?lr005,

  2. >?plot(p)

本文摘選R語言生態(tài)學(xué)建模:增強回歸樹(BRT)預(yù)測短鰭鰻生存分布和影響因素,點擊“閱讀原文”獲取全文完整資料。

點擊標(biāo)題查閱往期內(nèi)容

Python決策樹、隨機森林、樸素貝葉斯、KNN(K-最近鄰居)分類分析銀行拉新活動挖掘潛在貸款客戶

R語言邏輯回歸(Logistic Regression)、回歸決策樹、隨機森林信用卡違約分析信貸數(shù)據(jù)集

R語言基于Bagging分類的邏輯回歸(Logistic Regression)、決策樹、森林分析心臟病患者

R語言樣條曲線、決策樹、Adaboost、梯度提升(GBM)算法進行回歸、分類和動態(tài)可視化

R語言用主成分PCA、?邏輯回歸、決策樹、隨機森林分析心臟病數(shù)據(jù)并高維可視化

matlab使用分位數(shù)隨機森林(QRF)回歸樹檢測異常值

R語言用邏輯回歸、決策樹和隨機森林對信貸數(shù)據(jù)集進行分類預(yù)測

R語言中使用線性模型、回歸決策樹自動組合特征因子水平

R語言中自編基尼系數(shù)的CART回歸決策樹的實現(xiàn)

Python對商店數(shù)據(jù)進行l(wèi)stm和xgboost銷售量時間序列建模預(yù)測分析

R語言基于樹的方法:決策樹,隨機森林,Bagging,增強樹

R語言實現(xiàn)偏最小二乘回歸法 partial least squares (PLS)回歸

R語言多項式回歸擬合非線性關(guān)系

R語言邏輯回歸(Logistic回歸)模型分類預(yù)測病人冠心病風(fēng)險

R語言用局部加權(quán)回歸(Lowess)對logistic邏輯回歸診斷和殘差分析

R語言混合效應(yīng)邏輯回歸(mixed effects logistic)模型分析肺癌數(shù)據(jù)


【視頻】Boosting集成學(xué)習(xí)原理與R語言提升回歸樹BRT預(yù)測短鰭鰻分布生態(tài)學(xué)實例的評論 (共 條)

分享到微博請遵守國家法律
陆丰市| 拜城县| 岐山县| 朔州市| 东丰县| 青神县| 左云县| 西乌珠穆沁旗| 湖南省| 南召县| 乳山市| 沾化县| 辽宁省| 孟州市| 来安县| 龙里县| 宁明县| 阆中市| 龙山县| 临泉县| 湖北省| 磴口县| 聂拉木县| 永德县| 若尔盖县| 淅川县| 敦化市| 华宁县| 桃源县| 盘锦市| 蒙自县| 九江市| 昆山市| 阿拉善盟| 广南县| 城步| 红安县| 靖州| 台东县| 常宁市| 全州县|