2012-02-05 4 views
3

У меня есть набор данных с NAs, щедро разбросанным по всему периметру.R выбор вариации для коэффициентов() И NA

Кроме того, он имеет столбцы, которые должны быть factors().

Я использую функцию rfe() из пакета caret для выбора переменных.

Кажется functions= аргумент в rfe() с использованием lmFuncs работ для данных НСБУ, но не на факторных, в то время как rfFuncs работ для переменных факторов, но не САМ.

Любые предложения по борьбе с этим?

Я пробовал model.matrix(), но, похоже, это вызывает больше проблем.

+1

Я скептически отношусь к 'lmFuncs' с некоторыми переменными в качестве факторов. Однако я мог убедиться с воспроизводимым примером. Тот факт, что Random Forests (по умолчанию) не принимает случаи с NA, является просто хорошо документированной «особенностью» этого алгоритма (или, по крайней мере, его R-версии). Если вы хотите, чтобы древовидные модели без проблем обрабатывали NA, «treebagFuncs» может быть более безопасным (но я его не тестировал). – joran

ответ

3

Из-за несовместимого поведения в этих точках между пакетами, не говоря уже о дополнительной хитрости при переходе на более «мета» пакеты, такие как caret, мне всегда легче иметь дело с NA и факториальными переменными, прежде чем я сделаю машинное обучение.

  • Для НС, опускать или вводить (медианный, knn и т. Д.).
  • Для функций фактора вы были на правильном пути с model.matrix(). Это позволит вам генерировать ряд «фиктивных» функций для разных уровней фактора. Типичное использование что-то вроде этого:
> dat = data.frame(x=factor(rep(1:3, each=5))) 
> dat$x 
[1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 
Levels: 1 2 3 
> model.matrix(~ x - 1, data=dat) 
    x1 x2 x3 
1 1 0 0 
2 1 0 0 
3 1 0 0 
4 1 0 0 
5 1 0 0 
6 0 1 0 
7 0 1 0 
8 0 1 0 
9 0 1 0 
10 0 1 0 
11 0 0 1 
12 0 0 1 
13 0 0 1 
14 0 0 1 
15 0 0 1 
attr(,"assign") 
[1] 1 1 1 
attr(,"contrasts") 
attr(,"contrasts")$x 
[1] "contr.treatment" 

Кроме того, только в случае, если у вас нет (хотя это звучит, как у вас есть), то caret виньетки на CRAN очень красиво и потрогать на некоторых из этих точек , http://cran.r-project.org/web/packages/caret/index.html

Смежные вопросы