def test_fitness(): from EvoDAG import RootGP gp = RootGP(generations=1, classifier=False, popsize=4) gp.X = X y = cl.copy() mask = y == 0 y[mask] = 1 y[~mask] = -1 gp.y = y l = gp.random_leaf() assert l.fitness < 0
def test_fitness(): from EvoDAG import RootGP gp = RootGP(generations=1, popsize=4) assert gp._classifier gp.X = X y = cl.copy() mask = y == 0 y[mask] = 1 y[~mask] = -1 gp.y = y l = gp.random_leaf() assert l.fitness < 0
def test_BER(): from EvoDAG.node import Add from EvoDAG import RootGP from EvoDAG.utils import BER gp = RootGP(generations=1, popsize=4, multiple_outputs=True) assert gp._classifier gp.X = X y = cl.copy() gp.nclasses(y) gp.y = y m = np.sign(tonparray(gp._mask_ts)).astype(np.bool) v = gp.random_leaf() v1 = gp.random_leaf() v1 = gp.random_leaf() a = Add([0, 1], ytr=gp._ytr, mask=gp._mask) a.eval([v, v1]) hy = SparseArray.argmax(a.hy) b = BER(y[m], tonparray(hy)[m]) gp._bagging_fitness.fitness(a) print(b, a.fitness * 100) assert_almost_equals(b, -a.fitness * 100)
def test_random_leaf_inf(): from EvoDAG import RootGP gp = RootGP(generations=1, classifier=False, popsize=4, tr_fraction=1) Xc = [x for x in X] Xc[0] = Xc[0] + np.inf gp.X = Xc y = cl.copy() mask = y == 0 y[mask] = 1 y[~mask] = -1 gp.y = y randint = np.random.randint mock = MagicMock() mock.side_effect = list(range(2)) np.random.randint = mock gp.random_leaf() try: assert mock() assert False except Exception: pass np.random.randint = randint
def test_BER(): from EvoDAG.node import Add from EvoDAG import RootGP from EvoDAG.utils import BER gp = RootGP(generations=1, popsize=4) assert gp._classifier gp.X = X y = cl.copy() mask = y == 0 y[mask] = 1 y[~mask] = -1 gp.y = y m = ~ gp._mask.tonparray().astype(np.bool) v = gp.random_leaf() v1 = gp.random_leaf() v1 = gp.random_leaf() a = Add([0, 1], ytr=gp._ytr, mask=gp._mask) a.eval([v, v1]) hy = a.hy.sign() b = BER(y[m], hy.tonparray()[m]) gp.fitness_vs(a) print(b, a.fitness_vs * 100) assert_almost_equals(b, -a.fitness_vs * 100)
def test_random_leaf(): from EvoDAG import RootGP gp = RootGP(generations=1, popsize=4, tr_fraction=1) gp.X = X y = cl.copy() mask = y == 0 y[mask] = 1 y[~mask] = -1 gp.y = y randint = np.random.randint mock = MagicMock(return_value=0) np.random.randint = mock mask = gp._mask.tonparray().astype(np.bool) weight = np.linalg.lstsq(X[mask, 0][:, np.newaxis], y[mask])[0][0] var = gp.random_leaf() assert isinstance(var, Variable) print(weight, var.weight) assert_almost_equals(weight, var.weight[0]) np.random.randint = randint
def test_random_leaf(): from EvoDAG import RootGP gp = RootGP(generations=1, classifier=False, popsize=4) gp.X = X y = cl.copy() mask = y == 0 y[mask] = 1 y[~mask] = -1 gp.y = y randint = np.random.randint mock = MagicMock(return_value=0) np.random.randint = mock mask = tonparray(gp._mask).astype(np.bool) weight = np.linalg.lstsq(X[mask, 0][:, np.newaxis], y[mask])[0][0] var = gp.random_leaf() assert isinstance(var, Variable) print(weight, var.weight) assert_almost_equals(weight, var.weight) np.random.randint = randint
def test_variable(): from EvoDAG import RootGP gp = RootGP(generations=1, popsize=4) gp.X = X Xtest = [x for x in X] Xtest[0] = Xtest[0] + np.inf gp.Xtest = Xtest y = cl.copy() mask = y == 0 y[mask] = 1 y[~mask] = -1 gp.y = y randint = np.random.randint mock = MagicMock() mock.side_effect = list(range(gp.popsize)) np.random.randint = mock var = gp.random_leaf() assert var.isfinite() assert var.hy.isfinite() np.random.randint = randint
def test_variable(): from EvoDAG import RootGP gp = RootGP(generations=1, classifier=False, popsize=4) gp.X = X Xtest = [x for x in X] Xtest[0] = Xtest[0] + np.inf gp.Xtest = Xtest y = cl.copy() mask = y == 0 y[mask] = 1 y[~mask] = -1 gp.y = y randint = np.random.randint mock = MagicMock() mock.side_effect = list(range(gp.popsize)) np.random.randint = mock var = gp.random_leaf() assert var.isfinite() assert var.hy.isfinite() np.random.randint = randint