def test_MultiTaskLassoCV(): """Test that our MultitaskLassoCV behaves like sklearn's.""" X, y = build_dataset(n_samples=30, n_features=50, n_targets=3) params = dict(eps=1e-2, n_alphas=10, tol=1e-10, cv=2, n_jobs=1, fit_intercept=False, verbose=2) clf = MultiTaskLassoCV(**params) clf.fit(X, y) clf2 = sklearn_MultiTaskLassoCV(**params) clf2.max_iter = 10000 # increase max_iter bc of low tol clf2.fit(X, y) np.testing.assert_allclose(clf.mse_path_, clf2.mse_path_, atol=1e-4, rtol=1e-04) np.testing.assert_allclose(clf.alpha_, clf2.alpha_, atol=1e-4, rtol=1e-04) np.testing.assert_allclose(clf.coef_, clf2.coef_, atol=1e-4, rtol=1e-04) # check_estimator tests float32 so using tol < 1e-7 causes precision # issues clf.tol = 1e-5 check_estimator(clf)
def test_dropin_MultiTaskLassoCV(): """Test that our LassoCV behaves like sklearn's LassoCV.""" X, y, _, _ = build_dataset(n_samples=30, n_features=50, n_targets=3) params = dict(eps=1e-1, n_alphas=100, tol=1e-10, cv=2, n_jobs=2, fit_intercept=False, verbose=True) clf = MultiTaskLassoCV(**params) clf.fit(X, y) clf2 = sklearn_MultiTaskLassoCV(**params) clf2.fit(X, y) np.testing.assert_allclose(clf.mse_path_, clf2.mse_path_, rtol=1e-04) np.testing.assert_allclose(clf.alpha_, clf2.alpha_, rtol=1e-05) np.testing.assert_allclose(clf.coef_, clf2.coef_, rtol=1e-05) check_estimator(MultiTaskLassoCV)