Я очень предпочитаю каретку из-за ее способности к настройке параметров и унифицированного интерфейса, но я заметил, что для этого всегда требуются полные наборы данных (то есть без NA), даже если применяемая «голая» модель допускает NA. Это очень утомительно, так как нужно применять трудоемкие методы вменения, которые не нужны в первую очередь. Как можно избежать вменения и при этом использовать преимущества кареты?
r
missing-data
data-imputation
caret
Фредрик
источник
источник
Ответы:
В функцию train в caret можно передать параметр na.action = na.pass без предварительной обработки (не указывайте preProcess, оставьте его в качестве значения по умолчанию NULL). Это передаст значения NA без изменений непосредственно в функцию прогнозирования (это приведет к сбою функций прогнозирования, которые не поддерживают пропущенные значения, для тех, кому нужно будет указать preProcess для вменения пропущенных значений перед вызовом функции прогнозирования). Например:
В этом случае C5.0 будет обрабатывать пропущенные значения самостоятельно.
источник
train
наличии установленногоna.action = na.pass
параметра, появится следующая ошибка:Something is wrong; all the RMSE metric values are missing
Вы пробовали перекодировать АН? Нечто> 3 стандартных отклонения вне ваших данных (например, -12345) должно побудить C5.0 прогнозировать их отдельно, как это происходит с NA.
источник
Я думаю, что ваше решение будет заключаться в том, чтобы вменять значения при использовании функции предиката () .
Смотрите
?predict.train
для более подробной информации.Вы можете использовать,
na.omit
чтобы позволить карете вменять значения. Например:с http://www.inside-r.org/packages/cran/caret/docs/predict.train
Другим решением будет вменение при предварительной обработке данных:
с http://www.inside-r.org/node/86978
источник