【问题标题】:How to interpret the reconstruction MSE from H2O anomaly detection?如何从 H2O 异常检测中解释重建 MSE?
【发布时间】:2016-05-04 08:29:08
【问题描述】:

我正在使用 h2o 对数据进行异常检测。数据包含几个连续的分类特征,标签可以是 0 或 1。现在,因为 1 的计数小于 1%,我正在尝试异常检测技术,而不是使用通常的分类方法。但是,最后我得到了每行数据的 MSE,我不确定如何解释它才能说实际标签为 0,但因为它是异常情况,应该为 1。

我目前使用的代码:

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

【问题讨论】:

    标签: r deep-learning h2o


    【解决方案1】:

    自动编码器正在尝试学习原始数据的非线性、简化表示。这是一种无监督的方法,因此它只会考虑数据的特征。这不是一种分类方法。

    均方误差是一种查看自动编码器表示输出有多难的方法。异常被认为是具有高均方误差的行/观察。

    在您的情况下,具有最高 MSE 的行应被视为异常。它们可能是 1 的行,但被标记为 0。但是,这个结论不能从自动编码器方法中得出。

    【讨论】:

      猜你喜欢
      • 2016-04-16
      • 1970-01-01
      • 2021-03-08
      • 2021-01-24
      • 2021-09-28
      • 2019-07-25
      相关资源
      最近更新 更多