여기에서 m은 모든 클래스의 샘플을 포함하여 계산된 전체 평균입니다.
>>> mean_overall = np.mean(X_train_std, axis=0)
>>> mean_overall = mean_overall.reshape(d, 1)
>>> d = 13 # 특성 개수
>>> S_B = np.zeros((d, d))
>>> for i, mean_vec in enumerate(mean_vecs):
... n = X_train_std[y_train == i + 1, :].shape[0]
... mean_vec = mean_vec.reshape(d, 1) # 열 벡터로 만들기
... S_B += n * (mean_vec - mean_overall).dot(
... (mean_vec - mean_overall).T)
>>> print('클래스 간의 산포 행렬: '
... f'{S_B.shape[0]}x{S_B.shape[1]}')
클래스 간의 산포 행렬: 13x13