1

我试图将部分 python 代码添加到我的 R 脚本中。不幸的是,我似乎不能在 R 中为 LocalOutlierFactor 使用私有函数:

# Sample Data
n <- 5000
n_outlier <- .05 * n

set.seed(11212)
inlier <- mvtnorm::rmvnorm(n, mean = c(0,0))
outlier <- mvtnorm::rmvnorm(n_outlier, mean = c(20, 20))
testdata <- rbind(inlier, outlier)
smp_size <- floor(0.5 * nrow(testdata))
train_ind <- sample(seq_len(nrow(testdata)), size = smp_size)
train_lof <-as.data.frame(testdata[train_ind, ])
test_lof <- as.data.frame(testdata[-train_ind, ])

sklearn.neighbors <- import("sklearn.neighbors")

lof1 <- sklearn.neighbors$LocalOutlierFactor(n_neighbors=15)
lof1$fit(train_lof)

现在我想借助LocalOutlierFactortest_lof的私有函数进行预测:_decision_function

lof1$_decision_function(test_lof)

不幸的是,使用 reticulate 时没有这样的函数可用(在 Python 中该函数在那里)。有谁知道如何使用网状的私人功能并可以帮助我?提前致谢。

4

1 回答 1

1

您可以使用[[来访问这些字段/功能。lof1[['_decision_function']]应该给你你想要的。

于 2018-05-12T14:13:51.440 回答