models.compare()
Fits every model on each split’s training rows and scores its test
Usage
models.compare(
models,
design,
y,
splits,
scores,
n_jobs=None,
)predictions on every metric: one table across engines.
Parameters
models: dict-
Name to model; each model has
fit(design, y)returning an object withpredict(design), as for cross_validate. design: Designy: list of floatsplits: list of (list of int, list of int)scores: dict-
Name to
score(y_test, predicted, test_design) -> float, losses (lower is better). n_jobs: int = None- Threads; one per split by default.
Returns
Comparison
Examples
>>> from prospicio.models import Design, ElasticNet, Glm, compare, deviance_score, k_fold
>>> x = [i / 10 for i in range(40)]
>>> d = Design([[1.0] * 40, x], ["(Intercept)", "x"])
>>> y = [1.0 + 2.0 * v + (0.3 if i % 3 else -0.6) for i, v in enumerate(x)]
>>> c = compare({"glm": Glm("gaussian"), "ridge": ElasticNet("gaussian", alpha=0.0, lam=5.0)},
... d, y, k_fold(40, 4, 1), {"deviance": deviance_score("gaussian")})
>>> c.best("deviance")‘glm’
>>> [row["model"] for row in c.table()][‘glm’, ‘ridge’]