Spaces:
Sleeping
Sleeping
| from __future__ import annotations | |
| import numpy as np | |
| from src.models.ensemble.stacking import StackingEnsemble, WeightedAverageEnsemble | |
| def test_stacking_and_weighted_ensemble(): | |
| X = np.array([[1.0], [2.0], [3.0], [4.0]]) | |
| y = np.array([2.0, 4.0, 6.0, 8.0]) | |
| learners = [ | |
| ("m1", lambda z: z[:, 0] * 2.0), | |
| ("m2", lambda z: z[:, 0] * 1.8), | |
| ] | |
| stack = StackingEnsemble(learners) | |
| stack.fit(X, y, n_folds=2) | |
| preds = stack.predict(X) | |
| assert preds.shape == y.shape | |
| wa = WeightedAverageEnsemble(learners) | |
| wa.fit(X, y) | |
| w = wa.get_weights_dict() | |
| assert np.isclose(sum(w.values()), 1.0) | |