Skip to content

Commit 7bd00bb

Browse files
authored
Merge pull request #340 from automl/FIX#266_regression
Fix#266 regression
2 parents ea081cf + 322a3a1 commit 7bd00bb

File tree

14 files changed

+373
-240
lines changed

14 files changed

+373
-240
lines changed

autosklearn/pipeline/components/regression/ridge_regression.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ def fit(self, X, Y):
2222
fit_intercept=self.fit_intercept,
2323
tol=self.tol,
2424
copy_X=False,
25-
normalize=False)
25+
normalize=False,
26+
random_state=self.random_state)
2627
self.estimator.fit(X, Y)
2728
return self
2829

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,24 @@
1-
import unittest
1+
import sklearn.ensemble
22

33
from autosklearn.pipeline.components.regression.adaboost import \
44
AdaboostRegressor
5-
from autosklearn.pipeline.util import _test_regressor
5+
from .test_base import BaseRegressionComponentTest
66

7-
import sklearn.metrics
87

8+
class AdaBoostComponentTest(BaseRegressionComponentTest):
99

10-
class AdaBoostComponentTest(unittest.TestCase):
11-
def test_default_configuration(self):
12-
for i in range(2):
13-
predictions, targets = \
14-
_test_regressor(AdaboostRegressor, dataset='boston')
15-
self.assertAlmostEqual(0.60525743737887405,
16-
sklearn.metrics.r2_score(targets,
17-
predictions))
10+
__test__ = True
1811

19-
def test_default_configuration_sparse(self):
20-
for i in range(2):
21-
predictions, targets = \
22-
_test_regressor(AdaboostRegressor, sparse=True, dataset='boston')
23-
self.assertAlmostEqual(0.22111559712318207,
24-
sklearn.metrics.r2_score(targets,
25-
predictions))
12+
res = dict()
13+
res["default_boston"] = 0.60525743737887405
14+
res["default_boston_iterative"] = None
15+
res["default_boston_sparse"] = 0.22111559712318207
16+
res["default_boston_iterative_sparse"] = None
17+
res["default_diabetes"] = 0.25129853514492517
18+
res["default_diabetes_iterative"] = None
19+
res["default_diabetes_sparse"] = 0.090755670764629537
20+
res["default_diabetes_iterative_sparse"] = None
21+
22+
sk_mod = sklearn.ensemble.AdaBoostRegressor
23+
24+
module = AdaboostRegressor
Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,24 @@
1-
import unittest
1+
import sklearn.linear_model
22

33
from autosklearn.pipeline.components.regression.ard_regression import \
44
ARDRegression
5-
from autosklearn.pipeline.util import _test_regressor
5+
from .test_base import BaseRegressionComponentTest
66

7-
import sklearn.metrics
87

8+
class ARDRegressionComponentTest(BaseRegressionComponentTest):
99

10-
class ARDRegressionComponentTest(unittest.TestCase):
11-
def test_default_configuration(self):
12-
for i in range(2):
13-
predictions, targets = \
14-
_test_regressor(ARDRegression, dataset='boston')
15-
self.assertAlmostEqual(0.70316694175513961,
16-
sklearn.metrics.r2_score(targets,
17-
predictions))
10+
__test__ = True
11+
12+
res = dict()
13+
res["default_boston"] = 0.70316694175513961
14+
res["default_boston_iterative"] = None
15+
res["default_boston_sparse"] = None
16+
res["default_boston_iterative_sparse"] = None
17+
res["default_diabetes"] = 0.4172236487551515
18+
res["default_diabetes_iterative"] = None
19+
res["default_diabetes_sparse"] = None
20+
res["default_diabetes_iterative_sparse"] = None
21+
22+
sk_mod = sklearn.linear_model.ARDRegression
23+
24+
module = ARDRegression
Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
import unittest
2+
3+
from autosklearn.pipeline.util import _test_regressor, \
4+
_test_regressor_iterative_fit
5+
6+
from autosklearn.pipeline.constants import *
7+
8+
import sklearn.metrics
9+
10+
11+
class BaseRegressionComponentTest(unittest.TestCase):
12+
13+
res = None
14+
15+
module = None
16+
sk_module = None
17+
18+
# Magic command to not run tests on base class
19+
__test__ = False
20+
21+
def test_default_boston(self):
22+
for i in range(2):
23+
predictions, targets = \
24+
_test_regressor(dataset="boston",
25+
Regressor=self.module)
26+
27+
if "default_boston_le_ge" in self.res:
28+
# Special treatment for Gaussian Process Regression
29+
self.assertLessEqual(
30+
sklearn.metrics.r2_score(y_true=targets,
31+
y_pred=predictions),
32+
self.res["default_boston_le_ge"][0])
33+
self.assertGreaterEqual(
34+
sklearn.metrics.r2_score(y_true=targets,
35+
y_pred=predictions),
36+
self.res["default_boston_le_ge"][1])
37+
else:
38+
self.assertAlmostEqual(self.res["default_boston"],
39+
sklearn.metrics.r2_score(targets,
40+
predictions),
41+
places=self.res.get(
42+
"default_boston_places", 7))
43+
44+
def test_default_boston_iterative_fit(self):
45+
if not hasattr(self.module, 'iterative_fit'):
46+
return
47+
48+
for i in range(2):
49+
predictions, targets = \
50+
_test_regressor_iterative_fit(dataset="boston",
51+
Regressor=self.module)
52+
self.assertAlmostEqual(self.res["default_boston_iterative"],
53+
sklearn.metrics.r2_score(targets,
54+
predictions),
55+
places=self.res.get(
56+
"default_boston_iterative_places", 7))
57+
58+
def test_default_boston_iterative_sparse_fit(self):
59+
if not hasattr(self.module, 'iterative_fit'):
60+
return
61+
if SPARSE not in self.module.get_properties()["input"]:
62+
return
63+
64+
for i in range(2):
65+
predictions, targets = \
66+
_test_regressor_iterative_fit(dataset="boston",
67+
Regressor=self.module,
68+
sparse=True)
69+
self.assertAlmostEqual(self.res["default_boston_iterative_sparse"],
70+
sklearn.metrics.r2_score(targets,
71+
predictions),
72+
places=self.res.get(
73+
"default_boston_iterative_sparse_places", 7))
74+
75+
def test_default_boston_sparse(self):
76+
if SPARSE not in self.module.get_properties()["input"]:
77+
return
78+
79+
for i in range(2):
80+
predictions, targets = \
81+
_test_regressor(dataset="boston",
82+
Regressor=self.module,
83+
sparse=True)
84+
self.assertAlmostEqual(self.res["default_boston_sparse"],
85+
sklearn.metrics.r2_score(targets,
86+
predictions),
87+
places=self.res.get(
88+
"default_boston_sparse_places", 7))
89+
90+
def test_default_diabetes(self):
91+
for i in range(2):
92+
predictions, targets = \
93+
_test_regressor(dataset="diabetes",
94+
Regressor=self.module)
95+
96+
self.assertAlmostEqual(self.res["default_diabetes"],
97+
sklearn.metrics.r2_score(targets,
98+
predictions),
99+
places=self.res.get(
100+
"default_diabetes_places", 7))
101+
102+
def test_default_diabetes_iterative_fit(self):
103+
if not hasattr(self.module, 'iterative_fit'):
104+
return
105+
106+
for i in range(2):
107+
predictions, targets = \
108+
_test_regressor_iterative_fit(dataset="diabetes",
109+
Regressor=self.module)
110+
self.assertAlmostEqual(self.res["default_diabetes_iterative"],
111+
sklearn.metrics.r2_score(targets,
112+
predictions),
113+
places=self.res.get(
114+
"default_diabetes_iterative_places", 7))
115+
116+
def test_default_diabetes_iterative_sparse_fit(self):
117+
if not hasattr(self.module, 'iterative_fit'):
118+
return
119+
if SPARSE not in self.module.get_properties()["input"]:
120+
return
121+
122+
for i in range(2):
123+
predictions, targets = \
124+
_test_regressor_iterative_fit(dataset="diabetes",
125+
Regressor=self.module,
126+
sparse=True)
127+
self.assertAlmostEqual(self.res["default_diabetes_iterative_sparse"],
128+
sklearn.metrics.r2_score(targets,
129+
predictions),
130+
places=self.res.get(
131+
"default_diabetes_iterative_sparse_places", 7))
132+
133+
def test_default_diabetes_sparse(self):
134+
if SPARSE not in self.module.get_properties()["input"]:
135+
return
136+
137+
for i in range(2):
138+
predictions, targets = \
139+
_test_regressor(dataset="diabetes",
140+
Regressor=self.module,
141+
sparse=True)
142+
self.assertAlmostEqual(self.res["default_diabetes_sparse"],
143+
sklearn.metrics.r2_score(targets,
144+
predictions),
145+
places=self.res.get(
146+
"default_diabetes_sparse_places", 7))
Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,24 @@
1-
import unittest
1+
import sklearn.tree
22

3-
from autosklearn.pipeline.components.regression.decision_tree import DecisionTree
4-
from autosklearn.pipeline.util import _test_regressor
3+
from autosklearn.pipeline.components.regression.decision_tree import \
4+
DecisionTree
5+
from .test_base import BaseRegressionComponentTest
56

6-
import sklearn.metrics
77

8+
class DecisionTreeComponentTest(BaseRegressionComponentTest):
89

9-
class DecisionTreetComponentTest(unittest.TestCase):
10-
def test_default_configuration(self):
11-
for i in range(2):
12-
predictions, targets = _test_regressor(DecisionTree,)
13-
self.assertAlmostEqual(0.1564592449511697,
14-
sklearn.metrics.r2_score(targets,
15-
predictions))
10+
__test__ = True
1611

17-
def test_default_configuration_sparse(self):
18-
for i in range(2):
19-
predictions, targets = _test_regressor(DecisionTree, sparse=True)
20-
self.assertAlmostEqual(-0.020818312539637507,
21-
sklearn.metrics.r2_score(targets,
22-
predictions))
12+
res = dict()
13+
res["default_boston"] = 0.35616796434879905
14+
res["default_boston_iterative"] = None
15+
res["default_boston_sparse"] = 0.18031669797027394
16+
res["default_boston_iterative_sparse"] = None
17+
res["default_diabetes"] = 0.1564592449511697
18+
res["default_diabetes_iterative"] = None
19+
res["default_diabetes_sparse"] = -0.020818312539637507
20+
res["default_diabetes_iterative_sparse"] = None
21+
22+
sk_mod = sklearn.tree.DecisionTreeRegressor
23+
24+
module = DecisionTree
Lines changed: 16 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,24 @@
1-
import unittest
1+
import sklearn.ensemble
22

33
from autosklearn.pipeline.components.regression.extra_trees import \
44
ExtraTreesRegressor
5-
from autosklearn.pipeline.util import _test_regressor, _test_regressor_iterative_fit
5+
from .test_base import BaseRegressionComponentTest
66

7-
import sklearn.metrics
87

8+
class ExtraTreesComponentTest(BaseRegressionComponentTest):
99

10-
class ExtraTreesComponentTest(unittest.TestCase):
11-
def test_default_configuration(self):
12-
for i in range(2):
13-
predictions, targets = \
14-
_test_regressor(ExtraTreesRegressor)
15-
self.assertAlmostEqual(0.43258995365114405,
16-
sklearn.metrics.r2_score(targets,
17-
predictions))
10+
__test__ = True
1811

19-
def test_default_configuration_sparse(self):
20-
for i in range(2):
21-
predictions, targets = \
22-
_test_regressor(ExtraTreesRegressor, sparse=True)
23-
self.assertAlmostEqual(0.28016012771570553,
24-
sklearn.metrics.r2_score(targets,
25-
predictions))
12+
res = dict()
13+
res["default_boston"] = 0.77744792837581866
14+
res["default_boston_iterative"] = 0.77744792837581866
15+
res["default_boston_sparse"] = 0.32936702992375644
16+
res["default_boston_iterative_sparse"] = 0.32936702992375644
17+
res["default_diabetes"] = 0.43258995365114405
18+
res["default_diabetes_iterative"] = 0.43258995365114405
19+
res["default_diabetes_sparse"] = 0.28016012771570553
20+
res["default_diabetes_iterative_sparse"] = 0.28016012771570553
2621

27-
def test_default_configuration_iterative_fit(self):
28-
for i in range(2):
29-
predictions, targets = \
30-
_test_regressor_iterative_fit(ExtraTreesRegressor)
31-
self.assertAlmostEqual(0.43258995365114405,
32-
sklearn.metrics.r2_score(targets,
33-
predictions))
22+
sk_mod = sklearn.ensemble.ExtraTreesRegressor
23+
24+
module = ExtraTreesRegressor
Lines changed: 37 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,38 @@
1-
import unittest
2-
3-
from autosklearn.pipeline.components.regression.gaussian_process import GaussianProcess
4-
from autosklearn.pipeline.util import _test_regressor
5-
6-
import sklearn.metrics
7-
8-
9-
class GaussianProcessComponentTest(unittest.TestCase):
10-
def test_default_configuration(self):
11-
# Only twice to reduce the number of warning printed to the command line
12-
for i in range(2):
13-
# Float32 leads to numeric instabilities
14-
predictions, targets = _test_regressor(GaussianProcess,
15-
dataset='boston')
16-
# My machine: 0.574913739659292
17-
# travis-ci: 0.49562471963524557
18-
self.assertLessEqual(
19-
sklearn.metrics.r2_score(y_true=targets, y_pred=predictions),
20-
0.6)
21-
self.assertGreaterEqual(
22-
sklearn.metrics.r2_score(y_true=targets, y_pred=predictions),
23-
0.4)
1+
import sklearn.gaussian_process
242

3+
from autosklearn.pipeline.components.regression.gaussian_process import \
4+
GaussianProcess
5+
6+
from .test_base import BaseRegressionComponentTest
7+
8+
9+
class GaussianProcessComponentTest(BaseRegressionComponentTest):
10+
11+
__test__ = True
12+
13+
res = dict()
14+
res["default_boston_le_ge"] = [0.6, 0.4]
15+
res["default_boston_places"] = 1
16+
res["default_boston_iterative"] = None
17+
res["default_boston_sparse"] = None
18+
res["default_boston_iterative_sparse"] = None
19+
res["default_diabetes"] = -7.4131230585194885e-06
20+
res["default_diabetes_iterative"] = None
21+
res["default_diabetes_sparse"] = None
22+
res["default_diabetes_iterative_sparse"] = None
23+
24+
sk_mod = sklearn.gaussian_process.GaussianProcessRegressor
25+
26+
module = GaussianProcess
27+
28+
"""
29+
# Leave this here for future reference
30+
# My machine: 0.574913739659292
31+
# travis-ci: 0.49562471963524557
32+
self.assertLessEqual(
33+
sklearn.metrics.r2_score(y_true=targets, y_pred=predictions),
34+
0.6)
35+
self.assertGreaterEqual(
36+
sklearn.metrics.r2_score(y_true=targets, y_pred=predictions),
37+
0.4)
38+
"""

0 commit comments

Comments
 (0)