import numpy as np
import xgboost as xgb
np.random.seed(42)
X_train = np.random.uniform(0, 10, size=(100, 3)).astype(np.float32)
y_train = (X_train.sum(axis=1) > 15).astype(int)
print(f"Training data shape: {X_train.shape}")
print(f"Label distribution: {np.bincount(y_train)}")
print(f"\nFirst 5 training samples:")
for i in range(5):
print(f" Features: {X_train[i]}, Sum: {X_train[i].sum():.2f}, Label: {y_train[i]}")
dtrain = xgb.DMatrix(X_train, label=y_train)
params = {
'objective': 'binary:logistic',
'max_depth': 3,
'eta': 0.3,
'eval_metric': 'logloss'
}
print("\nTraining model...")
model = xgb.train(params, dtrain, num_boost_round=20)
model.save_model('demo_model.json')
print("✓ Model saved to demo_model.json")
X_test = np.array([
[1.5, 2.3, 3.1], [5.0, 5.0, 6.0], [8.0, 8.0, 1.0], [2.0, 3.0, 5.0], ], dtype=np.float32)
dtest = xgb.DMatrix(X_test)
predictions = model.predict(dtest)
print("\nTest predictions:")
for i, (features, pred) in enumerate(zip(X_test, predictions)):
print(f" Features: {features}, Sum: {features.sum():.2f}, Prediction: {pred:.4f}")