Гауссовский байесовский / квадратичный c дискриминантный анализ в Python - PullRequest
0 голосов
/ 03 апреля 2020

Учитывая два распределения, где

mean 1 = [3,2]
variance 1 = [[1.5,0],[0,1.5]]

и

mean 2 = [8,5]
variance 2 = [[3,0],[0,3]]

Использование Quadrati c Классификатор / Гауссовского байесовского классификатора. Мне необходимо a) генерировать 300 выборок из каждого распределения и правильно пометьте его б) определите функцию, которая использует вышеприведенные параметры, чтобы вернуть класс с наибольшей вероятностью для каждого образца (не должен быть точным на 100%) c) Используйте эту функцию для маркировки каждого образца и определения точности функция

в Python.

Это мой код (часть а)

df11 = pd.DataFrame(a11, columns=['x1', 'x2'])
a22 = np.random.multivariate_normal([8,5],[[3,0],[0,3]],300)
df22= pd.DataFrame(a22, columns=['x1','x2'])
df11.insert(2,'class', 0)
df22.insert(2,'class',1)
df33=pd.concat([df11,df22], ignore_index=True)

Но я не уверен, куда отсюда go. Я пытался написать свою собственную функцию, используя квадратичную c дискриминантную функцию для этого случая: g (x) = -0,5 * transpose (xu) дисперсия ^ (- 1) (xu) -log (abs (дисперсия)) [мы предполагаем, что предыдущие вероятности равны], но боролись с ошибками.

Краткий обзор Quadrati c Дискриминантный анализ: необходимо определить функцию g (x) для каждого класса / распределения для каждого образца. Затем каждый образец классифицируется в классе с наибольшим значением g (x) для этого образца.

...