Logo Lanfrica

ericdforson-bot/chagupani_mpm

Domaine:

environment and energy
Créateur:
eri
Hôte:
Mineral Prospectivity Modeling over Chagupani Area of Ghana's Northern Parts # Chagupani MPM — reproducibility code Modelling code for the machine-learning mineral-prospectivity study of the Chagupani gold deposit, northwestern Ghana (GBM vs Naïve Bayes). > **Data.** The airborne geophysical and stream-sediment geochemical datasets are > proprietary to **Azumah Resources Limited** and are **not** distributed here; they > are available from the corresponding author on reasonable request and with the > data owner's permission. This repository reproduces the **workflow**, and can > generate a **synthetic** dataset for demonstration (see below). ## Files - `aux_func.py` — core functions (data loading, models, metrics, log-odds, DeLong, consensus/occurrence, IDW cross-validation). - `chagupani_mpm.py` — top-level workflow: `reproduce_all()`, `summary_statistics()`, `make_synthetic()`. ## Install ```bash pip install -r requirements.txt ``` ## Configure Copy `.env.example` to `.env` and edit the paths/values: ```bash cp .env.example .env ``` A `.env` file **must** exist in the working directory before running. ## Reproduce the published results (exact) ```python import chagupani_mpm as mpm data = mpm.load_data() split = mpm.split_data(data["X"], data["y"]) # fit models fixed to the reported Table 2 optima -> exact, version-independent gbm, nb = mpm.fit_frozen_models(split["X_train"], split["y_train"]) mpm.reproduce_all(data, split, gbm, nb) ``` `reproduce_all()` prints Tables 3 & 4, the DeLong test, the arsenic–gold correlation and the consensus/occurrence results, and **checks them against the published numbers** (AUC 0.88/0.85, arsenic ≈99.9%, occurrence capture ≈98.3%). ## Re-run the hyperparameter search (Table 2) ```python gbm, nb, gbm_cv, nb_cv = mpm.gridsearch_models(split["X_train"], split["y_train"]) mpm.reproduce_all(data, split, gbm, nb, gbm_cv, nb_cv) ``` Note: re-running `GridSearchCV` may select slightly different optima under a different scikit-learn version. For exact reproduction of the paper, use `fit_frozen_models()` abo …