Integrate with XGBoost¶
Comet integrates with XGBoost.
XGBoost is an optimized distributed gradient boosting library designed to be highly efficient, flexible and portable. It implements machine learning algorithms under the Gradient Boosting framework. XGBoost provides a parallel tree boosting (also known as GBDT, GBM) that solve many data science problems in a fast and accurate way. The same code runs on major distributed environment (Kubernetes, Hadoop, SGE, MPI, Dask) and can solve problems beyond billions of examples.
from comet_ml import start, login
import xgboost as xgb
login()
experiment = start(project_name="comet-example-xgboost-doc")
# Your code here...
model = xgb.fit()
Log automatically¶
The Comet XGBoost auto-logger can automatically log:
- Model/graph description
- Metrics (such as loss and accuracy)
- Hyperparameters
- Command-line arguments
Configure Comet for XGBoost¶
Item | Experiment Parameter | Environment Setting | Configuration File Setting |
---|---|---|---|
Model/graph description | log_graph | COMET_AUTO_LOG_GRAPH | comet.auto_log.graph |
Metrics | auto_metric_logging | COMET_AUTO_LOG_METRICS | comet.auto_log.metrics |
Hyperparameters | auto_param_logging | COMET_AUTO_LOG_PARAMETERS | comet.auto_log.parameters |
Command-line arguments | parse_args | COMET_AUTO_LOG_CLI_ARGUMENTS | comet.auto_log.cli_arguments |
End-to-end Example¶
# Get the data for this script:
# wget https://raw.githubusercontent.com/microsoft/LightGBM/master/examples/regression/regression.train -qq
# wget https://raw.githubusercontent.com/microsoft/LightGBM/master/examples/regression/regression.test -qq
from comet_ml import start, login
import xgboost as xgb
import os
import pandas as pd
from sklearn.metrics import mean_squared_error
login()
experiment = start(project_name="comet-example-xgboost-doc")
dirname = os.path.dirname(__file__)
df_train = pd.read_csv(os.path.join(dirname, "regression.train"), header=None, sep="\t")
df_test = pd.read_csv(os.path.join(dirname, "regression.test"), header=None, sep="\t")
y_train = df_train[0]
y_test = df_test[0]
X_train = df_train.drop(0, axis=1)
X_test = df_test.drop(0, axis=1)
param = {
"objective": "reg:squarederror",
"colsample_bytree": 0.3,
"learning_rate": 0.1,
"max_depth": 5,
"alpha": 10,
"n_estimators": 50,
}
model = xgb.XGBRegressor(**param)
model.fit(
X_train,
y_train,
eval_set=[(X_train, y_train), (X_test, y_test)],
eval_metric="rmse"
)
Try it out!¶
Here's an example for using Comet with XGBoost.
Nov. 18, 2024