R語言實現隨機森林randomForest

2021-01-16 數據分析藝術

隨機森林是一個樹形分類器的集合。隨機森林是通過自助法重複抽樣技術,從原始樣本訓練集中有放回地隨機抽取k個樣本生成新的訓練集樣本集合,然後根據自助樣本集生成k個決策樹組成的隨機森林,最後根據所有決策樹的預測結果來最終確定樣本的預測結果。

在R軟體中,用來實現隨機森林的是randomForest軟體包。

首先,安裝並加載軟體包。

install.packages("randomForest") #安裝軟體包

library(randomForest) #加載軟體包

gyyz_data=read.csv("gyyz.csv",head=T)

gyyz_data$is_rise=as.factor(gyyz_data$is_rise)#將目標變量轉換成分類數據

head(gyyz_data);dim(gyyz_data)#查看數據維度

str(gyyz_data)#查看數據集中各變量的屬性

n=dim(gyyz_data)[1]

samp=sample(n,0.9*n)#隨機抽取90%的樣本

#建立隨機森林模型

gyyz_rf=randomForest(is_rise~.,data=gyyz_data,ntree=500,importance=TRUE,proximity=TRUE,type=classification,suset=samp)

randomForest函數中主要有參數formula,這裡用class~.形式。data表示數據集;subset用於抽取樣本數據中的部分樣本作為訓練集;ntree表示森林中樹的數目;importance表示輸出各變量在模型中的重要值;proximity用來決定計是否計算模型的臨近矩陣;type用來選擇建模類別,主要有「回歸,分類,或無監督」。

4  查看模型結果。

print(gyyz_rf)#展示隨機森林模型

importance(gyyz_rf,type=1)#查看各個變量的貢獻程度

從結果中可以看到模型的錯誤率、預測結果的混淆矩陣,以及各個變量在模型中的重要值。

5  繪製隨機森林模型的坐標圖。

MDSplot(gyyz_rf,gyyz_data$is_rise,palette=1:2,

pch=as.numeric(gyyz_data$is_rise))

從圖形中可以看出各類樣本比較分散,模型分類結果較差。

6  可視化。

#查看隨機森林中每一棵樹的節點個數

hist(treesize(gyyz_rf))

#繪製模型誤差與決策樹關係圖

plot(gyyz_rf)



Long-press QR code to transfer me a reward

As required by Apple's new policy, the Reward feature has been disabled on Weixin for iOS. You can still reward an Official Account by transferring money via QR code.

相關焦點

  • R語言 | randomForest包的隨機森林回歸模型以及對重要變量的選擇
    的隨機森林回歸模型以及對重要變量的選擇關於隨機森林(random forest),前文「隨機森林分類以及對重要變量的選擇」中已經對其基本原理作了簡單概括。 文中後續還有內容涉及到隨機森林模型的應用,這裡就不再展示了。節選的部分章節想必也足以能夠幫助大家了解這個方法的實際應用了。此外,該文獻的補充材料中提供了有關OTU豐度表、分析過程的R代碼等非常全面的數據,大家若有興趣參考原文即可。接下來,展示隨機森林回歸及對重要變量選擇在R語言中的實現方法。
  • 機器學習:R語言實現隨機森林
    R包randomForest的隨機森林分類模型以及對重要變量的選擇隨機森林(random forest)是一種組成式的有監督學習方法,可視為決策樹的擴展。隨機森林通過對對象和變量進行抽樣構建預測模型,即生成多個決策樹,並依次對對象進行分類。最後將各決策樹的分類結果匯總,所有預測類別中的眾數類別即為隨機森林所預測的該對象的類別,分類準確率提升。
  • 隨機森林(Random Forest)
    隨機森林的名稱中有兩個關鍵詞,一個是「隨機」,一個就是「森林」。「森林」我們很好理解,一棵叫做樹,那麼成百上千棵就可以叫做森林了,這樣的比喻還是很貼切的,其實這也是隨機森林的主要思想--集成思想的體現。「隨機」的含義我們會在下邊部分講到。其實從直觀角度來解釋,每棵決策樹都是一個分類器(假設現在針對的是分類問題),那麼對於一個輸入樣本,N棵樹會有N個分類結果。
  • 隨機森林RandomForest挖掘生物標記預測分類
    隨機森林就是通過集成學習的思想將多棵樹集成的一種算法,它的基本單元是決策樹,而它的本質屬於機器學習的一大分支——集成學習(Ensemble Learning)方法。隨機森林的名稱中有兩個關鍵詞,一個是「隨機」,一個就是「森林」。「森林」我們很好理解,一棵叫做樹,那麼成百上千棵就可以叫做森林了,這樣的比喻還是很貼切的,其實這也是隨機森林的主要思想—集成思想的體現。「隨機」的含義我們會在下邊部分講到。
  • 隨機森林(Random Forest)算法原理
    Leo Breiman和Adele Cutler發展出推論出隨機森林的算法。而 "RandomForests" 是他們的商標。這個術語是1995年由貝爾實驗室的Tin Kam Ho所提出的隨機決策森林(random decisionforests)而來的。
  • 用Python實現隨機森林算法
    隨機森林算法(Random forest algorithm)是對 bagging 算法的擴展。除了仍然根據從訓練數據樣本建立複合模型之外,隨機森林對用做構建樹(tree)的數據特徵做了一定限制,使得生成的決策樹之間沒有關聯,從而提升算法效果。本文章旨在探討如何用 Python 實現隨機森林算法。
  • ...詳解線性回歸、樸素貝葉斯、隨機森林在R和Python中的實現應用...
    決策樹:https://www.analyticsvidhya.com/blog/2015/01/decision-tree-simplified/)隨機森林:https://www.analyticsvidhya.com/blog/2014/06/introduction-random-forest-simplified/)2.
  • 【乾貨】隨機森林的Python實現
    【新智元導讀】在機器學習中,隨機森林是一個包含多個決策樹的分類器,並且其輸出的類別是由個別樹輸出的類別的眾數而定。隨機森林幾乎是任何預測類問題(甚至非線性問題)的首選。本文介紹了隨機森林的原理、用途,以及用 Python 實現隨機森林的方法。
  • 詳解線性回歸、樸素貝葉斯、隨機森林在R和Python中的...
    /blog/2014/06/introduction-random-forest-simplified/)2.隨機森林(Random Forest)隨機森林是決策樹的總體專有名詞。在隨機森林算法中,我們有一系列決策樹(因此,被稱為「森林」)。為了根據屬性將新對象進行分類,每一棵決策樹都給出一個分類,稱之為該決策樹為該分類「投票」。森林選擇(在所有樹中)獲得票數最多的分類。
  • 理解隨機森林:基於Python的實現和解釋
    數據科學家 William Koehrsen 用 Python 實現並解釋了決策樹和隨機森林的工作過程。隨機森林也可以在每個節點考慮所有特徵來進行訓練。(在 Scikit-Learn 隨機森林實現中,這些選項是可調控的。)如果你理解了單個決策樹、bagging 決策樹、特徵的隨機子集,那你就可以很好地理解隨機森林的工作方式了。
  • 一文看懂隨機森林 - Random Forest(附 4 個構造步驟+4 種實現方式評測+10 個優缺點)
    本文將介紹隨機森林的基本概念、4 個構造步驟、4 種方式的對比評測、10 個優缺點和 4 個應用方向。什麼是隨機森林?隨機森林屬於 集成學習 中的 Bagging(Bootstrap AGgregation 的簡稱) 方法。如果用圖來表示他們之間的關係如下:
  • JavaScript用Math.random()生成隨機數
    基本概念顧名思義,Math.random()方法就是用於生成隨機數的,因為單詞random的意思正是「隨機的」。該方法生成的結果是 [0, 1) 範圍內的浮點數,注意這是一個左閉右開的區間,即該區間包含0而不包含1。官方文檔指出Math.random()方法生成的隨機數在該區間上要大致符合均勻分布。Math.random()的語法結構如下所示,可以看出它是沒有參數的。
  • 講座回顧|Meta-Analysis by STATA and R
    =TRUE,comb.fixed=TRUE)summary(meta1)forest(meta1) #森林圖funnel(metal) #漏鬥圖metabias(meta1,method=」paters」) #發表性偏倚檢驗異質性檢驗:若是隨機效應模型,……or radom label,若是固定效應模型(默認),……
  • 機器學習十大經典算法之隨機森林
    隨機森林簡介隨機森林是機器學習一種常用的方法。它是以決策樹為基礎,用隨機的方式排列建立的,森林裡每個決策樹之間都是沒有關聯的。 在得到森林之後,當有一個新的輸入樣本進入的時候,就讓森林中的每一棵決策樹分別進行一下判斷,看看這個樣本應該屬於哪一類(對於分類算法),然後看看哪一類被選擇最多,就預測這個樣本為那一類。隨機森林可以用來進行無監督學習聚類和異常點檢測。
  • 《面試又翻車了》這次竟然和 Random 有關?
    正文Random 是使用最廣泛的隨機數生成工具了,即使連 Math.random() 的底層也是用 Random 實現的 源碼如下:Math.random()Math.random()Random.nextDouble()Random 使用這開始之前,我們先來了解一下 Random 的使用。
  • GPU上的隨機森林:比Apache Spark快2000倍
    隨機森林是一種機器學習算法,以其魯棒性、準確性和可擴展性而受到許多數據科學家的信賴。該算法通過bootstrap聚合訓練出多棵決策樹,然後通過集成對輸出進行預測。由於其集成特徵的特點,隨機森林是一種可以在分布式計算環境中實現的算法。樹可以在集群中跨進程和機器並行訓練,結果比使用單個進程的訓練時間快得多。
  • Python語言程序設計筆記——第四周random庫
    random庫是使用隨機數的Python標準庫作用:生成隨機數原理:採用梅森旋轉算法生成的(偽)隨機序列中元素使用方法:import randomrandom庫包括兩類函數,常用共8個基本隨機數函數:seed(), random()擴展隨機數函數:randint(), getrandbits
  • r語言的p值檢驗 - CSDN
    輸入1: rdata = matrix(rnorm(1000* 6, 0, 3), 6) rvar = apply(rdata, 2, var) mean(rvar)結果1: 醫學統計與R語言:一份簡單的數據整理分析醫學統計與R語言:利用金字塔圖比較多個指標醫學統計與R語言:點圖(dotplot)醫學統計與R語言:幕後高手出馬!醫學統計與R語言:Calibration plot with 置信區間醫學統計與R語言:還說自己不會畫Calibration plot!
  • 物體隨機飛濺運動! Cocos Creator!
    _time / 2;}再來看看如何隨機初始速度。當然直接使用Math.random()可以實現。參考代碼如下。// 0-1 均勻分布const random_a = Math.random();const random_b = Math.random();// 均勻分布的初速度coin.initial_velocity.x = random_a * (V_X_MAX - V_X_MIN) + V_X_MIN;coin.initial_velocity.y = r
  • Python3中常用模塊-random模塊
    random是Python中與隨機數相關的模塊,其本質就是一個偽隨機數生成器,我們可以利用random模塊基礎生成各種不同的隨機數,以及一些基於隨機數的操作。