我正在研究GANs(我是python的初学者),我在之前的练习中发现这部分代码我不明白。具体来说,我不明白为什么使用第 9 行的布尔值(Xk = X[Y == k]),原因我写在下面
class BayesClassifier:
def fit(self, X, Y):
# assume classes are numbered 0...K-1
self.K = len(set(Y))
self.gaussians = []
self.p_y = np.zeros(self.K)
for k in range(self.K):
Xk = X[Y == k]
self.p_y[k] = len(Xk)
mean = Xk.mean(axis=0)
cov = np.cov(Xk.T)
g = {'m': mean, 'c': cov}
self.gaussians.append(g)
# normalize p(y)
self.p_y /= self.p_y.sum()
该布尔值返回 0 或 1,具体取决于 Y == k 的真实性,因此 Xk 始终是 X 列表的第一个或第二个值。你没有找到那个的效用。
在第 10 行中,len(Xk) 始终为 1,为什么它使用该参数而不是单个 1?
下一行的均值和协方差每次只计算一个值。
我觉得我没有理解一些非常基本的东西。
手掌心
相关分类