Не удается найти частную функцию для sklearn (LocalOutlierFactor) в сетке

Я попытался добавить часть кода Python в мой R Script. К сожалению, кажется, что я не могу использовать приватную функцию для LocalOutlierFactor в R:

# 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)

Теперь я хочу предсказать test_lof с помощью приватной функции _decision_function из LocalOutlierFactor:

lof1$_decision_function(test_lof)

К сожалению, нет такой функции, доступной при использовании reticulate (в Python эта функция есть). Кто-нибудь знает, как использовать частные функции из сети и может мне помочь? Заранее спасибо.

1 ответ

Решение

Ты можешь использовать [[ чтобы получить доступ к этим полям / функциям. lof1[['_decision_function']] должен дать вам то, что вы хотите.

Другие вопросы по тегам