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

歡迎光臨散文網 會員登陸 & 注冊

拓端tecdat|R語言基于Bagging分類的邏輯回歸(Logistic Regression)、決策樹、森林分析

2021-07-25 22:39 作者:拓端tecdat  | 我要投稿

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

原文出處:拓端數據部落公眾號

今天,我們將看下bagging 技術里面的啟發(fā)式算法。

通常,bagging 與樹有關,用于生成森林。但實際上,任何類型的模型都有可能使用bagging ?;仡櫼幌?,bagging意味著 "boostrap聚合"。因此,考慮一個模型m:X→Y。讓?

表示從樣本中得到的m的估計

現(xiàn)在考慮一些boostrap樣本,

,i是從{1,?,n}中隨機抽取的。 基于該樣本,估計

。然后抽出許多樣本,考慮獲得的估計值的一致性,使用多數規(guī)則,或使用概率的平均值(如果考慮概率主義模型)。因此

Bagging邏輯回歸?

考慮一下邏輯回歸的情況。為了產生一個bootstrap樣本,自然要使用上面描述的技術。即隨機抽取一對(yi,xi),均勻地(概率為

)替換。這里考慮一下小數據集。對于bagging部分,使用以下代碼


  1. for(s in 1:1000){

  2. df_s = df[sample(1:n,size=n,replace=TRUE)

  3. logit[s]= glm(y~., df_s, family=binomial

然后,我們應該在這1000個模型上進行匯總,獲得bagging的部分。


  1. unlist(lapply(1:1000,function(z) predict(logit[z],nnd))}

我們現(xiàn)在對任何新的觀察都有一個預測

  1. vv = outer(vu,vu,(function(x,y) mean(pre(c(x,y)))

  2. contour(vu,vu,vv,levels = .5,add=TRUE)

Bagging邏輯回歸?

另一種可用于生成bootstrap樣本的技術是保留所有的xi,但對其中的每一個,都(隨機地)抽取一個y的值,其中有

因此

因此,現(xiàn)在Bagging算法的代碼是

  1. glm(y~x1+x2, df, family=binomial)

  2. for(s in 1:100)

  3. y = rbinom(size=1,prob=predict(reg,type="response")

  4. L_logit[s] = glm(y~., df_s, family=binomial)

bagging算法的agg部分保持不變。在這里我們獲得

  1. vv = outer(vu,vu,(function(x,y) mean(pre(c(x,y)))))

  2. contour(vu,vu,vv,levels = .5,add=TRUE)

當然,我們可以使用該代碼,檢查預測獲得我們的樣本中的觀察。

在這里考慮心肌梗塞數據。

數據

我們使用心臟病數據,預測急診病人的心肌梗死,包含變量:

  1. 心臟指數

  2. 心搏量指數

  3. 舒張壓

  4. 肺動脈壓

  5. 心室壓力

  6. 肺阻力

  7. 是否存活

其中我們有急診室的觀察結果,對于心肌梗塞,我們想了解誰存活下來了,得到一個預測模型

  1. reg = glm(as.factor(PRO)~., carde, family=binomial)

  2. for(s in 1:1000){

  3. L_logit[s] = glm(as.factor(PRO)~., my_s, family=binomial)

  4. }


  5. unlist(lapply(1:100,predict(L_logit[z],newdata=d,type="response")}

對于第一個觀察,通過我們的1000個模擬數據集,以及我們的1000個模型,我們得到了以下死亡概率的估計。

  1. v_x = p(x)

  2. hist(v_x,proba=TRUE,breaks=seq(,by.05),=",="",

  3. segments(mean(v_x),0,mean(v_x,5="=2)


因此,對于第一個觀察,在78.8%的模型中,預測的概率高于50%,平均概率實際上接近75%。



或者,對于樣本22,預測與第一個非常接近。

  1. histo(23)

  2. histo(11)

我們在此觀察到

Bagging決策樹

Bagging是由Leo Breiman于1994年在Bagging Predictors中介紹的。如果說第一節(jié)描述了這個程序,那么第二節(jié)則介紹了 "Bagging分類樹"。樹對于解釋來說是不錯的,但大多數時候,它們是相當差的預測模型。Bagging的想法是為了提高分類樹的準確性。
bagging 的想法是為了生成大量的樹


  1. for(i in 1:12)

  2. set.seed(sed[i])

  3. idx = sample(1:n, size=n, replace=TRUE)

  4. cart = ?rpart(PR~., md[idx,])

這個策略其實和以前一樣。對于bootstrap部分,將樹存儲在一個列表中

  1. for(s in 1:1000)

  2. idx = sample(1:n, size=n, replace=TRUE)

  3. L_tree[[s]] = rpart(as.(PR)~.)

而對于匯總部分,只需取預測概率的平均值即可

  1. p = function(x){

  2. unlist(lapply(1:1000,function(z) predict(L_tree[z],newdata,)[,2])

因為在這個例子中,我們無法實現(xiàn)預測的可視化,讓我們在較小的數據集上運行同樣的代碼。


  1. for(s in 1:1000){

  2. idx = sample(1:n, size=n, replace=TRUE)

  3. L_tree[s] = rpart(y~x1+x2,

  4. }

  5. unlist(lapply(1:1000,function(z) predict(L_tree[[z]])

  6. outer(vu,vu,Vectorize(function(x,y) mean(p(c(x,y)))

從bagging到森林

在這里,我們生成了很多樹,但它并不是嚴格意義上的隨機森林算法,正如1995年在《隨機決策森林》中介紹的那樣。實際上,區(qū)別在于決策樹的創(chuàng)建。當我們有一個節(jié)點時,看一下可能的分割:我們考慮所有可能的變量,以及所有可能的閾值。這里的策略是在p中隨機抽取k個變量(當然k<p,例如k=sqrt{p})。這在高維度上是有趣的,因為在每次分割時,我們應該尋找所有的變量和所有的閾值,而這可能需要相當長的時間(尤其是在bootstrap 程序中,目標是長出1000棵樹)。

最受歡迎的見解

1.用機器學習識別不斷變化的股市狀況—隱馬爾科夫模型(HMM)的應用

2.R語言GARCH-DCC模型和DCC(MVT)建模估計

3.R語言實現(xiàn) Copula 算法建模依賴性案例分析報告

4.R語言COPULAS和金融時間序列數據VaR分析

5.R語言多元COPULA GARCH 模型時間序列預測

6.用R語言實現(xiàn)神經網絡預測股票實例

7.r語言預測波動率的實現(xiàn):ARCH模型與HAR-RV模型

8.R語言如何做馬爾科夫轉換模型markov switching model

9.matlab使用Copula仿真優(yōu)化市場風險


拓端tecdat|R語言基于Bagging分類的邏輯回歸(Logistic Regression)、決策樹、森林分析的評論 (共 條)

分享到微博請遵守國家法律
玉林市| 南汇区| 吕梁市| 哈密市| 遂溪县| 河西区| 舟曲县| 日土县| 当阳市| 阳西县| 陇南市| 福泉市| 桃园市| 怀宁县| 西宁市| 拉萨市| 高要市| 西昌市| 安阳县| 玉林市| 大埔县| 独山县| 称多县| 隆子县| 南康市| 油尖旺区| 南开区| 胶州市| 南雄市| 洞头县| 韩城市| 玛多县| 承德市| 漠河县| 加查县| 永丰县| 长兴县| 商城县| 随州市| 东安县| 闽侯县|