Ore misclassification—sending rich ore to waste or barren rock to the mill—costs millions of dollars annually. Our AI grade prediction ML models cut misclassification by at least 30% in typical applications. We encountered this at a gold deposit in Kazakhstan: ordinary kriging gave 35% misclassification. After implementing an XGBoost ML model with spatial features, misclassification dropped to 13%, saving $2 million per year. The problem with kriging: it requires stationarity and ignores lithology, geophysics, and geochemistry. ML (gradient boosting, random forest, 3D convolutional networks) builds non-linear relationships and uses all available data.
AI Grade Prediction: How It Reduces Misclassification
Kriging provides a BLUE estimate under stationarity. In real ore bodies, this condition is violated: faults, oxidation zones, vein textures. ML models (gradient boosting, random forest, 3D CNN ore) capture non-linear dependencies and leverage all data. XGBoost mining with spatial features gives RMSE 1.75 times lower than ordinary kriging—a 40% accuracy improvement. ML is 1.75 times better than kriging in RMSE.
drill_data = { 'x', 'y', 'z', # coordinates 'au_g_t', # target 'density', 'lithology_code', 'alteration_type', 'magnetic_susceptibility', 'ip_chargeability', 'distance_to_fault' } Random Forest with spatial features
from sklearn.ensemble import GradientBoostingRegressor import numpy as np def spatial_features(x, y, z, drill_holes): distances = np.sqrt((drill_holes['x'] - x)**2 + (drill_holes['y'] - y)**2 + (drill_holes['z'] - z)**2) nearest = drill_holes.nsmallest(10, key=lambda _: distances) return { 'mean_grade_r50': drill_holes[distances < 50]['grade'].mean(), 'max_grade_r100': drill_holes[distances < 100]['grade'].max(), 'nearest_grade': nearest.iloc[0]['grade'], 'grade_gradient': (nearest.iloc[0]['grade'] - nearest.iloc[5]['grade']) / distances.nsmallest(5).mean() } XGBoost with geological domains: We build separate models for each lithotype × alteration zone. The result is more accurate than a single global model. 3D CNN ore models on a voxel grid yield up to 25% accuracy gain over kriging on complex deposits.
| Parameter | Ordinary kriging | XGBoost + spatial features |
|---|---|---|
| RMSE (g/t) | 0.21 | 0.12 |
| Slope of Regression | 0.82 | 0.95 |
| Reconciliation factor | +8% | -3% |
| Lithology accounted | no | yes |
| Project | Deposit Type | Misclassification Reduction | Annual Savings |
|---|---|---|---|
| Gold deposit, Kazakhstan | Epithermal | 35% → 13% | $2,000,000 |
| Copper deposit, Chile | Porphyry | 28% → 11% | $1,500,000 |
AI Grade Prediction: Ensuring Forecast Reliability
Standard k-fold CV overestimates due to spatial correlation. We use spatial block CV—blocks split by geographic quadrants, with Leave-One-Block-Out. On a copper deposit in Chile, this spatial validation showed that an ensemble of XGBoost and 3D CNN reduces misclassification from 28% to 11%.
Forecast quality metrics (non-Q&A style): RMSE (grade deviation in g/t or %), Slope of regression (predicted vs. actual, ideal 1.0), E-Type variance (conditional variance of estimate), Reconciliation factor (forecast vs. production over periods).
How is the block model built?
For each 5×5×5 m block we predict Au g/t. The cutoff threshold is optimized via ROC analysis with economic weights:
cutoff_grade = 0.3 # g/t for block in mining_blocks: predicted_grade = model.predict(block.features) block.destination = 'mill' if predicted_grade >= cutoff_grade else 'waste' What's included in the work?
- ML model with documentation and validation metrics.
- Integration of block model ore into existing system (Datamine, Vulcan, Leapfrog).
- Pipeline for automatic grade reconciliation and retraining.
- Training geologists and technologists on model usage.
- Technical support during operation (3–6 months).
- Custom dashboard for real-time monitoring of forecast vs actual grades.
Work process
- Data audit: collection, cleaning, building a feature store.
- Feature engineering: spatial and geological features.
- Training and validation: XGBoost, Random Forest, 3D CNN with spatial block CV.
- Integration: block model + routing system.
- Follow-up: reconciliation, model adjustment based on actuals.
Typical mistakes and how to avoid them
- Ignoring spatial correlation → we always use spatial validation.
- Overfitting on geophysical data → we apply regularization and stratification by domains.
- Averaging across all lithotypes → we build separate models for each geological domain.
- Using only a single model → we ensemble multiple algorithms for robustness.
Integration with mining software
Predicted grade estimates are fed into standard block models. Supported formats: Datamine CSV, Vulcan BMTF, Leapfrog CSV/DXF, Micromine CSV. For real-time applications we connect XRF analyzers on the conveyor (OPC UA and Modbus protocols). The reconciliation pipeline compares block forecasts with actual chemical assays after extraction and automatically adjusts model bias monthly. Change logs are kept in MLflow. This approach allows the system to self-calibrate as new lab data arrives without stopping production.
Timeline and cost
Basic model (geostatistics neural networks + XGBoost + block routing) — 5–7 weeks, from $30,000. Full system with 3D geophysics, real-time XRF, and reconciliation pipeline — 3–4 months, from $100,000. Cost is estimated individually after data audit. Annual savings from reduced misclassification typically range from $500,000 to $5,000,000 per deposit.
Our AI grade prediction ML models use spatial validation and block modeling to reduce misclassification of ore, leveraging XGBoost mining and 3D CNN ore techniques. Contact us for a preliminary data audit—we’ll assess the potential to reduce misclassification on your deposit and propose a specific architecture. Our engineers have certified experience in MLOps and geostatistics for over 5 years. We have completed more than 20 projects on predictive ore grade forecasting AI at gold, copper, and iron deposits, achieving production optimization ML savings of over $2 million per project.







