我对使用R是陌生的。我曾尝试使用H2o库通过将情景与配置文件情景进行比较来检查异常。例如移动汽车的油耗:
行驶中的汽车在道路上停留的时间越长,汽油就会减少。
我们有一个测试数据,当行驶中的汽车在道路上停留的时间越长,剩余的汽油仍会增加。这应该标记为异常。
H2o库似乎正在检查点异常,并且没有将异常标记为异常,因为Profile 1中存在系列1中的值。
配置文件:这是用于引用的正确配置文件。从逻辑上讲,行驶中的汽油应随时间逐渐减少。因此,[汽油左转]的坡度应随时间的增加而减小。
Timing 1 Timing 2 Timing 3 Timing 4
Petrol left(L) 45 40 35 30
测试数据:[汽油左]的梯度随时间的增加而增加。
Timing 1 Timing 2 Timing 3 Timing 4
Petrol left(L) 30 35 40 45
代码:
library(h2o)
h2o.init(ip = "h2o")
traindf = h2o.uploadFile("training data")
testdf = h2o.uploadFile("test data")
dlmodel = h2o.deeplearning(x = 1:10, training_frame = traindf,
autoencoder = TRUE,
hidden = c(50, 50, 50),
epochs = 100,
reproducible = TRUE,
seed=1)
errors <- h2o.anomaly(dlmodel, testdf, per_feature = FALSE)
errors <- as.data.frame(errors)
row_outliers <- which(errors > 0.8)
testdf[row_outliers,]
我希望输出将Series1的所有[汽油左]显示为异常,但实际输出不是异常。
是否存在其他能够检测阶数/梯度的库,并且将Series 1标记为异常?