Хотя отношение 0 к 1 с составляет 1: 9, это не означает, что веса равны 0,1 и 0,9. Вес решает, сколько внимания вы хотите уделить наблюдению по сравнению с другими.
И в вашем случае, если вы хотите что-то предсказать, важно разделить ваши данные на тренировку и тестирование и посмотреть, какое влияние оказывают веса на прогноз.
Ниже приведено использование Пример индийского диабета pima, я выбираю тип Yes так, чтобы тренировочный набор имел соотношение 1: 9.
set.seed(111)
library(MASS)
# we sample 10 from Yes and 90 from No
idx = unlist(mapply(sample,split(1:nrow(Pima.tr),Pima.tr$type),c(90,10)))
Data = Pima.tr
trn = Data[idx,]
test = Data[-idx,]
table(trn$type)
No Yes
90 10
Давайте попробуем регрессировать его с весом 9, если положительный, 1, если отрицательный:
library(caret)
W = 9
lvl = levels(trn$type)
#if positive we give it the defined weight, otherwise set it to 1
fit_wts = ifelse(trn$type==lvl[2],W,1)
fit = glm(type ~ .,data=trn,weight=fit_wts,family=binomial)
# we test it on the test set
pred = ifelse(predict(fit,test,type="response")>0.5,lvl[2],lvl[1])
pred = factor(pred,levels=lvl)
confusionMatrix(pred,test$type,positive=lvl[2])
Confusion Matrix and Statistics
Reference
Prediction No Yes
No 34 26
Yes 8 32
Вы можете видеть сверху, вы можете видеть, что все в порядке, но вы пропускаете 8 положительных результатов, а также ошибочно маркируете 26 ложных положительных результатов. Допустим, мы пытаемся W = 3
W = 3
lvl = levels(trn$type)
fit_wts = ifelse(trn$type==lvl[2],W,1)
fit = glm(type ~ .,data=trn,weight=fit_wts,family=binomial)
pred = ifelse(predict(fit,test,type="response")>0.5,lvl[2],lvl[1])
pred = factor(pred,levels=lvl)
confusionMatrix(pred,test$type,positive=lvl[2])
Матрица и статистика путаницы
Reference
Prediction No Yes
No 39 30
Yes 3 28
Теперь нам удается получить почти все правильные вызовы правильно. Но все же упускаем много потенциальное «да». Суть в том, что приведенный выше код может сработать, но вам нужно сделать несколько проверок, чтобы выяснить, каков вес ваших данных.
Вы также можете просмотреть другие статистические данные, предоставленные confusionMatrix, чтобы помочь вам в выборе. .