5
5
import packaging .version as pv
6
6
from onnx .defs import onnx_opset_version
7
7
from onnxruntime import __version__ as ort_version
8
+ from sklearn import __version__ as sklearn_version
8
9
from sklearn .ensemble import AdaBoostClassifier , AdaBoostRegressor
9
10
from sklearn .linear_model import LinearRegression , LogisticRegression
10
11
from sklearn .tree import DecisionTreeClassifier
23
24
24
25
25
26
ort_version = '.' .join (ort_version .split ('.' )[:2 ])
27
+ skl_version = '.' .join (sklearn_version .split ('.' )[:2 ])
26
28
27
29
28
30
class TestSklearnAdaBoostModels (unittest .TestCase ):
29
31
@unittest .skipIf (TARGET_OPSET < 11 , reason = "not available" )
30
32
def test_ada_boost_classifier_samme_r (self ):
31
- model , X_test = fit_classification_model (AdaBoostClassifier (
32
- n_estimators = 10 , algorithm = "SAMME.R" , random_state = 42 ,
33
- base_estimator = DecisionTreeClassifier (
34
- max_depth = 2 , random_state = 42 )), 3 )
33
+ if pv .Version (skl_version ) < pv .Version ("1.2" ):
34
+ model , X_test = fit_classification_model (AdaBoostClassifier (
35
+ n_estimators = 10 , algorithm = "SAMME.R" , random_state = 42 ,
36
+ base_estimator = DecisionTreeClassifier (
37
+ max_depth = 2 , random_state = 42 )), 3 )
38
+ else :
39
+ model , X_test = fit_classification_model (AdaBoostClassifier (
40
+ n_estimators = 10 , algorithm = "SAMME.R" , random_state = 42 ,
41
+ estimator = DecisionTreeClassifier (
42
+ max_depth = 2 , random_state = 42 )), 3 )
35
43
model_onnx = convert_sklearn (
36
44
model ,
37
45
"AdaBoost classification" ,
@@ -47,10 +55,16 @@ def test_ada_boost_classifier_samme_r(self):
47
55
48
56
@unittest .skipIf (TARGET_OPSET < 11 , reason = "not available" )
49
57
def test_ada_boost_classifier_samme_r_decision_function (self ):
50
- model , X_test = fit_classification_model (AdaBoostClassifier (
51
- n_estimators = 10 , algorithm = "SAMME.R" , random_state = 42 ,
52
- base_estimator = DecisionTreeClassifier (
53
- max_depth = 2 , random_state = 42 )), 4 )
58
+ if pv .Version (skl_version ) < pv .Version ("1.2" ):
59
+ model , X_test = fit_classification_model (AdaBoostClassifier (
60
+ n_estimators = 10 , algorithm = "SAMME.R" , random_state = 42 ,
61
+ base_estimator = DecisionTreeClassifier (
62
+ max_depth = 2 , random_state = 42 )), 4 )
63
+ else :
64
+ model , X_test = fit_classification_model (AdaBoostClassifier (
65
+ n_estimators = 10 , algorithm = "SAMME.R" , random_state = 42 ,
66
+ estimator = DecisionTreeClassifier (
67
+ max_depth = 2 , random_state = 42 )), 4 )
54
68
options = {id (model ): {'raw_scores' : True }}
55
69
model_onnx = convert_sklearn (
56
70
model ,
@@ -69,10 +83,16 @@ def test_ada_boost_classifier_samme_r_decision_function(self):
69
83
70
84
@unittest .skipIf (TARGET_OPSET < 11 , reason = "not available" )
71
85
def test_ada_boost_classifier_samme_r_logreg (self ):
72
- model , X_test = fit_classification_model (AdaBoostClassifier (
73
- n_estimators = 5 , algorithm = "SAMME.R" ,
74
- base_estimator = LogisticRegression (
75
- solver = 'liblinear' )), 4 )
86
+ if pv .Version (skl_version ) < pv .Version ("1.2" ):
87
+ model , X_test = fit_classification_model (AdaBoostClassifier (
88
+ n_estimators = 5 , algorithm = "SAMME.R" ,
89
+ base_estimator = LogisticRegression (
90
+ solver = 'liblinear' )), 4 )
91
+ else :
92
+ model , X_test = fit_classification_model (AdaBoostClassifier (
93
+ n_estimators = 5 , algorithm = "SAMME.R" ,
94
+ estimator = LogisticRegression (
95
+ solver = 'liblinear' )), 4 )
76
96
model_onnx = convert_sklearn (
77
97
model ,
78
98
"AdaBoost classification" ,
@@ -88,10 +108,16 @@ def test_ada_boost_classifier_samme_r_logreg(self):
88
108
89
109
@unittest .skipIf (TARGET_OPSET < 11 , reason = "not available" )
90
110
def test_ada_boost_classifier_samme (self ):
91
- model , X_test = fit_classification_model (AdaBoostClassifier (
92
- n_estimators = 5 , algorithm = "SAMME" , random_state = 42 ,
93
- base_estimator = DecisionTreeClassifier (
94
- max_depth = 6 , random_state = 42 )), 2 , n_features = 7 )
111
+ if pv .Version (skl_version ) < pv .Version ("1.2" ):
112
+ model , X_test = fit_classification_model (AdaBoostClassifier (
113
+ n_estimators = 5 , algorithm = "SAMME" , random_state = 42 ,
114
+ base_estimator = DecisionTreeClassifier (
115
+ max_depth = 6 , random_state = 42 )), 2 , n_features = 7 )
116
+ else :
117
+ model , X_test = fit_classification_model (AdaBoostClassifier (
118
+ n_estimators = 5 , algorithm = "SAMME" , random_state = 42 ,
119
+ estimator = DecisionTreeClassifier (
120
+ max_depth = 6 , random_state = 42 )), 2 , n_features = 7 )
95
121
model_onnx = convert_sklearn (
96
122
model ,
97
123
"AdaBoostClSamme" ,
@@ -107,10 +133,16 @@ def test_ada_boost_classifier_samme(self):
107
133
108
134
@unittest .skipIf (TARGET_OPSET < 11 , reason = "not available" )
109
135
def test_ada_boost_classifier_samme_decision_function (self ):
110
- model , X_test = fit_classification_model (AdaBoostClassifier (
111
- n_estimators = 5 , algorithm = "SAMME" , random_state = 42 ,
112
- base_estimator = DecisionTreeClassifier (
113
- max_depth = 6 , random_state = 42 )), 2 )
136
+ if pv .Version (skl_version ) < pv .Version ("1.2" ):
137
+ model , X_test = fit_classification_model (AdaBoostClassifier (
138
+ n_estimators = 5 , algorithm = "SAMME" , random_state = 42 ,
139
+ base_estimator = DecisionTreeClassifier (
140
+ max_depth = 6 , random_state = 42 )), 2 )
141
+ else :
142
+ model , X_test = fit_classification_model (AdaBoostClassifier (
143
+ n_estimators = 5 , algorithm = "SAMME" , random_state = 42 ,
144
+ estimator = DecisionTreeClassifier (
145
+ max_depth = 6 , random_state = 42 )), 2 )
114
146
options = {id (model ): {'raw_scores' : True }}
115
147
model_onnx = convert_sklearn (
116
148
model ,
@@ -174,25 +206,28 @@ def test_ada_boost_regressor(self):
174
206
target_opset = 10 )
175
207
self .assertIsNotNone (model_onnx )
176
208
dump_data_and_model (
177
- X ,
178
- model ,
179
- model_onnx ,
209
+ X , model , model_onnx ,
210
+ backend = "onnxruntime" ,
180
211
basename = "SklearnAdaBoostRegressor-Dec4" )
181
212
182
213
@unittest .skipIf (TARGET_OPSET < 11 , reason = "not available" )
183
214
def test_ada_boost_regressor_lreg (self ):
184
- model , X = fit_regression_model (
185
- AdaBoostRegressor (n_estimators = 5 ,
186
- base_estimator = LinearRegression ()))
215
+ if pv .Version (skl_version ) < pv .Version ("1.2" ):
216
+ model , X = fit_regression_model (
217
+ AdaBoostRegressor (n_estimators = 5 ,
218
+ base_estimator = LinearRegression ()))
219
+ else :
220
+ model , X = fit_regression_model (
221
+ AdaBoostRegressor (n_estimators = 5 ,
222
+ estimator = LinearRegression ()))
187
223
model_onnx = convert_sklearn (
188
224
model , "AdaBoost regression" ,
189
225
[("input" , FloatTensorType ([None , X .shape [1 ]]))],
190
226
target_opset = 10 )
191
227
self .assertIsNotNone (model_onnx )
192
228
dump_data_and_model (
193
- X ,
194
- model ,
195
- model_onnx ,
229
+ X , model , model_onnx ,
230
+ backend = "onnxruntime" ,
196
231
basename = "SklearnAdaBoostRegressorLReg-Dec4" )
197
232
198
233
@unittest .skipIf (TARGET_OPSET < 11 , reason = "not available" )
@@ -205,9 +240,8 @@ def test_ada_boost_regressor_int(self):
205
240
target_opset = 10 )
206
241
self .assertIsNotNone (model_onnx )
207
242
dump_data_and_model (
208
- X ,
209
- model ,
210
- model_onnx ,
243
+ X , model , model_onnx ,
244
+ backend = "onnxruntime" ,
211
245
basename = "SklearnAdaBoostRegressorInt-Dec4" )
212
246
213
247
@unittest .skipIf (TARGET_OPSET < 11 , reason = "not available" )
@@ -220,9 +254,8 @@ def test_ada_boost_regressor_lr10(self):
220
254
target_opset = 10 )
221
255
self .assertIsNotNone (model_onnx )
222
256
dump_data_and_model (
223
- X ,
224
- model ,
225
- model_onnx ,
257
+ X , model , model_onnx ,
258
+ backend = "onnxruntime" ,
226
259
basename = "SklearnAdaBoostRegressorLR-Dec4" )
227
260
228
261
@unittest .skipIf ((pv .Version (ort_version ) <
@@ -262,9 +295,8 @@ def test_ada_boost_regressor_bool(self):
262
295
)
263
296
self .assertIsNotNone (model_onnx )
264
297
dump_data_and_model (
265
- X ,
266
- model ,
267
- model_onnx ,
298
+ X , model , model_onnx ,
299
+ backend = "onnxruntime" ,
268
300
basename = "SklearnAdaBoostRegressorBool" )
269
301
270
302
0 commit comments