def test_trace(): from EvoDAG import RootGP from EvoDAG.node import Add y = cl.copy() mask = y == 0 y[mask] = 1 y[~mask] = -1 Add.nargs = 3 gp = RootGP(generations=np.inf, tournament_size=2, function_set=[Add], classifier=False, early_stopping_rounds=-1, seed=0, popsize=4) gp.X = X[:-10] gp.Xtest = X[-10:] gp.y = y[:-10] gp.create_population() a = gp.random_offspring() gp.population.replace(a) print(a.position, a.variable, a._weight, gp.population.hist[0].variable) s = gp.trace(a) print(len(s), s) assert a._weight.shape[0] + 1 == len(s)
def create_problem_node2(nargs=4, seed=0): from EvoDAG import RootGP gp = RootGP(generations=1, popsize=nargs, multiple_outputs=True, seed=seed) gp.X = X gp.Xtest = X y = cl.copy() gp.nclasses(y) gp.y = y return gp, [gp.X[x] for x in range(nargs)]
def test_features(): from EvoDAG import RootGP gp = RootGP(generations=1) gp.X = X assert gp.nvar == 4 print(gp.X) assert isinstance(gp.X[0], Variable) assert isinstance(gp.X[0].hy, SparseArray) gp.Xtest = X assert gp.X[0].hy.SSE(gp.X[0].hy_test) == 0
def test_features(): from EvoDAG.sparse_array import SparseArray from EvoDAG import RootGP gp = RootGP(generations=1) gp.X = X assert gp.nvar == 4 print(gp.X) assert isinstance(gp.X[0], Variable) assert isinstance(gp.X[0].hy, SparseArray) gp.Xtest = X assert gp.X[0].hy.SSE(gp.X[0].hy_test) == 0
def create_problem_node(nargs=4, seed=0): from EvoDAG import RootGP gp = RootGP(generations=1, popsize=nargs, classifier=False, seed=seed) gp.X = X gp.Xtest = X y = cl.copy() mask = y == 0 y[mask] = 1 y[~mask] = -1 gp.y = y return gp, [gp.X[x] for x in range(nargs)]
def create_problem_node(nargs=4): from EvoDAG import RootGP gp = RootGP(generations=1, popsize=4) gp.X = X gp.Xtest = X y = cl.copy() mask = y == 0 y[mask] = 1 y[~mask] = -1 gp.y = y return gp, [gp.X[x] for x in range(nargs)]
def create_problem_node2(nargs=4, seed=0): from EvoDAG import RootGP from test_root import X, cl import numpy as np gp = RootGP(generations=1, popsize=nargs, multiple_outputs=True, seed=seed) X1 = np.concatenate((X, np.atleast_2d(np.zeros(X.shape[0])).T), axis=1) for i in range(10, 20): X1[i, -1] = 1 gp.X = X1 gp.Xtest = X1 y = cl.copy() gp.nclasses(y) gp.y = y return gp, [gp.X[x] for x in range(nargs)]
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
def test_trace(): from EvoDAG import RootGP from EvoDAG.node import Add y = cl.copy() mask = y == 0 y[mask] = 1 y[~mask] = -1 Add.nargs = 3 gp = RootGP(generations=np.inf, tournament_size=2, function_set=[Add], early_stopping_rounds=-1, seed=0, popsize=4) gp.X = X[:-10] gp.Xtest = X[-10:] gp.y = y[:-10] gp.create_population() a = gp.random_offspring() gp.population.replace(a) print(a.position, a.variable, a._weight, gp.population.hist[0].variable) s = gp.trace(a) assert len(s) == 4