Concrete Compressive Strength β€” Field-Trained RandomForest (Guangxi)

GitHub repo: https://github.com/Siddartha-DevOps/ConcreteMix.AI (source, training + reproduce scripts)

A scikit-learn RandomForestRegressor predicting concrete compressive strength (MPa) from mix proportions, trained on real construction-company field data (not a lab benchmark).

This is independent third-party field data from Guangxi, China. It is NOT India-specific and NOT proprietary to ConcreteMix.AI. It is published here as a real-world field-trained baseline, distinct from our UCI-benchmark model.

Training data

  • Dataset: Ke, Lu; Qiu, Ming (2024), "Dataset of compressive strength and slump of normal concrete", Mendeley Data, V1, DOI: 10.17632/zrsbhndz9f.1, License CC BY 4.0.
  • Origin: mix-proportion ledger of Guangxi Road and Bridge Group Road and Bridge Pavement Branch (China), November 2022.
  • Rows: 1,670 field mixes, 0 missing values.
  • Provenance: Source verified against the official Mendeley V1 release (SHA-256: f9a39a9e6f1745774966bb100eb498208968ab33831ad5c4a00d0d3b50c74d27) on 2026-08-02.

Evaluation (5-fold cross-validation, n=1,670)

Metric Value
RΒ² 0.883
RMSE 4.43 MPa
MAE 2.89 MPa

Honest in-domain CV numbers (not training-fit). For context, our UCI-trained model scores only RΒ²β‰ˆ0.21 when applied to this field data β€” the domain gap that motivates a field-trained model.

Inputs (9 features, order matters; no scaler β€” RF is scale-invariant)

  1. cement
  2. fine_aggregates
  3. coarse_aggregates
  4. water
  5. water_reducing_admixture
  6. fly_ash
  7. accelerating_agent
  8. silica_fume
  9. time_days (curing age)

Output: compressive strength in MPa. (Unlike the UCI model, this one keeps accelerating_agent and silica_fume, which the field data actually records.)

Usage

import numpy as np
from skops.io import load, get_untrusted_types
f = "field_model.skops"
model = load(f, trusted=get_untrusted_types(file=f))
# cement, fine, coarse, water, water_reducer, fly_ash, accelerator, silica_fume, age_days
x = np.array([[363, 866, 947, 179, 5.4, 23, 0.7, 0.2, 28]], dtype=float)
print(round(float(model.predict(x)[0]), 1), "MPa")

Intended use & limitations

  • Intended: strength estimates / baseline for normal concrete in a highway field-production context; a real-world counterpart to the UCI lab model.
  • Not for structural sign-off, QC acceptance, or code compliance β€” confirm with lab breaks.
  • Curing age is only 7–28 days in this data; do not use it for long-age (56/90/365-day) prediction.
  • Regional/material scope: Guangxi field materials and practices; transfer to other regions (or India) is unvalidated.
  • Strength range in training: 4.3–76.3 MPa; extrapolation beyond it is unreliable.
  • No calibrated prediction intervals bundled (point predictions only).

License

  • Model weights: MIT.
  • Training data: CC BY 4.0 β€” attribution: Ke, Lu; Qiu, Ming (2024), Mendeley Data, DOI 10.17632/zrsbhndz9f.1.

Citation

Ke, Lu; Qiu, Ming (2024). Dataset of compressive strength and slump of normal concrete. Mendeley Data, V1. DOI: 10.17632/zrsbhndz9f.1.

Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Evaluation results

  • r_squared on Compressive strength & slump of normal concrete (Ke & Qiu 2024)
    self-reported
    0.883
  • rmse on Compressive strength & slump of normal concrete (Ke & Qiu 2024)
    self-reported
    4.430
  • mae on Compressive strength & slump of normal concrete (Ke & Qiu 2024)
    self-reported
    2.890