#### 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之後,帶入嘗試,取...