Random forest classifier probability is negative

### Describe the bug

Random forest classifier probability is negative value

### Steps/Code to Reproduce

```py
import numpy as np

clf = RandomForestClassifier(n_estimators=500, max_depth=50, random_state=0, min_samples_split = 10, min_samples_leaf = 10)
clf_pipeline = Pipeline(steps=[
    ('col_trans', col_trans),
    ('model', clf)
])
num_cols = ['transCount','viewsCount']

df['label'] = np.where( (df['transCount'] > 0) | (df['viewsCount'] > 5), 1, 0)
# df['label'] = np.where( (df['transCount'] > 0), 1, 0)
df['label'].value_counts()
X = df[num_cols]
y = df[['label']]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, stratify=y_combine, random_state=42)
clf_pipeline.fit(X_train, y_train)
# preds = clf_pipeline.predict(X_test)
score = clf_pipeline.score(X_test, y_test)
print(f"Model score: {score}") # model accuracy

from skl2onnx.common.data_types import FloatTensorType, StringTensorType, Int64TensorType
def convert_dataframe_schema(df, drop=None):
    inputs = []
    for k, v in zip(df.columns, df.dtypes):
        if drop is not None and k in drop:
            continue
        if v == 'int64':
            t = Int64TensorType([None, 1])
        elif v == 'float64':
            t = FloatTensorType([None, 1])
        else:
            t = StringTensorType([None, 1])
        inputs.append((k, t))
    return inputs


initial_inputs = convert_dataframe_schema(X_train)
from skl2onnx import convert_sklearn
from skl2onnx.common.data_types import FloatTensorType, StringTensorType
import numpy as np
import datetime
options = {id(clf_pipeline): {'zipmap': False}}
onx2 = convert_sklearn(clf_pipeline, initial_types=initial_inputs, options=options,
                       target_opset=12)
model_name = "random_forest_v" + datetime.datetime.now().strftime("%d-%m-%Y_%H-%M-%S")
with open(f"{model_name}.onnx", "wb") as f:
    f.write(onx2.SerializeToString())
```
I convert scikit-learn model to ONNX and install it to Redis Ai to predict. Eventually, the predicted probability value is negative like that [
  "-5.9604644775390625e-07",
  "1.0000005960464478"
]

### Expected Results

[
  "-5.9604644775390625e-07",
  "1.0000005960464478"
]

### Actual Results

The inference using scikit-learn: array([[0., 1.]]). But the result inference in RedisAI: 
[
  "-5.9604644775390625e-07",
  "1.0000005960464478"
]

### Versions

```shell
System:
    python: 3.10.9 (main, Mar  8 2023, 10:47:38) [GCC 11.2.0]
executable: /home/devops/anaconda3/envs/machine-learning/bin/python
   machine: Linux-5.15.0-47-generic-x86_64-with-glibc2.35

Python dependencies:
      sklearn: 1.2.1
          pip: 23.0.1
   setuptools: 65.6.3
        numpy: 1.23.2
        scipy: 1.10.1
       Cython: None
       pandas: 1.4.3
   matplotlib: 3.1.1
       joblib: 1.2.0
threadpoolctl: 3.1.0

Built with OpenMP: True

threadpoolctl info:
       user_api: blas
   internal_api: openblas
         prefix: libopenblas
       filepath: /home/devops/.local/lib/python3.10/site-packages/numpy.libs/libopenblas64_p-r0-742d56dc.3.20.so
        version: 0.3.20
threading_layer: pthreads
   architecture: Haswell
    num_threads: 12

       user_api: openmp
   internal_api: openmp
         prefix: libgomp
       filepath: /home/devops/anaconda3/envs/machine-learning/lib/python3.10/site-packages/scikit_learn.libs/libgomp-a34b3233.so.1.0.0
        version: None
    num_threads: 12

       user_api: blas
   internal_api: openblas
         prefix: libopenblas
       filepath: /home/devops/anaconda3/envs/machine-learning/lib/python3.10/site-packages/scipy.libs/libopenblasp-r0-41284840.3.18.so
        version: 0.3.18
threading_layer: pthreads
   architecture: Haswell
    num_threads: 12
```

COMMENT:
I did not get time to look closely. If the discrepancy happens once the model was transformed with ONNX, then the issue would be triggered by the ONNX `predict` implementation and not scikit-learn.

@thongvhoang Would you mind cleaning the example such that it is minimal removing all unnecessary code to trigger the error?

Labels: Bug, Needs Info