Сравнение регрессионных моделей с точки зрения важности переменных - PullRequest
0 голосов
/ 08 января 2020

Я хотел бы сравнить модели (множественная регрессия, LASSO, Ridge, GBM) с точки зрения важности переменных. Но я не уверен, что процедура правильная, потому что полученные значения не в одной шкале.

В множественной регрессии и значения GBM варьируются от 0 до 100 с использованием varImp из пакета caret , Вычисление этой статистики c отличается в каждом из методов.

Линейные модели: используется абсолютное значение t-statisti c для каждого параметра модели.

Boosted Trees: этот метод использует тот же подход, что и отдельное дерево, но суммирует важность каждой итерации повышения.

Хотя для LASSO и Ridge значения от 0,00 до 0,99, рассчитывается с помощью функции:

varImp <- function (object, lambda = NULL, ...) {
  beta <- predict (object, s = lambda, type = "coef")
  if (is.list (beta)) {
    out <- do.call ("cbind", lapply (beta, function (x)
      x [, 1])))
    out <- as.data.frame (out)
  } else
    out <- data.frame (Overall = beta [, 1])
  out <- abs (out [rownames (out)! = "(Intercept)",, drop = FALSE])
  out
}

Получено здесь: Пакет каретки - gl mnet переменная важность

Я руководствовался другим Вопросы на форуме, но не смог понять, почему существует разница между весами. Как я могу сделать эти измерения сопоставимыми?

1 Ответ

1 голос
/ 08 января 2020

Если цель состоит в том, чтобы просто сравнить их бок о бок, то важно создать шкалу, в которой они все могут обитать вместе, и отсортировать их.

Вы можете сделать это sh, создав стандартизированная шкала и приведение всех ваших VarImp к новой согласованной шкале, в данном случае от 0 до 100.


importance_data <- c(-23,12, 32, 18, 45, 1, 77, 18, 22)

new_scale <- function(x){
    y =((100-0)/(max(x) -min(x))*(x-max(x))+100)
    sort(y)
    }

new_scale(importance_data)


#results
[1]   0  24  35  41  41  45  55  68 100

Это даст вам единую шкалу. И это не значит, что 22 в одной шкале точно такие же, как 22 в другой шкале. Но для относительного сравнения подойдет любой масштаб.

Это даст вам стандартизированный смысл разделения между важностью каждой переменной в ее собственной модели, и вы сможете более легко оценивать их бок о бок, основываясь на относительности масштабированных значений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...