Мой главный вопрос такой:
Как получить условные вероятности для наивной байесовской модели с помощью пакета caret
в R?
Фон:
Я запустил наивную байесовскую модель с использованием пакета caret
в R. Набор данных по сути представляет собой набор данных о состоянии здоровья с двоичной выходной переменной (ошибка вместо ошибки) с рядом категориальных предикторов и одним или двумя числовыми предикторами. Для этого мы используем пятикратную перекрестную проверку.
Модель работает нормально, но я хотел бы получить условные вероятности. Как мне это сделать? Например, одним из предикторов является «Пульс», который имеет 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 выше, потому что она намного точнее.
Я должен отметить, что 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]
значением "1" для категориальной факторной переменной PulseX2
? Итак, по этой логике, на .3415149 p( y= Mistake (or X1=1) | Pulse = X2)
выше базовый уровень PulseX1 или что-то в этом роде? Кто-нибудь знает, что означают эти значения?
В качестве альтернативы, если есть способ получить некоторую информацию о важных отдельных факторах (не только о важных переменных), это тоже будет хорошо.