Я очень плохо знаком с машинным обучением и статистикой, и я пытаюсь использовать прямое выделение для набора данных (spam.csv) и использовать 5-кратную перекрестную проверку для оценки. Я врезаюсь в стену, пытаясь пройтись по своему прямому выбору и выполнить перекрестную проверку после добавления функций. Любая помощь по этому вопросу будет очень признателен
best_auc = 0
selected_features = c()
while (TRUE) {
feature_to_add = -1
for (i in setdiff(1:57, selected_features)) {
train = spam_train %>% select(selected_features, i, class)
test = spam_test %>% select(selected_features, i, class)
#logistic_model3 = glm(class ~ ., data = train, family = binomial(link =
"logit"))
cv = createFolds(y = spam$class, k = 5)
for (test_rows in cv){
logistic_model3 = glm(class ~ ., data = train, family = binomial
(link "logit"))
pred_prob = predict(logistic_model3, test, type = "response")
auc = auc(ifelse(test$class == 1,1,0), pred_prob)
if (auc > best_auc) {
best_auc = auc
feature_to_add = i
}
}
if (feature_to_add != -1) {
selected_features = c(selected_features, feature_to_add)
print(selected_features)
print(best_auc)
}
else break
}