Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit bfbc0bc

Browse files
authored
Merge pull request #7282 from asnt/fix-convergence-warnings
[MRG+2] Fix ConvergenceWarning's in tests
2 parents f7bdba2 + c5f19a4 commit bfbc0bc

File tree

4 files changed

+44
-24
lines changed

4 files changed

+44
-24
lines changed

sklearn/decomposition/tests/test_dict_learning.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
import numpy as np
2+
3+
from sklearn.exceptions import ConvergenceWarning
4+
25
from sklearn.utils import check_array
36

47
from sklearn.utils.testing import assert_array_almost_equal
@@ -66,9 +69,12 @@ def test_dict_learning_lassocd_readonly_data():
6669
n_components = 12
6770
with TempMemmap(X) as X_read_only:
6871
dico = DictionaryLearning(n_components, transform_algorithm='lasso_cd',
69-
transform_alpha=0.001, random_state=0, n_jobs=-1)
70-
code = dico.fit(X_read_only).transform(X_read_only)
71-
assert_array_almost_equal(np.dot(code, dico.components_), X_read_only, decimal=2)
72+
transform_alpha=0.001, random_state=0,
73+
n_jobs=-1)
74+
with ignore_warnings(category=ConvergenceWarning):
75+
code = dico.fit(X_read_only).transform(X_read_only)
76+
assert_array_almost_equal(np.dot(code, dico.components_), X_read_only,
77+
decimal=2)
7278

7379

7480
def test_dict_learning_nonzero_coefs():

sklearn/neural_network/tests/test_mlp.py

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
from sklearn.datasets import load_digits, load_boston
1616
from sklearn.datasets import make_regression, make_multilabel_classification
17+
from sklearn.exceptions import ConvergenceWarning
1718
from sklearn.externals.six.moves import cStringIO as StringIO
1819
from sklearn.metrics import roc_auc_score
1920
from sklearn.neural_network import MLPClassifier
@@ -22,7 +23,7 @@
2223
from sklearn.preprocessing import StandardScaler, MinMaxScaler
2324
from scipy.sparse import csr_matrix
2425
from sklearn.utils.testing import (assert_raises, assert_greater, assert_equal,
25-
assert_false)
26+
assert_false, ignore_warnings)
2627

2728

2829
np.seterr(all='warn')
@@ -60,7 +61,8 @@ def test_alpha():
6061

6162
for alpha in alpha_values:
6263
mlp = MLPClassifier(hidden_layer_sizes=10, alpha=alpha, random_state=1)
63-
mlp.fit(X, y)
64+
with ignore_warnings(category=ConvergenceWarning):
65+
mlp.fit(X, y)
6466
alpha_vectors.append(np.array([absolute_sum(mlp.coefs_[0]),
6567
absolute_sum(mlp.coefs_[1])]))
6668

@@ -262,17 +264,18 @@ def test_lbfgs_regression():
262264

263265

264266
def test_learning_rate_warmstart():
265-
# Tests that warm_start reuses past solution."""
267+
# Test that warm_start reuses past solution."""
266268
X = [[3, 2], [1, 6], [5, 6], [-2, -4]]
267269
y = [1, 1, 1, 0]
268270
for learning_rate in ["invscaling", "constant"]:
269271
mlp = MLPClassifier(algorithm='sgd', hidden_layer_sizes=4,
270272
learning_rate=learning_rate, max_iter=1,
271273
power_t=0.25, warm_start=True)
272-
mlp.fit(X, y)
273-
prev_eta = mlp._optimizer.learning_rate
274-
mlp.fit(X, y)
275-
post_eta = mlp._optimizer.learning_rate
274+
with ignore_warnings(category=ConvergenceWarning):
275+
mlp.fit(X, y)
276+
prev_eta = mlp._optimizer.learning_rate
277+
mlp.fit(X, y)
278+
post_eta = mlp._optimizer.learning_rate
276279

277280
if learning_rate == 'constant':
278281
assert_equal(prev_eta, post_eta)
@@ -321,15 +324,16 @@ def test_partial_fit_classes_error():
321324

322325
def test_partial_fit_classification():
323326
# Test partial_fit on classification.
324-
# `partial_fit` should yield the same results as 'fit'for binary and
327+
# `partial_fit` should yield the same results as 'fit' for binary and
325328
# multi-class classification.
326329
for X, y in classification_datasets:
327330
X = X
328331
y = y
329332
mlp = MLPClassifier(algorithm='sgd', max_iter=100, random_state=1,
330333
tol=0, alpha=1e-5, learning_rate_init=0.2)
331334

332-
mlp.fit(X, y)
335+
with ignore_warnings(category=ConvergenceWarning):
336+
mlp.fit(X, y)
333337
pred1 = mlp.predict(X)
334338
mlp = MLPClassifier(algorithm='sgd', random_state=1, alpha=1e-5,
335339
learning_rate_init=0.2)
@@ -405,7 +409,8 @@ def test_predict_proba_binary():
405409
y = y_digits_binary[:50]
406410

407411
clf = MLPClassifier(hidden_layer_sizes=5)
408-
clf.fit(X, y)
412+
with ignore_warnings(category=ConvergenceWarning):
413+
clf.fit(X, y)
409414
y_proba = clf.predict_proba(X)
410415
y_log_proba = clf.predict_log_proba(X)
411416

@@ -427,7 +432,8 @@ def test_predict_proba_multi():
427432
y = y_digits_multi[:10]
428433

429434
clf = MLPClassifier(hidden_layer_sizes=5)
430-
clf.fit(X, y)
435+
with ignore_warnings(category=ConvergenceWarning):
436+
clf.fit(X, y)
431437
y_proba = clf.predict_proba(X)
432438
y_log_proba = clf.predict_log_proba(X)
433439

@@ -447,10 +453,11 @@ def test_sparse_matrices():
447453
y = y_digits_binary[:50]
448454
X_sparse = csr_matrix(X)
449455
mlp = MLPClassifier(random_state=1, hidden_layer_sizes=15)
450-
mlp.fit(X, y)
451-
pred1 = mlp.decision_function(X)
452-
mlp.fit(X_sparse, y)
453-
pred2 = mlp.decision_function(X_sparse)
456+
with ignore_warnings(category=ConvergenceWarning):
457+
mlp.fit(X, y)
458+
pred1 = mlp.decision_function(X)
459+
mlp.fit(X_sparse, y)
460+
pred2 = mlp.decision_function(X_sparse)
454461
assert_almost_equal(pred1, pred2)
455462
pred1 = mlp.predict(X)
456463
pred2 = mlp.predict(X_sparse)
@@ -476,7 +483,8 @@ def test_verbose_sgd():
476483
old_stdout = sys.stdout
477484
sys.stdout = output = StringIO()
478485

479-
clf.fit(X, y)
486+
with ignore_warnings(category=ConvergenceWarning):
487+
clf.fit(X, y)
480488
clf.partial_fit(X, y)
481489

482490
sys.stdout = old_stdout

sklearn/svm/tests/test_sparse.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@
1010
from sklearn.svm.tests import test_svm
1111
from sklearn.exceptions import ConvergenceWarning
1212
from sklearn.utils.extmath import safe_sparse_dot
13-
from sklearn.utils.testing import assert_warns, assert_raise_message
13+
from sklearn.utils.testing import (assert_warns, assert_raise_message,
14+
ignore_warnings)
1415

1516
# test sample 1
1617
X = np.array([[-2, -1], [-1, -1], [-1, -2], [1, 1], [1, 2], [2, 1]])
@@ -334,7 +335,9 @@ def test_timeout():
334335

335336
def test_consistent_proba():
336337
a = svm.SVC(probability=True, max_iter=1, random_state=0)
337-
proba_1 = a.fit(X, Y).predict_proba(X)
338+
with ignore_warnings(category=ConvergenceWarning):
339+
proba_1 = a.fit(X, Y).predict_proba(X)
338340
a = svm.SVC(probability=True, max_iter=1, random_state=0)
339-
proba_2 = a.fit(X, Y).predict_proba(X)
341+
with ignore_warnings(category=ConvergenceWarning):
342+
proba_2 = a.fit(X, Y).predict_proba(X)
340343
assert_array_almost_equal(proba_1, proba_2)

sklearn/tests/test_cross_validation.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from scipy.sparse import csr_matrix
88
from scipy import stats
99

10+
from sklearn.exceptions import ConvergenceWarning
1011
from sklearn.utils.testing import assert_true
1112
from sklearn.utils.testing import assert_false
1213
from sklearn.utils.testing import assert_equal
@@ -1167,14 +1168,16 @@ def test_cross_val_predict_input_types():
11671168
assert_equal(predictions.shape, (10,))
11681169

11691170
# test with multioutput y
1170-
predictions = cval.cross_val_predict(clf, X_sparse, X)
1171+
with ignore_warnings(category=ConvergenceWarning):
1172+
predictions = cval.cross_val_predict(clf, X_sparse, X)
11711173
assert_equal(predictions.shape, (10, 2))
11721174

11731175
predictions = cval.cross_val_predict(clf, X_sparse, y)
11741176
assert_array_equal(predictions.shape, (10,))
11751177

11761178
# test with multioutput y
1177-
predictions = cval.cross_val_predict(clf, X_sparse, X)
1179+
with ignore_warnings(category=ConvergenceWarning):
1180+
predictions = cval.cross_val_predict(clf, X_sparse, X)
11781181
assert_array_equal(predictions.shape, (10, 2))
11791182

11801183
# test with X and y as list

0 commit comments

Comments
 (0)