def test_calc_scatter_matrices(): X = np.asarray([[0, 1], [2, 3], [4, 5], [6, 7], [8, 9], [10, 11], [12, 13], [14, 15]]) Y = [0, 0, 0, 0, 1, 1, 1, 1] S_w_expected = np.asarray([[5, 5], [5, 5]]) S_b_expected = np.asarray([[16, 16], [16, 16]]) S_b, S_w = calc_scatter_matrices(X, Y) assert_allclose(S_w, S_w_expected, rtol=1e-20) assert_allclose(S_b, S_b_expected, rtol=1e-20)
def calc_error(truth_dict): data = truth_dict['data'] labels = truth_dict['labels'] S_b, S_w = calc_scatter_matrices(data, labels) n = truth_dict['n_k'] expected = truth_dict['Phi_b'] predicted = S_b - S_w / (n - 1) error = calc_mean_squared_error(expected, predicted, as_log=True) return error