实训 2018-07-11 Boruta算法的例子应用和讲解

今天做的主要工作是,
上午寻找查看关于教练如何影响篮球比赛的胜利的相关论文以及翻译文献。

下午继续翻译 boruta算法的英文文献,以及实现文献中的boruta算法的例子。

实现代码如下:

#安装相关包
install.packages("Boruta")
library("Boruta")

#利用R语言的内部数据
install.packages("mlbench")
library("mlbench") 
data("Ozone") 
Ozone <- na.omit(Ozone)

boruta算法的过程:

 set.seed(1) 
Boruta.Ozone <- Boruta(V4 ~ ., data = Ozone, doTrace = 2, ntree = 500)

说明:
1、set.seed()用于设定随机数种子,一个特定的种子可以产生一个特定的伪随机序列,这个函数的主要目的,是让你的模拟能够可重复出现,因为很多时候我们需要取随机数,但这段代码再跑一次的时候,结果就不一样了,如果需要重复出现同样的模拟结果的话,就可以用set.seed()。在调试程序或者做展示的时候,结果的可重复性是很重要的,所以随机数种子也就很有必要。
也可以简单地理解为括号里的数只是一个编号而已,例如set.seed(100)不应将括号里的数字理解成“一百”,而是应该理解成“编号为一零零的随机数发生”,下一次再模拟可以采用二零零(200)或者一一一(111)等不同的编号即可,编号设定基本可以随意。

2、将doTrace参数设置为1或2将使Boruta报告进程的进展;版本2有点啰嗦,也就是说,一旦属性决定被清除,它就会显示出来。

maxRuns:随机森林运行的最大次数。如果暂时属性被保留,你可以考虑增加这个参数。默认为100。

doTrace:它指的是详细程度。0指不跟踪。1指一旦属性被清除就作出报告决定。2意味着所有的1另加上报告每一次迭代。默认为0。

holdHistory:存储重要性运行的全部历史,当其设置为TRUE(默认)时。当plotImpHistory 功能被唤醒时生成一个分类器运行vs.重要性的表格。
运行结果:

Initial round 1: .......... 1 attributes rejected after this test: V2
Initial round 2: .......... 1 attributes rejected after this test: V3
Initial round 3: .......... Final round: .......... 8 attributes confirmed after this test: V1 V5 V7 V8 V9 V10 V11 V12 .... 1 attributes confirmed after this test: V13 .... 1 attributes rejected after this test: V6

查看最终结果:

 Boruta.Ozone
 plot(Boruta.Ozone)

得到的图像:
臭氧数据的Boruta结果图。蓝色方框表示阴影属性的最小、平均和最大Z值。红色和绿色方框分别表示拒绝属性和确认属性的Z分数。

第二个例子如下:

root<-
+ "http://archive.ics.uci.edu/ml/machine-learning-databases/madelon/MADELON/"
predictors <- read.table(paste(root, "madelon_train.data",sep = ""))

decision <- read.table(paste(root, "madelon_train.labels", sep = ""))

Madelon <- data.frame(predictors, decision = factor(decision[, 1]))
set.seed(7777)
Boruta.Madelon <- Boruta(decision ~., data = Madelon)

如图

查看结果:
这里写图片描述

作图:

 plotImpHistory(Boruta.Madelon)

Boruta运行时重要性的演变。绿线对应于已确认的属性,红色表示拒绝的属性,蓝色分别表示最小、平均和最大阴影属性的重要性。灰色的线轮分开。

猜你喜欢

转载自blog.csdn.net/qq_32811489/article/details/81003934