Как запустить перекрестную проверку при прямом отборе в R? - PullRequest
0 голосов
/ 20 марта 2019

Я очень плохо знаком с машинным обучением и статистикой, и я пытаюсь использовать прямое выделение для набора данных (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
}
...