Для прогноза вы не можете сделать это с пакетом woe
. Вам нужно использовать пакет. Обратите внимание на маскирование функции woe
, см. Ниже:
#let's say we woe and then klaR was loaded
library(klaR)
data = data.frame(target=sample(0:1,100,replace=TRUE),
shop_id = sample(1:3,100,replace=TRUE),
another_var = sample(letters[1:3],100,replace=TRUE))
#make sure both dependent and independent are factors
data$target=factor(data$target)
data$shop_id = factor(data$shop_id)
data$another_var = factor(data$another_var)
Вам нужны две или более зависимых переменных:
woemodel <- klaR::woe(target~ shop_id+another_var,
data = data)
Если вы предоставите только одну, у вас есть error:
woemodel <- klaR::woe(target~ shop_id,
data = data)
Ошибка в woe.default (x, grouping, weights = weights, ...): все факторы с уникальными уровнями. Нет бед рассчитывается! Кроме того: Предупреждающее сообщение: In woe.default (x, grouping, weights = weights, ...): только одна входная переменная. Имя переменной в результирующем объекте $ woe сохраняется только в вызове формулы.
Если вы хотите предсказать зависимую переменную только с одной независимой, то будет работать регрессия, подобная logisti c:
mdl = glm(target ~ shop_id,data=data,family="binomial")
prob = predict(mdl,data,type="response")
predicted_label = ifelse(prob>0.5,levels(data$target)[1],levels(data$target)[0])