附 第二章作业
题目
设以下模式类别具有正态概率密度函数:
ω1:{(0 0)T,(2 0)T,(2 2)T,(0 2)T}ω2:{(4 4)T,(6 4)T,(6 6)T,(4 6)T}
(1)设P(ω1)=P)ω2=21,求这两类模式之间的贝叶斯判别界面方程式。
(2)绘出判别界面。
解
(1)判别界面方程式
由
mi=N1j=1∑NixijCi=N1j=1∑Ni(xij−mi)(xij−mi)T
得:
m1=41j=1∑4x1j=(1 1)Tm2=41j=1∑4x2j=(5 5)TC1=41j=1∑4(x1j−m1)(x1j−m1)T=(1001)C2=41j=1∑4(x2j−m2)(x2j−m2)T=(1001)C−1=(1001)
带入判别式有:
d1(x)−d2(x)=lnP(ω1)−lnP(ω2)+(m1−m2)TC−1x−21m1TC−1m1+21m2TC−1m2=−4x1−4x2+24=0
(2)绘图
绘制图像如下图所示:
附加
使用python实现:
import numpy as np
import matplotlib.pyplot as plt
w1 = np.array([[0, 0], [2, 0], [2, 2], [0, 2]])
w2 = np.array([[4, 4], [6, 4], [6, 6], [4, 6]])
m1 = np.mean(w1, axis=0)
m2 = np.mean(w2, axis=0)
cov1 = np.cov(w1.T, bias=True)
cov2 = np.cov(w2.T, bias=True)
inv_cov1 = np.linalg.inv(cov1)
inv_cov2 = np.linalg.inv(cov2)
w = np.dot((m1 - m2), inv_cov1)
b = -0.5 * np.dot(m1, np.dot(inv_cov1, m1)) + 0.5 * np.dot(m2, np.dot(inv_cov2, m2))
def discriminant_function(_x):
return -(w[0] * _x + b) / w[1]
x = np.linspace(-2, 7, 100)
plt.plot(x, discriminant_function(x), 'r-', label='Discriminant')
plt.scatter(w1[:, 0], w1[:, 1], c='blue', label='ω1')
plt.scatter(w2[:, 0], w2[:, 1], c='green', label='ω2')
plt.legend()
plt.show()
最后更新于
这有帮助吗?