XGBoosting Home | About | Contact | Examples

Configure XGBoost "missing" Parameter

The missing parameter in XGBoost specifies the value to be treated as missing during training, which is useful when the dataset contains missing values.

import numpy as np
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from xgboost import XGBClassifier

# Generate synthetic data
X, y = make_classification(n_samples=1000, n_features=20, n_informative=2, n_redundant=10, random_state=42)

# Split the dataset into training and test sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Sample code snippet demonstrating how to set the `missing` parameter
model = XGBClassifier(missing=np.nan, eval_metric='logloss')

# Fit the model
model.fit(X_train, y_train)

# Make predictions
predictions = model.predict(X_test)

Understanding the “missing” Parameter

The missing parameter in XGBoost tells the algorithm which value should be treated as missing. This can be np.nan, 0, -999, or any other value that represents missing data in your dataset. XGBoost can handle missing values natively without the need for imputation, which simplifies the data preprocessing step. By default, XGBoost treats np.nan as missing.

The native support in XGBoost for missing values means that we do not have to impute missing values in the dataset prior to training or inference, as we may with other models.

Choosing the Right “missing” Value

Setting the missing parameter correctly is crucial for XGBoost to handle missing values properly. The value you choose should match the missing value representation in your dataset. Common missing value representations include:

Before setting the missing parameter, explore your dataset to identify the value used to represent missing data. Ensure that the chosen value is consistent across the entire dataset and is not used as a valid value for any feature.

Practical Tips

By setting the missing parameter correctly, you can ensure that XGBoost handles missing values effectively, leading to improved model performance and more accurate predictions.

See Also