Я использую библиотеку PRTools MATLAB для обучения некоторых классификаторов, генерации тестовых данных и тестирования классификаторов.
У меня есть следующие данные:
- N: Общее количество тестовых примеров
- k: # из
неправильная классификация для каждого
классификатор и класс
Я хочу сделать:
Рассчитать и построить байесовские апостериорные распределения неизвестных вероятностей ошибочной классификации (обозначается как q), то есть как функция плотности вероятности над самим q (так что P (q) будет построена по q, от 0 до 1) .
У меня есть это (математические формулы, а не код Matlab!):
Posterior = Likelihood * Prior / Normalization constant =
P(q|k,N) = P(k|q,N) * P(q|N) / P(k|N)
Предыдущее значение равно 1, поэтому мне нужно только вычислить константу вероятности и нормализации.
Я знаю, что вероятность может быть выражена как (где B (N, k) - биномиальный коэффициент):
P(k|q,N) = B(N,k) * q^k * (1-q)^(N-k)
... так что константа нормализации - это просто интеграл от апостериорного значения выше, от 0 до 1:
P(k|N) = B(N,k) * integralFromZeroToOne( q^k * (1-q)^(N-k) )
(Биномиальный коэффициент (B (N, k)) может быть опущен, хотя он появляется как в вероятности, так и в константе нормализации)
Теперь я слышал, что интеграл для константы нормализации должен быть рассчитан как ряд ... что-то вроде:
k!(N-k)! / (N+1)!
Это правильно? (У меня есть некоторые лекционные заметки с этой серией, но я не могу понять, если это для интеграла константы нормализации или для общего распределения неправильной классификации (q))
Кроме того, приветствуются подсказки, как практически рассчитать это? (факториалы легко создают ошибки усечения, верно?) ... И как практически рассчитать окончательный график (апостериорное распределение по q от 0 до 1).