|
a |
|
b/partyMod/tests/RandomForest-regtest.R |
|
|
1 |
|
|
|
2 |
set.seed(290875) |
|
|
3 |
library("party") |
|
|
4 |
if (!require("TH.data")) |
|
|
5 |
stop("cannot load package TH.data") |
|
|
6 |
if (!require("coin")) |
|
|
7 |
stop("cannot load package coin") |
|
|
8 |
|
|
|
9 |
data("GlaucomaM", package = "TH.data") |
|
|
10 |
rf <- cforest(Class ~ ., data = GlaucomaM, control = cforest_unbiased(ntree = 30)) |
|
|
11 |
stopifnot(mean(GlaucomaM$Class != predict(rf)) < |
|
|
12 |
mean(GlaucomaM$Class != predict(rf, OOB = TRUE))) |
|
|
13 |
|
|
|
14 |
data("GBSG2", package = "TH.data") |
|
|
15 |
rfS <- cforest(Surv(time, cens) ~ ., data = GBSG2, control = cforest_unbiased(ntree = 30)) |
|
|
16 |
treeresponse(rfS, newdata = GBSG2[1:2,]) |
|
|
17 |
|
|
|
18 |
### give it a try, at least |
|
|
19 |
varimp(rf, pre1.0_0 = TRUE) |
|
|
20 |
|
|
|
21 |
P <- proximity(rf) |
|
|
22 |
stopifnot(max(abs(P - t(P))) == 0) |
|
|
23 |
|
|
|
24 |
P[1:10,1:10] |
|
|
25 |
|
|
|
26 |
### variable importances |
|
|
27 |
a <- cforest(Species ~ ., data = iris, |
|
|
28 |
control = cforest_unbiased(mtry = 2, ntree = 10)) |
|
|
29 |
varimp(a, pre1.0_0 = TRUE) |
|
|
30 |
varimp(a, conditional = TRUE) |
|
|
31 |
|
|
|
32 |
airq <- subset(airquality, complete.cases(airquality)) |
|
|
33 |
a <- cforest(Ozone ~ ., data = airq, |
|
|
34 |
control = cforest_unbiased(mtry = 2, ntree = 10)) |
|
|
35 |
varimp(a, pre1.0_0 = TRUE) |
|
|
36 |
varimp(a, conditional = TRUE) |
|
|
37 |
|
|
|
38 |
data("mammoexp", package = "TH.data") |
|
|
39 |
a <- cforest(ME ~ ., data = mammoexp, control = cforest_classical(ntree = 10)) |
|
|
40 |
varimp(a, pre1.0_0 = TRUE) |
|
|
41 |
varimp(a, conditional = TRUE) |
|
|
42 |
|
|
|
43 |
stopifnot(all.equal(unique(sapply(a@weights, sum)), nrow(mammoexp))) |
|
|
44 |
|
|
|
45 |
### check user-defined weights |
|
|
46 |
nobs <- nrow(GlaucomaM) |
|
|
47 |
i <- rep(0.0, nobs) |
|
|
48 |
i[1:floor(.632 * nobs)] <- 1 |
|
|
49 |
folds <- replicate(100, sample(i)) |
|
|
50 |
rf2 <- cforest(Class ~ ., data = GlaucomaM, control = cforest_unbiased(ntree = 100), weights = folds) |
|
|
51 |
table(predict(rf), predict(rf2)) |