Я пытаюсь создать модель, которая предсказывает, будет ли данная команда играть в плей-офф в НХЛ, на основе различных доступных командных характеристик.Однако я столкнулся с проблемой.
Я использую R, в частности пакет Caret, и пока у меня довольно хороший успех, с одной проблемой: я не могу ограничить количествокоманд, которые, как предсказывают, сделают плей-офф.
Я использую категориальную переменную в качестве прогноза - Y или N.
Например, используя метод случайного леса из пакета caret,
rf_fit <- train(playoff ~ ., data = train_set, method = "rf")
rf_predict <- predict(rf_fit,newdata = test_data_playoffs)
mean(rf_predict == test_data_playoffs$playoff)
дает точность приблизительно 90% для моего тестового набора, но это потому, что он завышает прогноз.В НХЛ 16 команд выходят в плей-офф, но это предсказывает, что 19 команд выйдут в плей-офф.Поэтому я хочу ограничить число предсказаний "Y" до 16.
Есть ли способ ограничить количество возможных ответов для категориальной переменной?Я уверен, что это так, но поиск в Google дал мне ограниченный успех.
РЕДАКТИРОВАТЬ: Предоставить пример данных, которые могут быть созданы с помощью следующего кода:
set.seed(100) # For reproducibility
data <- data.frame(Y = sample(1:10,32,replace = T)/10, N = rep(NA,32))
data$N <- 1-data$Y
Это создаеткадр данных, аналогичный тому, который вы получаете, используя опцию «prob», где у вас есть список вероятностей для Y и N
pred <- predict(fit,newdata = test_data_playoffs, "prob")