在网状结构中找不到 sklearn (LocalOutlierFactor) 的私有函数
Can't find private function for sklearn (LocalOutlierFactor) in reticulate
我试图将 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)
现在我想借助 LocalOutlierFactor 的私有函数 _decision_function
预测 test_lof
:
lof1$_decision_function(test_lof)
不幸的是,在使用网状结构时没有这样的功能可用(在 Python 中有该功能)。有谁知道如何使用 reticulate 的私有函数并且可以帮助我?提前致谢。
您可以使用 [[
访问那些 fields/functions。 lof1[['_decision_function']]
应该给你你想要的。
我试图将 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)
现在我想借助 LocalOutlierFactor 的私有函数 _decision_function
预测 test_lof
:
lof1$_decision_function(test_lof)
不幸的是,在使用网状结构时没有这样的功能可用(在 Python 中有该功能)。有谁知道如何使用 reticulate 的私有函数并且可以帮助我?提前致谢。
您可以使用 [[
访问那些 fields/functions。 lof1[['_decision_function']]
应该给你你想要的。