Model evaluation: metrics, resampling, significance tests, and visualization.
Everything needed to measure how well a model performs and to decide whether a difference between two models is real. The subpackages are:
metrics: classification, regression, clustering, and information-theoretic
splitting: resampling strategies (KFold,
train_test_split, and friends).
statistics: significance tests for comparing models across datasets, plus
tuning: hyperparameter search (grid, random, and Bayesian).
visualization: plots and critical-difference diagrams.
from tuiml.evaluation import accuracy_score works without naming the subpackage.Score predictions:
>>> import numpy as np
>>> from tuiml.evaluation import accuracy_score
>>> y_true = np.array([0, 1, 1, 0])
>>> y_pred = np.array([0, 1, 0, 0])
>>> accuracy_score(y_true, y_pred)
0.75
Hold out a test set:
>>> from tuiml.datasets import load_iris
>>> from tuiml.evaluation import train_test_split
>>> X, y = load_iris()
>>> X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
>>> len(X_train), len(X_test)
(120, 30)
Cross-validate:
>>> from tuiml.evaluation import KFold
>>> cv = KFold(n_splits=5, shuffle=True, random_state=0)
>>> sum(1 for _ in cv.split(X))
5
Search hyperparameters:
>>> from tuiml.evaluation import GridSearchCV
>>> from tuiml.algorithms.bayesian import NaiveBayesClassifier
>>> search = GridSearchCV(NaiveBayesClassifier(),
... param_grid={'use_kernel_estimator': [True, False]})
>>> search = search.fit(X, y) # doctest: +SKIP
>>> search.best_params_ # doctest: +SKIP
{'use_kernel_estimator': False}