Есть ли способ рассчитать важность функции на уровне наблюдения в изолированном лесу?

Некоторые приложения сами обрабатывают эти инструкции, вызывая что-то вроде этого:

error_reporting(E_ALL & ~E_DEPRECATED); or error_reporting(0);

И, таким образом, переопределение настроек .htaccess.

1
задан Uwe Keim 18 March 2019 в 06:36
поделиться

1 ответ

Важность местных особенностей можно оценить с помощью пакета извести.

library(solitude)
library(lime)

Во-первых, некоторые данные о игрушках:

set.seed(1234)
data<-data.frame(rnorm(20,0,1),rnorm(20,0,0.5))
colnames(data)<-c("x","y")
row.names(data)<-seq(1,nrow(data),1)

Взгляните на данные о игрушках:

plot(data)
text(data-0.05,row.names(data))

Эти случаи выглядят как выбросы:

[113 ]

Вырастить лес изоляции:

model<-isolation_forest(data, importance="impurity")

Поскольку одиночество не поддерживается в извести, нам нужно построить две функции, чтобы известь могла обрабатывать объекты одиночества. Функция model_type сообщает lime, какая у нас модель. Функция Предсказание_модели позволяет извести предсказывать с объектами одиночества.

model_type.solitude <- function(x, ...) {
  return("regression")
}

predict_model.solitude <- function(x, newdata, ...) {
  pred <- predict(x, newdata)
  return(as.data.frame(pred))
}

Затем мы можем сгенерировать объект извести и оценить важность функции уровня наблюдения (и для более надежных результатов можно задать большее число перестановок):

lime1 <- lime(data, model)
importance <- data.frame(explain(data, lime1,
                             n_features = 2,n_permutations = 500 ))

Важность функции важна $ feature_weight , Проверка результатов по конкретному случаю:

importance[importance$case %in% outliers,c("case","feature","feature_weight")]

Сюжет:

plot_features(importance[importance$case %in% outliers,] , ncol = 2)

Надеюсь, что это полезно!

Конечно, прочитайте lime как основывается на определенных предположениях.

0
ответ дан Vriko 18 March 2019 в 06:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: