reticulate does not work with R-Data frame and fit() function from Python (TypeError: 'float' object cannot be interpreted as an integer)
reticulate does not work with R-Data frame and fit() function from Python (TypeError: 'float' object cannot be interpreted as an integer)
我尝试使用 R 数据框并将其与包 'reticulate' 一起使用。我在互联网上找不到答案。对不起,如果这是一个基本问题。
# 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)
给出以下错误:
Error in py_call_impl(callable, dots$args, dots$keywords) :
TypeError: 'float' object cannot be interpreted as an integer
在使用 reticulate
时,您必须明确您的类型(例如,整数与浮点数——或列表与向量)。该函数需要一个整数,因此您必须使用 as.integer()
:
lof1 = sklearn.neighbors$LocalOutlierFactor(n_neighbors=as.integer(15))
我尝试使用 R 数据框并将其与包 'reticulate' 一起使用。我在互联网上找不到答案。对不起,如果这是一个基本问题。
# 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)
给出以下错误:
Error in py_call_impl(callable, dots$args, dots$keywords) : TypeError: 'float' object cannot be interpreted as an integer
在使用 reticulate
时,您必须明确您的类型(例如,整数与浮点数——或列表与向量)。该函数需要一个整数,因此您必须使用 as.integer()
:
lof1 = sklearn.neighbors$LocalOutlierFactor(n_neighbors=as.integer(15))