У меня есть data.frame TC
, с 17744 наблюдениями из 13 переменных. Последней переменной является цель: a Factor w/ 2 levels "0", "1"
.randomForest не предсказывал серийные образцы
я:
n.col <- ncol(TC)
x.train.or <- TC[1:12000, -n.col]
y.train.or <- TC[1:12000, n.col]
x.test.or <- TC[12000:17000, -n.col]
y.test.or <- TC[12000:17000, n.col]
rf.or <- randomForest(y=y.train.or, x=x.train.or, ntree=500, mtry=5,
importance=TRUE, keep.forest=TRUE,
na.action=na.roughfix, replace=FALSE)
pr.or <- predict(rf.or, x.test.or)
table(y.test.or, pr.or, dnn=c("Actual", "Predicted"))
# Predicted
# Actual 0 1
# 0 2424 780
# 1 1056 741
Очень плохой результат.
Затем я повторить модель фитинга со случайной выборки:
set.seed <- 123
t.t <- holdout(TC[, n.col], ratio=3/5, mode = "random")
x.train.r <- TC[t.t$tr, - (n.col)]
y.train.r <- TC[t.t$tr, (n.col)]
x.test.r <- TC[t.t$ts, - (n.col)]
rf.r <- randomForest(y=y.train.r, x=x.train.r, ntree=500, mtry=5,
importance=TRUE, keep.forest=TRUE,
na.action=na.roughfix, replace=FALSE)
pr.r <- predict(rf.r, x.test.r)
table(y.test.r, pr.r, dnn=c("Actual", "Predicted"))
# Predicted
# Actual 0 1
# 0 4274 215
# 1 353 2257
Очень хороший результат, но зависит от способа формирования выборки с одним набором данных. Проблема, которую я решаю, предполагает только серийный образец.
Пожалуйста, помогите!
Ответ на вопросы: (1) Конечно, я:
library(randomForest)
library(rminer)
(3) Повторяю с:
n.col <- ncol(TC)
x.train.or <- TC[1:12000, -n.col]
y.train.or <- TC[1:12000, n.col]
x.test.or <- TC[12001:17000, -n.col]
y.test.or <- TC[12001:17000, n.col]
и получать тот же самый ужасный результат
Predicted
Actual 0 1
0 2413 790
1 1049 748
(4) В этом может быть проблема? Некоторые переменные случайны на [1: 17000], но не случайны в [1: 100] (у меня не было прав на рисунки).
Что делать в этом случае?
Что ваш вопрос? Несколько комментариев: (1), пожалуйста, включайте вызовы 'library' (например,' library (randomForest) 'и' library (rminer) '). (2) Вы не указали код для того, как вы создали 'y.test.r' (хотя очевидно, что он должен быть создан. (3) Я предполагаю, что вы не намеревались включить в ваш тестовый набор данных общ 12000 с вы включаете его в свой набор тренировок. (4) Порядок строк 'TC', вероятно, не является случайным (т. е. связь между' y' и 'x' для первого 12000 obs не является показателем этого для следующего 5000 obs). – jbaums
Я исправляю вопрос – faa1947