2016-09-25 1 views
0

Мой главный вопрос заключается в следующем:Получение условного 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 или что-то в этом роде? Кто-нибудь знает, что означают эти значения?

В качестве альтернативы, если есть какой-то способ, я могу получить некоторую информацию о важных индивидуальных факторах (не только важные переменные), что тоже было бы хорошо.

ответ

0

Речь идет не о caret; этот объект создается функцией NaiveBayes в пакете klaR.В документации для этого пакета указано:

tables: Список таблиц, по одному для каждой переменной-предиктора. Для каждой категориальной переменной таблица, дающая для каждого уровня атрибута условные вероятности, заданные целевому классу. Для каждой числовой переменной таблица, дающая для каждого целевого класса среднее и стандартное отклонение (под) переменной или объекта плотности класса.

Смежные вопросы