全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 经管百科 爱问频道
1595 3
2017-01-25
本人最近用r写随机森林,因为不是学计算机所以基本小白靠抄代码,最终弄出了预测结果。但是基本上预测结果应该是用输入的数据根据随机森林预测的拟合数据,那么如果我活的了新的数据还想使用这个生成的森林来继续预测是如何实现的呢?请教大神们!~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2017-1-26 00:17:48
我使用r自身所內建資料iris做說明,以利您可重複執行。代碼如下:
#隨機森林建構及預測步驟:
#1.叫入資料並進行資料切割
data=sample(nrow(iris),0.8*nrow(iris))  #抽取80%資料做訓練
train=iris[data,]  #訓練集
test=iris[-data,]  #測試集
#2.隨機森林建構
library(randomForest)
rf=randomForest(Species~.,data=train,ntree=100,proximity=T)
#3.模型表現
table(predict(rf),train$Species)        #訓練集混淆矩陣

table(predict(rf,newdata=test),test$Species)        #測試集混淆矩陣,predict即為預測,使用測試集做預測

A=predict(rf,newdata=test)        #預測結果
cbind("樣本"=rownames(test),"預測分類"=A,"實際分類"=test$Species)  #比較實際分類與預測分類

其中的test可改為您所說的新數據,即可進行預測。預測表現可看測試集混淆矩陣或自行繪製誤差圖或ROC圖等。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-1-26 11:22:12
cheng334 发表于 2017-1-26 00:17
我使用r自身所內建資料iris做說明,以利您可重複執行。代碼如下:
#隨機森林建構及預測步驟:
#1.叫入資料並 ...
大神我是计算机小白,有些代码还看不大懂,实际操作过程也遇到了些问题,我的外部数据是一个22*1020的csv,其中一列为因变量。
我让您先看下我写的吧:
library(randomForest)
> GC <- read.csv("d:/nba.csv",header = TRUE)
>  GC_rf <- randomForest(人数.单位.万人次.~.,data = GC,keep.forest = TRUE,ntree = 500)
这里我引用的是外部数据,所以并不能直接使用data函数,这一步是请教别人的才把外部数据引入,所以这一步我对不上您写的iris数据集。还想请教怎么改正?

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-1-27 21:52:18
我所謂的iris是r自身所帶的數據,可直接讀取,而您的數據來自外部,故使用read.csv讀取。這只是數據的來源不同所致,並不影響您的分析。我開始的第一步是數據切割,是為了將數據分為訓練集及測試集所做的,假如您欲與我相同,以80%資料做訓練集,20%資料做測試集,則直接把GC做為iris 的替代,即data=sample(nrow(GC),0.8*nrow(GC)),下面的train及test可直接使用,數據集就被切成兩個數據集了,一個是train,用於建模,另一個是測試用的,也就是理論上未知的預測數據。第二步的建構隨機森林模型,就把您的data=GC,改為data=train,您可以考慮把GC_rf改為rf,那麼之後的代碼就可直接沿用了!
順帶說明,以抽樣的方式(sample)決定訓練集與測試集並不是一定的,端視您的數據切割策略而定。還有,如果您自認對代碼輸入頭疼,建議您使用r的rattle套件,它是r的數據挖掘視窗版,按一按就能執行分析。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群