MAPE approaching infinity with RandomForestRegressor

### Describe the bug

When using the current version of scikit-learn for learning a Random Forest Regressor (https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestRegressor.html#sklearn-ensemble-randomforestregressor) on the same dataset on which the same kind of model was learned in 2021, the mean absolute percentage error (MAPE) behaves in a completely different way. In particular, the models learned in 2021 had a MAPE of the order of magnitude of 10^-2, now the MAPE is of the order of magnitude of 10^16 or +inf.  Other error metrics (MAE, RMSE, Accuracy) do not show this difference on the same data.
I suppose something's wrong with the computation of the MAPE in combination with sklearn.ensemble.RandomForestRegressor. The computation of the MAPE with other regressors (SVR, MultilayerPerceptron), both with the stable version of the library and the 2021 version, is correct on the same dataset.

### Steps/Code to Reproduce

```py
from sklearn import metrics
from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import train_test_split

%the dataset cannot be publicly provided
rand_forest = RandomForestRegressor(max_depth=20,
                                     min_samples_leaf=20,
                                     max_features=500,
                                     n_estimators=100,
                                     n_jobs = -1,
                                     random_state=42)
 rand_forest.fit(X_train, y_train)
 y_pred = rand_forest.predict(X_test)
print('mape:', str(metrics.mean_absolute_percentage_error(y_test, y_pred)).replace(".", ","))
```

### Expected Results

A value less or equal to 1 for MAPE.

### Actual Results

mape: 3726411741284014,0 or even mape:inf

### Versions

```shell
System:
    python: 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0]
executable: /usr/bin/python3
   machine: Linux-6.1.58+-x86_64-with-glibc2.35

Python dependencies:
      sklearn: 1.2.2
          pip: 23.1.2
   setuptools: 67.7.2
        numpy: 1.25.2
        scipy: 1.11.4
       Cython: 3.0.10
       pandas: 2.0.3
   matplotlib: 3.7.1
       joblib: 1.4.0
threadpoolctl: 3.5.0

Built with OpenMP: True

threadpoolctl info:
       user_api: blas
   internal_api: openblas
    num_threads: 2
         prefix: libopenblas
       filepath: /usr/local/lib/python3.10/dist-packages/numpy.libs/libopenblas64_p-r0-5007b62f.3.23.dev.so
        version: 0.3.23.dev
threading_layer: pthreads
   architecture: Haswell

       user_api: openmp
   internal_api: openmp
    num_threads: 2
         prefix: libgomp
       filepath: /usr/local/lib/python3.10/dist-packages/scikit_learn.libs/libgomp-a34b3233.so.1.0.0
        version: None

       user_api: blas
   internal_api: openblas
    num_threads: 2
         prefix: libopenblas
       filepath: /usr/local/lib/python3.10/dist-packages/scipy.libs/libopenblasp-r0-23e5df77.3.21.dev.so
        version: 0.3.21.dev
threading_layer: pthreads
   architecture: Haswell
```

COMMENT:
There are two possible reasons for this : either your `y_pred`  contains really small values or the absolute difference between `y_pred` and `y_test` is too large. You can see it by checking the formula of MAPE [here](https://github.com/scikit-learn/scikit-learn/blob/8721245511de2f225ff5f9aa5f5fadce663cd4a3/sklearn/metrics/_regression.py#L395)

Labels: Bug, Needs Triage