|
7 | 7 | from numpy.random import random |
8 | 8 | import pandas |
9 | 9 | from sklearn.linear_model import LinearRegression |
| 10 | +from sklearn.datasets import make_regression |
| 11 | +from sklearn.tree import DecisionTreeRegressor |
10 | 12 | from pyquickhelper.pycode import ExtTestCase, ignore_warnings |
11 | 13 | from mlinsights.mlmodel import test_sklearn_pickle, test_sklearn_clone, test_sklearn_grid_search_cv |
12 | 14 | from mlinsights.mlmodel.piecewise_estimator import PiecewiseRegressor |
@@ -148,6 +150,23 @@ def test_piecewise_regressor_grid_search(self): |
148 | 150 | self.assertGreater(res['score'], 0) |
149 | 151 | self.assertLesser(res['score'], 1) |
150 | 152 |
|
| 153 | + def test_piecewise_regressor_issue(self): |
| 154 | + X, y = make_regression(10000, n_features=1, n_informative=1, # pylint: disable=W0632 |
| 155 | + n_targets=1) |
| 156 | + y = y.reshape((-1, 1)) |
| 157 | + model = PiecewiseRegressor( |
| 158 | + binner=DecisionTreeRegressor(min_samples_leaf=300)) |
| 159 | + model.fit(X, y) |
| 160 | + vvc = model.predict(X) |
| 161 | + self.assertEqual(vvc.shape, (X.shape[0], )) |
| 162 | + |
| 163 | + def test_piecewise_regressor_raise(self): |
| 164 | + X, y = make_regression(10000, n_features=2, n_informative=2, # pylint: disable=W0632 |
| 165 | + n_targets=2) |
| 166 | + model = PiecewiseRegressor( |
| 167 | + binner=DecisionTreeRegressor(min_samples_leaf=300)) |
| 168 | + self.assertRaise(lambda: model.fit(X, y), RuntimeError) |
| 169 | + |
151 | 170 |
|
152 | 171 | if __name__ == "__main__": |
153 | 172 | unittest.main() |
0 commit comments