library(RSSL)
set.seed(1)
df <- generateSlicedCookie(1000,expected=FALSE) %>%
add_missinglabels_mar(Class~.,0.98)
class_erlr <- EntropyRegularizedLogisticRegression(Class ~., df, lambda=0.01,lambda_entropy = 100)
В функции EntropyRegularizedLogisticRegression
из пакета RSSL
пример в документации передается в виде формулы Class ~.
в качестве входных данных. Я искал исходный код , и это параметры для функции
function (X, y, X_u = NULL, lambda = 0, lambda_entropy = 1, intercept = TRUE,
init = NA, scale = FALSE, x_center = FALSE)
Я пытался вручную определить, что X, y, X_u
основано на сгенерированном мной df
. Но выполнение следующего дает мне ошибку с оптимизацией:
y <- df$Class
X <- df[, -1]
ids <- which(is.na(y))
X_u <- X[ids, ]
class_erlr_manual <- EntropyRegularizedLogisticRegression(X = X, y = y, X_u = X_u, lambda=0.01,lambda_entropy = 100)
Ошибка гласит:
Error in optim(w, fn = loss_erlr, gr = grad_erlr, X, y, X_u, lambda = lambda, :
initial value in 'vmmin' is not finite
Почему изменение ввода формулы Class ~.
в X=X, y =y, X_u = X_u
приводит к ошибка? Может кто-нибудь указать мне, где в исходном коде используется формула ввода?