隨機森林(R)

2021-08-07 15:36:43 字數 1532 閱讀 8065

#### random forest ############

install.packages('randomforest')

library(randomforest)

data(iris)

attach(iris)

table(iris$species)

class=as.factor(iris$species)

######描述 ############

biplot(princomp(iris[,1:4], cor=true))

set.seed(100)

ind=sample(2,nrow(iris),replace=true,prob=c(0.75,0.25))

#### 訓練集、測試集########

train=iris[ind==1,]

test=iris[ind==2,]

####兩種模型機制 ###############

###### 1、模型#############

iris.rf1=randomforest(species~.,train,ntree=50,nperm=10,mtry=3,proximity=true,importance=true)

print(iris.rf1)

iris.pred1=predict( iris.rf1,iris[ind==2,] )

table(observed=iris[ind==2,"species"],predicted=iris.pred1 )

######2、資料集 ############

rf2 <- randomforest(train[,-5], train[,5],prox=true, importance=true)

imp <- importance(rf2)

impvar <- imp[order(imp[, 3], decreasing=true),]; impvar

varimpplot(rf2)

一些重要引數說明

randomforest()對訓練集的資料進行處理,生成決策樹

iris.rf=randomforest(species~.,iris[ind==1,],ntree=50,nperm=10,mtry=3,proximity=true,importance=true)

species~.:代表需要**的列,species是列的名稱。

iris[ind==1,]:生成決策樹的訓練集

ntree:生成決策樹的數目

nperm:計算importance時的重複次數

mtry:選擇的**屬性的個數

proximity=true:表示生成臨近矩陣

importance=true:輸出**屬性的重要性

predict()

iris.pred=predict( iris.rf,iris[ind==2,] )

iris.rf:表示生成的隨機森林模型

iris[ind==2,] :進行**的測試

R語言 隨機森林演算法

在隨機森林方法中,建立大量的決策樹。每個觀察被饋入每個決策樹。每個觀察的最常見的結果被用作最終輸出。新的觀察結果被饋入所有的樹並且對每個分類模型取多數投票。對構建樹時未使用的情況進行錯誤估計。這稱為oob 袋外 誤差估計,其被提及為百分比。r語言包 randomforest 用於建立隨機森林。安裝r...

R語言 訓練隨機森林模型

隨機森林演算法涉及對樣本單元和變數進行抽樣,從而生成大量決策樹。對於每個樣本單元,所有決策樹依次對其進行分類,所有決策樹 類別中的眾數類別即為隨機森林所 的這一樣本單元的類別。假設訓練集中共有n個樣本單元,m個變數,則隨機森林演算法如下 1 從訓練集中隨機有放回地抽取n個樣本單元,生成大量決策樹 2...

R語言 隨機森林mtry,ntree優化

隨機森林引數 1 mtry節點值,可確定每次迭代的變數抽樣數值,用於二叉樹的變數個數 1 一般可預設為2。2 改為資料集變數個數的二次方根 分類模型 或三分之一 回歸模型 3 實際可以for迴圈找到最佳 2 ntree指定隨機森林所包含的決策樹數目,預設為500 最好在確定mtry之後,帶入嘗試,取...