我正在通过在线Jupyter笔记本工作,并且对为什么我的代码无法正常工作感到困惑:
2.1类内散射矩阵SW:
我的代码如下:
def S_W_matrix(X,y):
S_W = np.zeros((X.shape[1],X.shape[1]))
n_classes = len(np.unique(y))
for cl, mv in zip(range(1, n_classes), mean_vectors):
class_sc_mat = np.zeros((X.shape[1],X.shape[1]))
for row in X[y == cl]:
row, mv = row.reshape(X.shape[1],1), mv.reshape((X.shape[1],1)) # make column vectors
class_sc_mat += (row-mv).dot((row-mv).T)
S_W += class_sc_mat
return S_W
在我看来,我的n_classes是不正确的,但是如果我们为每个唯一的类创建矩阵,我就无法找出为什么会这样吗?
任何提示/建议表示赞赏!