R 如何从H2O异常检测中解释重建MSE?

R 如何从H2O异常检测中解释重建MSE?,r,deep-learning,h2o,R,Deep Learning,H2o,我在数据中使用h2o进行异常检测。数据包含多个连续和分类特征,标签可以是0或1。现在,由于1s的计数小于1%,我正在尝试异常检测技术,而不是使用通常的分类方法。然而,最后我得到了每行数据计算的MSE,我不确定如何解释它,以便能够说实际标签是0,但因为它是一个异常,应该是1 我目前使用的代码是: features <- names(train.df)[!names(train.df) %in% c("label")] train.df <- subset(train.df, label

我在数据中使用h2o进行异常检测。数据包含多个连续和分类特征,标签可以是0或1。现在,由于1s的计数小于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))

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

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

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

  Reconstruction.MSE
1        0.012059304
2        0.014490905
3        0.011002231
4        0.013142910
5        0.009631915
6        0.012897779