34 lines
908 B
Python
34 lines
908 B
Python
import shap
|
|
import xgboost
|
|
from sklearn.model_selection import train_test_split
|
|
|
|
import mlflow
|
|
|
|
# Load the UCI Adult Dataset
|
|
X, y = shap.datasets.adult()
|
|
|
|
# Split the data into training and test sets
|
|
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)
|
|
|
|
# Fit an XGBoost binary classifier on the training data split
|
|
model = xgboost.XGBClassifier().fit(X_train, y_train)
|
|
|
|
# Build the Evaluation Dataset from the test set
|
|
y_test_pred = model.predict(X=X_test)
|
|
eval_data = X_test
|
|
eval_data["label"] = y_test
|
|
eval_data["predictions"] = y_test_pred
|
|
|
|
|
|
with mlflow.start_run() as run:
|
|
# Evaluate the static dataset without providing a model
|
|
result = mlflow.evaluate(
|
|
data=eval_data,
|
|
targets="label",
|
|
predictions="predictions",
|
|
model_type="classifier",
|
|
)
|
|
|
|
print(f"metrics:\n{result.metrics}")
|
|
print(f"artifacts:\n{result.artifacts}")
|