Я использую h2o для обнаружения аномалий в данных. Данные содержат несколько непрерывных и категориальных признаков, и метка может быть равна 0 или 1. Теперь, поскольку количество 1s меньше 1%, я использую метод обнаружения аномалий вместо обычных методов классификации. Однако в конце я получаю MSE, рассчитанный на каждую строку данных, и я не уверен, как интерпретировать его, чтобы иметь возможность сказать, что фактическая метка равна 0, но из-за этого является аномалией и должна быть равна 1.Как интерпретировать реконструкцию MSE от обнаружения аномалии H2O?
код, я использую до сих пор:
features <- names(train.df)[!names(train.df) %in% c("label")]
train.df <- subset(train.df, label==0)
train.h <- as.h2o(train.df)
mod.dl <- h2o.deeplearning(
x=features,
autoencoder=TRUE,
training_frame=train.h,
activation=c("Tanh"),
hidden=c(10,10), epochs=20, adaptive_rate=FALSE,
variable_importances=TRUE,
l1=1e-4, l2=1e-4,
sparse=TRUE
)
pred.oc <- as.data.frame(h2o.anomaly(mod.dl.oc, train.h.oc))
head(pred.oc)
:
Reconstruction.MSE
1 0.012059304
2 0.014490905
3 0.011002231
4 0.013142910
5 0.009631915
6 0.012897779