def test_not_full_rank(): rng = np.random.RandomState(42) rank = 4 X = rng.randn(100, rank) K = np.dot(X, X.T) Y = 2. * rng.randn(len(X)) - 1 gv = kanalysis_K(K, Y) assert abs(gv[-1] - 0) > EPSILON assert gv[rank] != gv[rank - 1] assert gv[rank] == gv[rank + 1]
def test_sinc_linear_kernel(): rng = np.random.RandomState(42) X = rng.uniform(-1, 1, [100, 1]) Y_true = np.sign(np.cos(4. * np.pi * X)) K = np.dot(X, X.T) ka_gt = kanalysis_K(K, Y_true, n_components=len(X)) assert abs(ka_gt[0] - 1) < EPSILON auc_gt = ka_gt.mean() assert abs(ka_gt[1] - 0.97911955529177741) < EPSILON assert abs(ka_gt[6] - 0.97911955529177741) < EPSILON assert abs(auc_gt - 0.97932629236809443) < EPSILON