Если я вас правильно понимаю, вы хотите назначить новое, неизвестное, назначение данных либо для класса 1, либо для класса 2 с дескрипторами для каждого класса (в данном случае среднего вектора и ковариационной матрицы), найденного gmdistribution.fit.
Видя это новое назначение данных, давайте назовем его x, вы должны спросить себя, что такое p (modeldata1 | x) и p (modeldata2 | x), и какой из них является самым высоким, которому вы должны присвоить x.
Так как вы их нашли?Вы просто применяете правило Байеса и выбираете, какое из них является наибольшим:
p(modeldata1 | x) = p(x|modeldata1)p(modeldata1)/p(x)
p(modeldata1 | x) = p(x|modeldata2)p(modeldata2)/p(x)
Здесь вам не нужно вычислять p (x), поскольку оно одинаково в каждом уравнении.
Так, теперь вы оцениваете приоры p (modeldata1) и p (modeldata2) по количеству тренировочных очков из каждого класса (или используете некоторую заданную информацию), а затем вычисляете
p(x|modeldata1)=1/((2pi)^d/2 * sqrt(det(Sigma1)))*exp(0.5*(x-mu1)/Sigma1*(x-mu1))
, где d
- размерностьиз ваших данных, Sigma
- это матрица корвариации, а mu
- средний вектор.Это то, что вы попросили p (data | modeldata1).(Просто не забывайте также использовать p (modeldata1) и p (modeldata2) при выполнении классификации).
Я знаю, что это было немного неясно, но, надеюсь, это поможет вам сделать шаг в правильном направлении.
РЕДАКТИРОВАТЬ: Лично я нахожу визуализацию, подобную приведенной ниже (взято из Распознавания образов Теодоридисом и Кутрумбасом).Здесь у вас есть две гауссовых смеси с некоторыми априорами и разными ковариационными матрицами.В синей области вы можете выбрать один класс, а в серой - другой.