def test_interleaved_scores(): """Test a dummy regressor""" X = np.random.random((100, 10)) y = X[:, 0]**2 estimator = TemplateEstimator() mse_scorer = make_scorer(mean_squared_error) scores = interleaved_evaluation(estimator, X, y, mse_scorer) assert_almost_equal(scores, np.zeros(X.shape[0]))
def test_template_estimator(data): est = TemplateEstimator() assert est.demo_param == 'demo_param' est.fit(*data) assert hasattr(est, 'is_fitted_') X = data[0] y_pred = est.predict(X) assert_array_equal(y_pred, np.ones(X.shape[0], dtype=np.int64))
def test_prequential_window(): """Test length of produced evaluation when windows are used""" n_samples = 100 window_size = 10 assert n_samples % window_size == 0 # Meta-test, this needs to hold X = np.random.random((n_samples, 10)) y = X[:, 0]**2 estimator = TemplateEstimator() mse_scorer = make_scorer(mean_squared_error) scores = prequential_evaluation(estimator, X, y, mse_scorer, window_size=window_size) eq_(len(scores), n_samples / window_size)
def test_prequential_incomplete_window(): """Test length of produced evaluation when windows are used, and the last window has less items than the requested length""" n_samples = 109 window_size = 10 assert n_samples % window_size != 0 X = np.random.random((n_samples, 10)) y = X[:, 0]**2 estimator = TemplateEstimator() mse_scorer = make_scorer(mean_squared_error) scores = prequential_evaluation(estimator, X, y, mse_scorer, window_size=window_size) eq_(len(scores), np.ceil(n_samples / window_size))
def test_prequential_multimetric(): n_samples = 100 window_size = 10 assert n_samples % window_size == 0 # Meta-test, this needs to hold X = np.random.random((n_samples, 10)) y = X[:, 0]**2 estimator = TemplateEstimator() mse_scorer = make_scorer(mean_squared_error) r2_scorer = make_scorer(r2_score) score_dict = {"mse": mse_scorer, "r2": r2_scorer} result_dict = prequential_evaluation(estimator, X, y, score_dict, window_size=window_size) assert isinstance(result_dict, dict) for score_name, score_list in result_dict.items(): eq_(len(score_list), n_samples / window_size)
""" =========================== Plotting Template Estimator =========================== An example plot of TemplateEstimator """ import numpy as np from skltemplate import TemplateEstimator from matplotlib import pyplot as plt X = np.arange(100).reshape(100, 1) y = np.zeros((100, )) estimator = TemplateEstimator() estimator.fit(X, y) plt.plot(estimator.predict(X)) plt.show()
import pytest from sklearn.utils.estimator_checks import check_estimator from skltemplate import TemplateEstimator from skltemplate import TemplateClassifier from skltemplate import TemplateTransformer @pytest.mark.parametrize( "estimator", [TemplateEstimator(), TemplateTransformer(), TemplateClassifier()] ) def test_all_estimators(estimator): return check_estimator(estimator)