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!