@@ -474,9 +474,12 @@ def enet_path(X, y, l1_ratio=0.5, eps=1e-3, n_alphas=100, alphas=None,
474
474
model = cd_fast .enet_coordinate_descent_gram (
475
475
coef_ , l1_reg , l2_reg , precompute , Xy , y , max_iter ,
476
476
tol , positive )
477
- else :
477
+ elif precompute is False :
478
478
model = cd_fast .enet_coordinate_descent (
479
479
coef_ , l1_reg , l2_reg , X , y , max_iter , tol , positive )
480
+ else :
481
+ raise ValueError ("Precompute should be one of True, False, "
482
+ "'auto' or array-like" )
480
483
coef_ , dual_gap_ , eps_ = model
481
484
coefs [..., i ] = coef_
482
485
dual_gaps [i ] = dual_gap_
@@ -893,7 +896,13 @@ def _path_residuals(X, y, train, test, path, path_params, alphas=None,
893
896
y_test = y [test ]
894
897
fit_intercept = path_params ['fit_intercept' ]
895
898
normalize = path_params ['normalize' ]
896
- precompute = path_params ['precompute' ]
899
+
900
+ if y .ndim == 1 :
901
+ precompute = path_params ['precompute' ]
902
+ else :
903
+ # No Gram variant of multi-task exists right now.
904
+ # Fall back to default enet_multitask
905
+ precompute = False
897
906
898
907
X_train , y_train , X_mean , y_mean , X_std , precompute , Xy = \
899
908
_pre_fit (X_train , y_train , None , precompute , normalize , fit_intercept ,
@@ -1642,11 +1651,6 @@ class MultiTaskElasticNetCV(LinearModelCV, RegressorMixin):
1642
1651
List of alphas where to compute the models.
1643
1652
If not provided, set automatically.
1644
1653
1645
- precompute : True | False | 'auto' | array-like
1646
- Whether to use a precomputed Gram matrix to speed up
1647
- calculations. If set to ``'auto'`` let us decide. The Gram
1648
- matrix can also be passed as argument.
1649
-
1650
1654
n_alphas : int, optional
1651
1655
Number of alphas along the regularization path
1652
1656
@@ -1720,8 +1724,7 @@ class MultiTaskElasticNetCV(LinearModelCV, RegressorMixin):
1720
1724
... #doctest: +NORMALIZE_WHITESPACE
1721
1725
MultiTaskElasticNetCV(alphas=None, copy_X=True, cv=None, eps=0.001,
1722
1726
fit_intercept=True, l1_ratio=0.5, max_iter=1000, n_alphas=100,
1723
- n_jobs=1, normalize=False, precompute='auto', tol=0.0001,
1724
- verbose=0)
1727
+ n_jobs=1, normalize=False, tol=0.0001, verbose=0)
1725
1728
>>> print(clf.coef_)
1726
1729
[[ 0.52875032 0.46958558]
1727
1730
[ 0.52875032 0.46958558]]
@@ -1744,7 +1747,7 @@ class MultiTaskElasticNetCV(LinearModelCV, RegressorMixin):
1744
1747
path = staticmethod (enet_path )
1745
1748
1746
1749
def __init__ (self , l1_ratio = 0.5 , eps = 1e-3 , n_alphas = 100 , alphas = None ,
1747
- fit_intercept = True , normalize = False , precompute = 'auto' ,
1750
+ fit_intercept = True , normalize = False ,
1748
1751
max_iter = 1000 , tol = 1e-4 , cv = None , copy_X = True ,
1749
1752
verbose = 0 , n_jobs = 1 ):
1750
1753
self .l1_ratio = l1_ratio
@@ -1753,7 +1756,6 @@ def __init__(self, l1_ratio=0.5, eps=1e-3, n_alphas=100, alphas=None,
1753
1756
self .alphas = alphas
1754
1757
self .fit_intercept = fit_intercept
1755
1758
self .normalize = normalize
1756
- self .precompute = precompute
1757
1759
self .max_iter = max_iter
1758
1760
self .tol = tol
1759
1761
self .cv = cv
@@ -1785,11 +1787,6 @@ class MultiTaskLassoCV(LinearModelCV, RegressorMixin):
1785
1787
List of alphas where to compute the models.
1786
1788
If not provided, set automaticlly.
1787
1789
1788
- precompute : True | False | 'auto' | array-like
1789
- Whether to use a precomputed Gram matrix to speed up
1790
- calculations. If set to ``'auto'`` let us decide. The Gram
1791
- matrix can also be passed as argument.
1792
-
1793
1790
n_alphas : int, optional
1794
1791
Number of alphas along the regularization path
1795
1792
@@ -1860,10 +1857,10 @@ class MultiTaskLassoCV(LinearModelCV, RegressorMixin):
1860
1857
path = staticmethod (lasso_path )
1861
1858
1862
1859
def __init__ (self , eps = 1e-3 , n_alphas = 100 , alphas = None , fit_intercept = True ,
1863
- normalize = False , precompute = 'auto' , max_iter = 1000 , tol = 1e-4 ,
1864
- copy_X = True , cv = None , verbose = False , n_jobs = 1 ):
1860
+ normalize = False , max_iter = 1000 , tol = 1e-4 , copy_X = True ,
1861
+ cv = None , verbose = False , n_jobs = 1 ):
1865
1862
super (MultiTaskLassoCV , self ).__init__ (
1866
1863
eps = eps , n_alphas = n_alphas , alphas = alphas ,
1867
1864
fit_intercept = fit_intercept , normalize = normalize ,
1868
- precompute = precompute , max_iter = max_iter , tol = tol , copy_X = copy_X ,
1865
+ max_iter = max_iter , tol = tol , copy_X = copy_X ,
1869
1866
cv = cv , verbose = verbose , n_jobs = n_jobs )
0 commit comments