【发布时间】:2020-10-07 17:36:35
【问题描述】:
当模型应用于测试集时,H2O 中的隔离森林 (3.30.0.1, R 3.6.1) 计算的分数大于 1。这是重现分数大于 1 的代码。看起来 h2o 没有使用原始论文中使用的规范化 [https://cs.nju.edu.cn/zhouzh/zhouzh.files/publication/icdm08b.pdf?q =isolation-forest] 即 score=2^(-mean length/c(n)),c(n) 对于 n>0 总是正的,所以分数应该总是小于 1。
隔离林的其他实现对同一数据集产生的分数小于 1。
library(data.table)
library(h2o)
h2o.init()
#import data
train<-h2o.importFile('train.csv')
test<-h2o.importFile('test.csv')
#Train model
model <- h2o.isolationForest(training_frame = train)
# Calculate score
scores <- h2o.predict(model,test)
max(scores[,1])
【问题讨论】:
-
这里有什么问题?你是在问为什么分数大于 1?
-
我从原论文的理解是分数应该小于1。
标签: h2o outliers unsupervised-learning