XGBoost(Classifier/Regressor) NaN values not handled?

Hi,

When I was testing my XGBoost model that I trained and converted to Concrete via the .from_sklearn_model, I encountered errors when supplying input values for inference or a representative inputset for compilation that contained NaN values.
As far as I understood XGBoost with missing=NaN can already handle these themselves, and in my datasets I use I have utilized NaN as the flag for a missing value to still test in my XGBoost model.
I additionally checked the corresponding variable flag in the XGBoostClassifier class from ConcreteML as well after I applied .from_sklearn_model(), but I encounter errors when trying to do this.

Traceback provided here:
Traceback (most recent call last):
line 329, in
cml_model.compile(X_train)
File “site-packages/concrete/ml/sklearn/base.py”, line 1530, in compile
BaseEstimator.compile(self, *args, **kwargs)
File “site-packages/concrete/ml/sklearn/base.py”, line 553, in compile
X = check_array_and_assert(X)
^^^^^^^^^^^^^^^^^^^^^^^^^
File “site-packages/concrete/ml/common/check_inputs.py”, line 30, in check_array_and_assert
X = sklearn.utils.check_array(X, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “site-packages/sklearn/utils/validation.py”, line 1003, in check_array
_assert_all_finite(
File “site-packages/sklearn/utils/validation.py”, line 126, in _assert_all_finite
_assert_all_finite_element_wise(
File “site-packages/sklearn/utils/validation.py”, line 175, in _assert_all_finite_element_wise
raise ValueError(msg_err)
ValueError: Input contains NaN.

Is this something inherent to a conversion from XGBoost in ConcreteML where NaNs need to be handled differently or is this a different alluding problem?

Thanks in advance for your response!

Sorry, we don’t support NaN values in Concrete ML for now. You should try to fill in those missing values with some value. Various techniques exist.