1

データの異常検出に 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
4

1 に答える 1