Beispiel #1
0
 def test_extratreesclassifier_decision_path(self):
     model = ExtraTreesClassifier(max_depth=2, n_estimators=3)
     X, y = make_classification(10, n_features=4, random_state=42)
     X = X[:, :2]
     model.fit(X, y)
     initial_types = [('input', FloatTensorType((None, X.shape[1])))]
     model_onnx = convert_sklearn(
         model, initial_types=initial_types,
         options={id(model): {'decision_path': True, 'zipmap': False}},
         target_opset=TARGET_OPSET)
     sess = InferenceSession(model_onnx.SerializeToString())
     res = sess.run(None, {'input': X.astype(numpy.float32)})
     pred = model.predict(X)
     assert_almost_equal(pred, res[0].ravel())
     prob = model.predict_proba(X)
     assert_almost_equal(prob, res[1])
     dec = model.decision_path(X)
     exp = binary_array_to_string(dec[0].todense())
     got = numpy.array([''.join(row) for row in res[2]])
     assert exp == got.ravel().tolist()