AI Ore Grade Prediction System

We design and deploy artificial intelligence systems: from prototype to production-ready solutions. Our team combines expertise in machine learning, data engineering and MLOps to make AI work not in the lab, but in real business.
Showing 1 of 1 servicesAll 1566 services
AI Ore Grade Prediction System
Medium
~2-4 weeks
FAQ
AI Development Areas
AI Solution Development Stages
Latest works
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1161
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1041
  • image_logo-advance_0.png
    B2B Advance company logo design
    561
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    823
  • image_logo-aider_0.jpg
    AIDER company logo development
    762
  • image_crm_chasseurs_493_0.webp
    CRM development for Chasseurs
    848

AI Ore Grade Prediction at Mining Enterprises

Grade prediction (ore valuable component content) in mining is geostatistics reconceived with ML application. Accurate grade forecast determines mining project economics: ore routing to processing or waste, flotation optimization, mill loading.

Geostatistical Context

Traditional approach — Kriging: Ordinary kriging (OK) — BLUE estimate based on spatial correlation (variogram). Ordinary kriging works well with stationary data, but misses nonlinear geological structures.

Kriging limitations:

  • Stationarity assumption violated in complex ore bodies
  • Does not account for secondary variables (geophysics, geochemistry)
  • Mitigation: Indicator Kriging for categorical grade domains

ML as supplement:

# Source data: drill core sampling
drill_data = {
    'x', 'y', 'z',           # sample coordinates
    'au_g_t',                 # Au content g/t — target
    'density',                # density
    'lithology_code',         # lithology (one-hot)
    'alteration_type',        # alteration type
    'magnetic_susceptibility',# geophysics
    'ip_chargeability',       # IP chargeability
    'distance_to_fault'       # distance to fault
}

ML Models for Grade Estimation

Random Forest with spatial features:

from sklearn.ensemble import GradientBoostingRegressor
import numpy as np

def spatial_features(x, y, z, drill_holes):
    """
    Neighborhood features: nearest N drill holes with grades
    Spatial lag: mean grade within radius R
    """
    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: Grade estimation within each geological domain (lithotype × alteration zone). Separate models per domain — better than single global model.

Neural Network for 3D space: 3D CNN on block model voxels: input channels — geophysical data (magnetometry, IP, seismics), output channel — predicted grade.

Secondary Data Sources

Geophysics:

  • Aeromagnetic survey: magnetism relationship with sulfide mineralization
  • Induced Polarization (IP): chargeability = proxy for sulfide content
  • Gravimetry: density anomalies for ore bodies

Remote Sensing:

  • Hyperspectral survey (ASTER, WorldView): surface mineral mapping
  • For quarries: drone-based hyperspectral benches survey

Real-time Drilling Data:

  • MWD/LWD (Measurement/Logging While Drilling): gamma-ray, resistivity, sonic
  • XRF analysis at wellhead: express analysis without laboratory

Block Model and Routing

Grade Control Model: Short-term (operational) block model for mining mass management:

# For each 5×5×5 m block: Au g/t forecast
# Routing cutoff value:
cutoff_grade = 0.3  # g/t for this deposit

for block in mining_blocks:
    predicted_grade = model.predict(block.features)
    block.destination = 'mill' if predicted_grade >= cutoff_grade else 'waste'

Ore/Waste Misclassification:

  • False positive (waste to processing): mill power loss, dilution
  • False negative (ore to waste): metal loss forever ROC analysis: threshold optimized with economic error weights.

Reconciliation: Compare predicted grade to actual from laboratory analysis. Systematic bias → model recalibration. KPI: global error < ±5%.

Validation and Metrics

Cross-Validation with Spatial Partition: Standard k-fold → spatial correlation leakage. Use:

  • Spatial Block CV: blocks divided by geographic quadrants
  • Leave-One-Block-Out: full validation by block exclusion

Metrics:

Metric Description
RMSE grade g/t or % deviation
Slope of regression predicted vs. actual (ideal = 1.0)
E-Type variance conditional estimation variance
Reconciliation factor forecast vs. mining by periods

Comparison with kriging: With sufficient drill holes ML doesn't always beat OK. ML advantage: use secondary variables + nonlinear interactions in complex geological settings.

Timeline: basic geostatistical model + XGBoost grade estimation + routing block model — 5-7 weeks. Full system with 3D geophysical data, real-time XRF integration, reconciliation pipeline — 3-4 months.