|
19 | 19 | from sklearn.metrics import f1_score |
20 | 20 | from sklearn.metrics.pairwise import rbf_kernel |
21 | 21 | from sklearn.utils import check_random_state |
22 | | -from sklearn.utils._testing import assert_warns |
23 | 22 | from sklearn.utils._testing import assert_raise_message |
24 | 23 | from sklearn.utils._testing import ignore_warnings |
25 | | -from sklearn.utils._testing import assert_no_warnings |
26 | 24 | from sklearn.utils.validation import _num_samples |
27 | 25 | from sklearn.utils import shuffle |
28 | 26 | from sklearn.exceptions import ConvergenceWarning |
@@ -979,7 +977,12 @@ def test_svc_bad_kernel(): |
979 | 977 | def test_timeout(): |
980 | 978 | a = svm.SVC(kernel=lambda x, y: np.dot(x, y.T), probability=True, |
981 | 979 | random_state=0, max_iter=1) |
982 | | - assert_warns(ConvergenceWarning, a.fit, np.array(X), Y) |
| 980 | + warning_msg = ( |
| 981 | + r'Solver terminated early \(max_iter=1\). Consider pre-processing ' |
| 982 | + r'your data with StandardScaler or MinMaxScaler.' |
| 983 | + ) |
| 984 | + with pytest.warns(ConvergenceWarning, match=warning_msg): |
| 985 | + a.fit(np.array(X), Y) |
983 | 986 |
|
984 | 987 |
|
985 | 988 | def test_unfitted(): |
@@ -1008,11 +1011,16 @@ def test_linear_svm_convergence_warnings(): |
1008 | 1011 | # Test that warnings are raised if model does not converge |
1009 | 1012 |
|
1010 | 1013 | lsvc = svm.LinearSVC(random_state=0, max_iter=2) |
1011 | | - assert_warns(ConvergenceWarning, lsvc.fit, X, Y) |
| 1014 | + warning_msg = ( |
| 1015 | + "Liblinear failed to converge, increase the number of iterations." |
| 1016 | + ) |
| 1017 | + with pytest.warns(ConvergenceWarning, match=warning_msg): |
| 1018 | + lsvc.fit(X, Y) |
1012 | 1019 | assert lsvc.n_iter_ == 2 |
1013 | 1020 |
|
1014 | 1021 | lsvr = svm.LinearSVR(random_state=0, max_iter=2) |
1015 | | - assert_warns(ConvergenceWarning, lsvr.fit, iris.data, iris.target) |
| 1022 | + with pytest.warns(ConvergenceWarning, match=warning_msg): |
| 1023 | + lsvr.fit(iris.data, iris.target) |
1016 | 1024 | assert lsvr.n_iter_ == 2 |
1017 | 1025 |
|
1018 | 1026 |
|
@@ -1160,21 +1168,30 @@ def test_svc_ovr_tie_breaking(SVCClass): |
1160 | 1168 | def test_gamma_auto(): |
1161 | 1169 | X, y = [[0.0, 1.2], [1.0, 1.3]], [0, 1] |
1162 | 1170 |
|
1163 | | - assert_no_warnings(svm.SVC(kernel='linear').fit, X, y) |
1164 | | - assert_no_warnings(svm.SVC(kernel='precomputed').fit, X, y) |
| 1171 | + with pytest.warns(None) as record: |
| 1172 | + svm.SVC(kernel='linear').fit(X, y) |
| 1173 | + assert not len(record) |
| 1174 | + |
| 1175 | + with pytest.warns(None) as record: |
| 1176 | + svm.SVC(kernel='precomputed').fit(X, y) |
| 1177 | + assert not len(record) |
1165 | 1178 |
|
1166 | 1179 |
|
1167 | 1180 | def test_gamma_scale(): |
1168 | 1181 | X, y = [[0.], [1.]], [0, 1] |
1169 | 1182 |
|
1170 | 1183 | clf = svm.SVC() |
1171 | | - assert_no_warnings(clf.fit, X, y) |
| 1184 | + with pytest.warns(None) as record: |
| 1185 | + clf.fit(X, y) |
| 1186 | + assert not len(record) |
1172 | 1187 | assert_almost_equal(clf._gamma, 4) |
1173 | 1188 |
|
1174 | 1189 | # X_var ~= 1 shouldn't raise warning, for when |
1175 | 1190 | # gamma is not explicitly set. |
1176 | 1191 | X, y = [[1, 2], [3, 2 * np.sqrt(6) / 3 + 2]], [0, 1] |
1177 | | - assert_no_warnings(clf.fit, X, y) |
| 1192 | + with pytest.warns(None) as record: |
| 1193 | + clf.fit(X, y) |
| 1194 | + assert not len(record) |
1178 | 1195 |
|
1179 | 1196 |
|
1180 | 1197 | @pytest.mark.parametrize( |
|
0 commit comments