8000 joblib 0.12.1 · scikit-learn/scikit-learn@778c2ff · GitHub
[go: up one dir, main page]

Skip to content

Commit 778c2ff

Browse files
committed
joblib 0.12.1
1 parent adddf00 commit 778c2ff

File tree

106 files changed

+8780
-1686
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

106 files changed

+8780
-1686
lines changed

build_tools/travis/install.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,8 @@ elif [[ "$DISTRIB" == "scipy-dev" ]]; then
100100
fi
101101

102102
if [[ "$COVERAGE" == "true" ]]; then
103-
pip install coverage codecov
103+
pip install hg+http://bitbucket.org/ogrisel/coverage.py/@fix-thread-safety#egg=coverage
104+
pip install codecov
104105
fi
105106

106107
if [[ "$TEST_DOCSTRINGS" == "true" ]]; then

doc/modules/compose.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,7 @@ and ``value`` is an estimator object::
342342
>>> estimators = [('linear_pca', PCA()), ('kernel_pca', KernelPCA())]
343343
>>> combined = FeatureUnion(estimators)
344344
>>> combined # doctest: +NORMALIZE_WHITESPACE, +ELLIPSIS
345-
FeatureUnion(n_jobs=1,
345+
FeatureUnion(n_jobs=None,
346346
transformer_list=[('linear_pca', PCA(copy=True,...)),
347347
('kernel_pca', KernelPCA(alpha=1.0,...))],
348348
transformer_weights=None)
@@ -357,7 +357,7 @@ and ignored by setting to ``None``::
357357

358358
>>> combined.set_params(kernel_pca=None)
359359
... # doctest: +NORMALIZE_WHITESPACE, +ELLIPSIS
360-
FeatureUnion(n_jobs=1,
360+
FeatureUnion(n_jobs=None,
361361
transformer_list=[('linear_pca', PCA(copy=True,...)),
362362
('kernel_pca', None)],
363363
transformer_weights=None)
@@ -423,7 +423,7 @@ By default, the remaining rating columns are ignored (``remainder='drop'``)::
423423
... remainder='drop')
424424

425425
>>> column_trans.fit(X) # doctest: +NORMALIZE_WHITESPACE +ELLIPSIS
426-
ColumnTransformer(n_jobs=1, remainder='drop', transformer_weights=None,
426+
ColumnTransformer(n_jobs=None, remainder='drop', transformer_weights=None,
427427
transformers=...)
428428

429429
>>> column_trans.get_feature_names()
@@ -495,7 +495,7 @@ above example would be::
495495
... ('city', CountVectorizer(analyzer=lambda x: [x])),
496496
... ('title', CountVectorizer()))
497497
>>> column_trans # doctest: +NORMALIZE_WHITESPACE +ELLIPSIS
498-
ColumnTransformer(n_jobs=1, remainder='drop', transformer_weights=None,
498+
ColumnTransformer(n_jobs=None, remainder='drop', transformer_weights=None,
499499
transformers=[('countvectorizer-1', ...)
500500

501501
.. topic:: Examples:

doc/modules/kernel_approximation.rst

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,9 @@ a linear algorithm, for example a linear SVM::
6464
SGDClassifier(alpha=0.0001, average=False, class_weight=None,
6565
early_stopping=False, epsilon=0.1, eta0=0.0, fit_intercept=True,
6666
l1_ratio=0.15, learning_rate='optimal', loss='hinge', max_iter=5,
67-
n_iter=None, n_iter_no_change=5, n_jobs=1, penalty='l2',
67+
n_iter=None, n_iter_no_change=5, n_jobs=None, penalty='l2',
6868
power_t=0.5, random_state=None, shuffle=True, tol=None,
6969
validation_fraction=0.1, verbose=0, warm_start=False)
70-
7170
>>> clf.score(X_features, y)
7271
1.0
7372

doc/modules/linear_model.rst

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,9 @@ and will store the coefficients :math:`w` of the linear model in its
4545
>>> from sklearn import linear_model
4646
>>> reg = linear_model.LinearRegression()
4747
>>> reg.fit ([[0, 0], [1, 1], [2, 2]], [0, 1, 2])
48-
LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)
48+
... # doctest: +NORMALIZE_WHITESPACE
49+
LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,
50+
normalize=False)
4951
>>> reg.coef_
5052
array([0.5, 0.5])
5153

doc/modules/sgd.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ for the training samples::
6464
SGDClassifier(alpha=0.0001, average=False, class_weight=None,
6565
early_stopping=False, epsilon=0.1, eta0=0.0, fit_intercept=True,
6666
l1_ratio=0.15, learning_rate='optimal', loss='hinge', max_iter=5,
67-
n_iter=None, n_iter_no_change=5, n_jobs=1, penalty='l2',
67+
n_iter=None, n_iter_no_change=5, n_jobs=None, penalty='l2',
6868
power_t=0.5, random_state=None, shuffle=True, tol=None,
6969
validation_fraction=0.1, verbose=0, warm_start=False)
7070

doc/tutorial/statistical_inference/model_selection.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,7 @@ parameter automatically by cross-validation::
269269
>>> y_diabetes = diabetes.target
270270
>>> lasso.fit(X_diabetes, y_diabetes)
271271
LassoCV(alphas=None, copy_X=True, cv=3, eps=0.001, fit_intercept=True,
272-
max_iter=1000, n_alphas=100, n_jobs=1, normalize=False, positive=False,
272+
max_iter=1000, n_alphas=100, n_jobs=None, normalize=False, positive=False,
273273
precompute='auto', random_state=None, selection='cyclic', tol=0.0001,
274274
verbose=False)
275275
>>> # The estimator chose automatically its lambda:

doc/tutorial/statistical_inference/supervised_learning.rst

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ Scikit-learn documentation for more information about this type of classifier.)
9595
>>> knn = KNeighborsClassifier()
9696
>>> knn.fit(iris_X_train, iris_y_train) # doctest: +NORMALIZE_WHITESPACE
9797
KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
98-
metric_params=None, n_jobs=1, n_neighbors=5, p=2,
98+
metric_params=None, n_jobs=None, n_neighbors=5, p=2,
9999
weights='uniform')
100100
>>> knn.predict(iris_X_test)
101101
array([1, 2, 1, 0, 0, 0, 2, 1, 2, 0])
@@ -176,13 +176,16 @@ Linear models: :math:`y = X\beta + \epsilon`
176176
>>> from sklearn import linear_model
177177
>>> regr = linear_model.LinearRegression()
178178
>>> regr.fit(diabetes_X_train, diabetes_y_train)
179-
LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)
179+
... # doctest: +NORMALIZE_WHITESPACE
180+
LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,
181+
normalize=False)
180182
>>> print(regr.coef_)
181183
[ 0.30349955 -237.63931533 510.53060544 327.73698041 -814.13170937
182184
492.81458798 102.84845219 184.60648906 743.51961675 76.09517222]
183185

184186
>>> # The mean square error
185-
>>> np.mean((regr.predict(diabetes_X_test)-diabetes_y_test)**2)# doctest: +ELLIPSIS
187+
>>> np.mean((regr.predict(diabetes_X_test)-diabetes_y_test)**2)
188+
... # doctest: +ELLIPSIS
186189
2004.56760268...
187190

188191
>>> # Explained variance score: 1 is perfect prediction
@@ -257,8 +260,11 @@ diabetes dataset rather than our synthetic data::
257260
>>> from __future__ import print_function
258261
>>> print([regr.set_params(alpha=alpha
259262
... ).fit(diabetes_X_train, diabetes_y_train,
260-
... ).score(diabetes_X_test, diabetes_y_test) for alpha in alphas]) # doctest: +ELLIPSIS
261-
[0.5851110683883..., 0.5852073015444..., 0.5854677540698..., 0.5855512036503..., 0.5830717085554..., 0.57058999437...]
263+
... ).score(diabetes_X_test, diabetes_y_test)
264+
... for alpha in alphas])
265+
... # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE
266+
[0.5851110683883..., 0.5852073015444..., 0.5854677540698...,
267+
0.5855512036503..., 0.5830717085554..., 0.57058999437...]
262268

263269

264270
.. note::
@@ -372,7 +378,7 @@ function or **logistic** function:
372378
>>> logistic.fit(iris_X_train, iris_y_train)
373379
LogisticRegression(C=100000.0, class_weight=None, dual=False,
374380
fit_intercept=True, intercept_scaling=1, max_iter=100,
375-
multi_class='ovr', n_jobs=1, penalty='l2', random_state=None,
381+
multi_class='ovr', n_jobs=None, penalty='l2', random_state=None,
376382
solver='liblinear', tol=0.0001, verbose=0, warm_start=False)
377383

378384
This is known as :class:`LogisticRegression`.

sklearn/cluster/bicluster.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ class BaseSpectral(six.with_metaclass(ABCMeta, BaseEstimator,
9393
@abstractmethod
9494
def __init__(self, n_clusters=3, svd_method="randomized",
9595
n_svd_vecs=None, mini_batch=False, init="k-means++",
96-
n_init=10, n_jobs=1, random_state=None):
96+
n_init=10, n_jobs=None, random_state=None):
9797
self.n_clusters = n_clusters
9898
self.svd_method = svd_method
9999
self.n_svd_vecs = n_svd_vecs
@@ -268,7 +268,7 @@ class SpectralCoclustering(BaseSpectral):
268268
"""
269269
def __init__(self, n_clusters=3, svd_method='randomized',
270270
n_svd_vecs=None, mini_batch=False, init='k-means++',
271-
n_init=10, n_jobs=1, random_state=None):
271+
n_init=10, n_jobs=None, random_state=None):
272272
super(SpectralCoclustering, self).__init__(n_clusters,
273273
svd_method,
274274
n_svd_vecs,
@@ -400,7 +400,7 @@ class SpectralBiclustering(BaseSpectral):
400400
def __init__(self, n_clusters=3, method='bistochastic',
401401
n_components=6, n_best=3, svd_method='randomized',
402402
n_svd_vecs=None, mini_batch=False, init='k-means++',
403-
n_init=10, n_jobs=1, random_state=None):
403+
n_init=10, n_jobs=None, random_state=None):
404404
super(SpectralBiclustering, self).__init__(n_clusters,
405405
svd_method,
406406
n_svd_vecs,

sklearn/cluster/dbscan_.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020

2121

2222
def dbscan(X, eps=0.5, min_samples=5, metric='minkowski', metric_params=None,
23-
algorithm='auto', leaf_size=30, p=2, sample_weight=None, n_jobs=1):
23+
algorithm='auto', leaf_size=30, p=2, sample_weight=None,
24+
n_jobs=None):
2425
"""Perform DBSCAN clustering from vector array or distance matrix.
2526
2627
Read more in the :ref:`User Guide <dbscan>`.
@@ -283,7 +284,7 @@ class DBSCAN(BaseEstimator, ClusterMixin):
283284

284285
def __init__(self, eps=0.5, min_samples=5, metric='euclidean',
285286
metric_params=None, algorithm='auto', leaf_size=30, p=None,
286-
n_jobs=1):
287+
n_jobs=None):
287288
self.eps = eps
288289
self.min_samples = min_samples
289290
self.metric = metric

sklearn/cluster/k_means_.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,13 @@
2525
from ..utils.sparsefuncs import mean_variance_axis
2626
from ..utils.validation import _num_samples
2727
from ..utils import check_array
28-
from ..utils import check_random_state
2928
from ..utils import gen_batches
29+
from ..utils import check_random_state
3030
from ..utils.validation import check_is_fitted
3131
from ..utils.validation import FLOAT_DTYPES
3232
from ..utils import Parallel
3333
from ..utils import delayed
34+
from ..utils import effective_n_jobs
3435
from ..externals.six import string_types
3536
from ..exceptions import ConvergenceWarning
3637
from . import _k_means
@@ -184,8 +185,8 @@ def _check_sample_weight(X, sample_weight):
184185

185186
def k_means(X, n_clusters, sample_weight=None, init='k-means++',
186187
precompute_distances='auto', n_init=10, max_iter=300,
187-
verbose=False, tol=1e-4, random_state=None, copy_x=True, n_jobs=1,
188-
algorithm="auto", return_n_iter=False):
188+
verbose=False, tol=1e-4, random_state=None, copy_x=True,
189+
n_jobs=None, algorithm="auto", return_n_iter=False):
189190
"""K-means clustering algorithm.
190191
191192
Read more in the :ref:`User Guide <k_means>`.
@@ -368,7 +369,7 @@ def k_means(X, n_clusters, sample_weight=None, init='k-means++',
368369
else:
369370
raise ValueError("Algorithm must be 'auto', 'full' or 'elkan', got"
370371
" %s" % str(algorithm))
371-
if n_jobs == 1:
372+
if effective_n_jobs(n_jobs):
372373
# For a single thread, less memory is needed if we just store one set
373374
# of the best results (as opposed to one set per run per thread).
374375
for it in range(n_init):
@@ -913,7 +914,7 @@ class KMeans(BaseEstimator, ClusterMixin, TransformerMixin):
913914
def __init__(self, n_clusters=8, init='k-means++', n_init=10,
914915
max_iter=300, tol=1e-4, precompute_distances='auto',
915916
verbose=0, random_state=None, copy_x=True,
916-
n_jobs=1, algorithm='auto'):
917+
n_jobs=None, algorithm='auto'):
917918

918919
self.n_clusters = n_clusters
919920
self.init = init

sklearn/cluster/mean_shift_.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929

3030

3131
def estimate_bandwidth(X, quantile=0.3, n_samples=None, random_state=0,
32-
n_jobs=1):
32+
n_jobs=None):
3333
"""Estimate the bandwidth to use with the mean-shift algorithm.
3434
3535
That this function takes time at least quadratic in n_samples. For large
@@ -107,7 +107,7 @@ def _mean_shift_single_seed(my_mean, X, nbrs, max_iter):
107107

108108
def mean_shift(X, bandwidth=None, seeds=None, bin_seeding=False,
109109
min_bin_freq=1, cluster_all=True, max_iter=300,
110-
n_jobs=1):
110+
n_jobs=None):
111111
"""Perform mean shift clustering of data using a flat kernel.
112112
113113
Read more in the :ref:`User Guide <mean_shift>`.
@@ -377,7 +377,7 @@ class MeanShift(BaseEstimator, ClusterMixin):
377377
378378
"""
379379
def __init__(self, bandwidth=None, seeds=None, bin_seeding=False,
380-
min_bin_freq=1, cluster_all=True, n_jobs=1):
380+
min_bin_freq=1, cluster_all=True, n_jobs=None):
381381
self.bandwidth = bandwidth
382382
self.seeds = seeds
383383
self.bin_seeding = bin_seeding

sklearn/cluster/optics_.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ def optics(X, min_samples=5, max_bound=np.inf, metric='euclidean',
2626
rejection_ratio=.7, similarity_threshold=0.4,
2727
significant_min=.003, min_cluster_size_ratio=.005,
2828
min_maxima_ratio=0.001, algorithm='ball_tree',
29-
leaf_size=30, n_jobs=1):
29+
leaf_size=30, n_jobs=None):
3030
"""Perform OPTICS clustering from vector array
3131
3232
OPTICS: Ordering Points To Identify the Clustering Structure
@@ -285,7 +285,7 @@ def __init__(self, min_samples=5, max_bound=np.inf, metric='euclidean',
285285
rejection_ratio=.7, similarity_threshold=0.4,
286286
significant_min=.003, min_cluster_size_ratio=.005,
287287
min_maxima_ratio=0.001, algorithm='ball_tree',
288-
leaf_size=30, n_jobs=1):
288+
leaf_size=30, n_jobs=None):
289289

290290
self.max_bound = max_bound
291291
self.min_samples = min_samples
@@ -394,7 +394,7 @@ def _set_reach_dist(self, point_index, X, nbrs):
394394
# Keep n_jobs = 1 in the following lines...please
395395
if len(unproc) > 0:
396396
dists = pairwise_distances(P, np.take(X, unproc, axis=0),
397-
self.metric, n_jobs=1).ravel()
397+
self.metric, n_jobs=None).ravel()
398398

399399
rdists = np.maximum(dists, self.core_distances_[point_index])
400400
new_reach = np.minimum(np.take(self.reachability_, unproc), rdists)

sklearn/cluster/spectral.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -409,7 +409,7 @@ class SpectralClustering(BaseEstimator, ClusterMixin):
409409
def __init__(self, n_clusters=8, eigen_solver=None, random_state=None,
410410
n_init=10, gamma=1., affinity='rbf', n_neighbors=10,
411411
eigen_tol=0.0, assign_labels='kmeans', degree=3, coef0=1,
412-
kernel_params=None, n_jobs=1):
412+
kernel_params=None, n_jobs=None):
413413
self.n_clusters = n_clusters
414414
self.eigen_solver = eigen_solver
415415
self.random_state = random_state

sklearn/compose/_column_transformer.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ class ColumnTransformer(_BaseComposition, TransformerMixin):
141141
142142
"""
143143

144-
def __init__(self, transformers, remainder='drop', n_jobs=1,
144+
def __init__(self, transformers, remainder='drop', n_jobs=None,
145145
transformer_weights=None):
146146
self.transformers = transformers
147147
self.remainder = remainder
@@ -658,7 +658,7 @@ def make_column_transformer(*transformers, **kwargs):
658658
... (['numerical_column'], StandardScaler()),
659659
... (['categorical_column'], OneHotEncoder()))
660660
... # doctest: +NORMALIZE_WHITESPACE +ELLIPSIS
661-
ColumnTransformer(n_jobs=1, remainder='drop', transformer_weights=None,
661+
ColumnTransformer(n_jobs=None, remainder='drop', transformer_weights=None,
662662
transformers=[('standardscaler',
663663
StandardScaler(...),
664664
['numerical_column']),
@@ -667,7 +667,7 @@ def make_column_transformer(*transformers, **kwargs):
667667
['categorical_column'])])
668668
669669
"""
670-
n_jobs = kwargs.pop('n_jobs', 1)
670+
n_jobs = kwargs.pop('n_jobs', None)
671671
remainder = kwargs.pop('remainder', 'drop')
672672
if kwargs:
673673
raise TypeError('Unknown keyword arguments: "{}"'

sklearn/compose/tests/test_column_transformer.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,7 @@ def test_column_transformer_get_set_params():
404404
ct = ColumnTransformer([('trans1', StandardScaler(), [0]),
405405
('trans2', StandardScaler(), [1])])
406406

407-
exp = {'n_jobs': 1,
407+
exp = {'n_jobs': None,
408408
'remainder': 'drop',
409409
'trans1': ct.transformers[0][1],
410410
'trans1__copy': True,
@@ -423,7 +423,7 @@ def test_column_transformer_get_set_params():
423423
assert_false(ct.get_params()['trans1__with_mean'])
424424

425425
ct.set_params(trans1='passthrough')
426-
exp = {'n_jobs': 1,
426+
exp = {'n_jobs': None,
427427
'remainder': 'drop',
428428
'trans1': 'passthrough',
429429
'trans2': ct.transformers[1][1],
@@ -606,6 +606,7 @@ def test_column_transformer_remainder():
606606
ct = make_column_transformer(([0], Trans()))
607607
assert ct.remainder == 'drop'
608608

609+
609610
@pytest.mark.parametrize("key", [[0], np.array([0]), slice(0, 1),
610611
np.array([True, False])])
611612
def test_column_transformer_remainder_numpy(key):
@@ -748,7 +749,7 @@ def test_column_transformer_get_set_params_with_remainder():
748749
ct = ColumnTransformer([('trans1', StandardScaler(), [0])],
749750
remainder=StandardScaler())
750751

751-
exp = {'n_jobs': 1,
752+
exp = {'n_jobs': None,
752753
'remainder': ct.remainder,
753754
'remainder__copy': True,
754755
'remainder__with_mean': True,
@@ -766,7 +767,7 @@ def test_column_transformer_get_set_params_with_remainder():
766767
assert not ct.get_params()['remainder__with_std']
767768

768769
ct.set_params(trans1='passthrough')
769-
exp = {'n_jobs': 1,
770+
exp = {'n_jobs': None,
770771
'remainder': ct.remainder,
771772
'remainder__copy': True,
772773
'remainder__with_mean': True,

sklearn/covariance/graph_lasso_.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -571,7 +571,7 @@ class GraphicalLassoCV(GraphicalLasso):
571571
"""
572572

573573
def __init__(self, alphas=4, n_refinements=4, cv='warn', tol=1e-4,
574-
enet_tol=1e-4, max_iter=100, mode='cd', n_jobs=1,
574+
enet_tol=1e-4, max_iter=100, mode='cd', n_jobs=None,
575575
verbose=False, assume_centered=False):
576576
super(GraphicalLassoCV, self).__init__(
577577
mode=mode, tol=tol, verbose=verbose, enet_tol=enet_tol,

0 commit comments

Comments
 (0)
0