def test_ensemble_model(): from EvoDAG import RootGP from EvoDAG.model import Ensemble y = cl.copy() mask = y == 0 y[mask] = 1 y[~mask] = -1 gps = [ RootGP(generations=np.inf, tournament_size=2, early_stopping_rounds=-1, classifier=False, seed=seed, popsize=10).fit(X[:-10], y[:-10], test_set=X) for seed in range(3) ] ens = Ensemble([gp.model() for gp in gps]) res = [gp.decision_function() for gp in gps] res = np.median([x.full_array() for x in res], axis=0) res = SparseArray.fromlist(res) print(res) # res = Add.cumsum(res) * (1 / 3.) r2 = ens.decision_function(None) print(res.full_array()[:10], r2.full_array()[:10]) print(res.SSE(r2)) assert res.SSE(r2) == 0
def test_ensemble(): from EvoDAG import RootGP from EvoDAG.model import Ensemble y = cl.copy() gps = [RootGP(generations=np.inf, tournament_size=2, early_stopping_rounds=-1, seed=seed, multiple_outputs=True, popsize=10).fit(X[:-10], y[:-10], test_set=X) for seed in range(2, 5)] ens = Ensemble([gp.model() for gp in gps]) res = [gp.model().decision_function(X) for gp in gps] res = np.array([np.median([x[j].finite().full_array() for x in res], axis=0) for j in range(3)]).T r2 = ens.decision_function(X) print(res, r2) assert np.fabs(res - r2).sum() == 0
def test_ensemble(): from EvoDAG import RootGP from EvoDAG.model import Ensemble from EvoDAG.node import Add y = cl.copy() gps = [RootGP(generations=np.inf, tournament_size=2, early_stopping_rounds=-1, seed=seed, popsize=10).fit(X[:-10], y[:-10], test_set=X) for seed in range(2, 5)] ens = Ensemble([gp.model() for gp in gps]) res = [gp.decision_function() for gp in gps] res = [Add.cumsum([x[j] for x in res]) for j in range(3)] res = [x / 3. for x in res] r2 = ens.decision_function(None) for a, b in zip(res, r2): assert a.SSE(b) == 0 r2 = ens.predict(None)
def test_ensemble(): from EvoDAG import RootGP from EvoDAG.model import Ensemble from EvoDAG.node import Add y = cl.copy() gps = [ RootGP(generations=np.inf, tournament_size=2, early_stopping_rounds=-1, seed=seed, multiple_outputs=True, popsize=10).fit(X[:-10], y[:-10], test_set=X) for seed in range(2, 5) ] ens = Ensemble([gp.model() for gp in gps]) res = [gp.decision_function() for gp in gps] res = [Add.cumsum([x[j] for x in res]) for j in range(3)] res = [x * (1 / 3.) for x in res] r2 = ens.decision_function(None) for a, b in zip(res, r2): print(a.SSE(b), a.data, b.data, b.full_array()) assert a.SSE(b) == 0
def test_ensemble_model(): from EvoDAG.model import EvoDAG as evodag from EvoDAG.model import Ensemble y = cl.copy() mask = y == 0 y[mask] = 1 y[~mask] = -1 gps = [ evodag(generations=np.inf, tournament_size=2, early_stopping_rounds=-1, classifier=False, seed=seed, popsize=10).fit(X[:-10], y[:-10], test_set=X) for seed in range(3) ] ens = Ensemble([gp.model for gp in gps]) res = [gp.decision_function(X) for gp in gps] res = np.median([x.finite().full_array() for x in res], axis=0) r2 = ens.decision_function(X) print(res, r2) assert np.fabs(res - r2).mean() == 0
def test_ensemble_model(): from EvoDAG import RootGP from EvoDAG.model import Ensemble from EvoDAG.node import Add y = cl.copy() mask = y == 0 y[mask] = 1 y[~mask] = -1 gps = [RootGP(generations=np.inf, tournament_size=2, early_stopping_rounds=-1, seed=seed, popsize=10).fit(X[:-10], y[:-10], test_set=X) for seed in range(3)] ens = Ensemble([gp.model() for gp in gps]) res = [gp.decision_function() for gp in gps] res = Add.cumsum(res) / 3 r2 = ens.decision_function(None) assert res.SSE(r2) == 0 a = SparseArray.fromlist(ens.predict(None)) assert r2.sign().SSE(a) == 0