Мой главный вопрос заключается в следующем:Получение условного Probabilites для наивного байесовского Модель разработана с использованием пакета каретку в R
Как вы получить условные вероятности для модели наивного байесовского с использованием caret
пакета в R?
фон:
Я запустил наивную байесовскую модель с использованием caret
пакета в R. Набор данные, по существу, здоровье набор данные с двоичным переменным исходом (ошибка против не ошибки) с серией категориальных предикторов и один или два числовых предиктора. Для этого мы используем 5-кратный метод перекрестной проверки.
Модель работает нормально, но я хотел бы получить условные вероятности. Как мне это сделать? Например, одним из предикторов является «Импульс», который имеет 3 фактора: Low
, Normal
и High
. Я хотел бы получить что-то вроде «Учитывая низкий импульс, какова вероятность ошибки» AKA: p(y = "Mistake" | Pulse="Low")
.
Соответствующий код здесь:
ctrl<-trainControl(method="cv",number=5,classProb=T)
mod4<-train(Target~.,data=train,method="nb",trControl=ctrl)
В пакете Klar, это не трудно сделать (Вторая строка показывает это):
model4<-naiveBayes(Target~. ,data=train, scale=T)
model4_variable_posterior_prob <- model4$tables[[var2]]
Однако, я бы очень хотел, чтобы используйте модель с перекрестной проверкой, которую производит Карет, потому что она намного точнее.
Я хотел бы отметить, что Caret производит некоторые таблицы здесь:
mod4$finalModel$tables$
Однако, я не уверен, если эти таблицы условные вероятности или некоторые другие значения.
Например, mod4$finalModel$tables$PulseX2
производит следующее:
[,1] [,2]
X1 0.1343284 0.3415149
X2 0.1731343 0.3789293
Я считаю, что PulseX2
таблица на Pulse= Medium
и PulseX3
таблица на Pulse=High
, но я не совсем уверен. Однако я знаю, что в приведенном выше, X1
является «ошибкой», а X2
«не ошибся». Но мой вопрос в том, является ли столбец [,1]
значением «0» для категориальной факторной переменной PulseX2
? И есть [,2]
column a "1" значение для категориальной факторной переменной PulseX2
? Итак, по этой логике, .3415149 p(y= Mistake (or X1=1) | Pulse = X2)
выше базовой линии PulseX1 или что-то в этом роде? Кто-нибудь знает, что означают эти значения?
В качестве альтернативы, если есть какой-то способ, я могу получить некоторую информацию о важных индивидуальных факторах (не только важные переменные), что тоже было бы хорошо.