Replicar el pipeline¶
¿No usas Python a diario?
Empieza por GeoIA (navegador, puedes cargar collar / assay / espectro) o por Colab. Esta página es el camino con código en tu máquina.
En este repositorio¶
pip install -e ".[dev]"
python -m alteration_ml.cli generate --holes 24 --seed 42
python -m alteration_ml.cli run --profile thesis
pytest
Cuadernos (mismas fases que GeoIA):
notebooks/00_colab_pipeline.ipynb— pipeline completo (Google Colab)notebooks/01_eda_espectral_geoquimica.ipynb— tabla y ensamblesnotebooks/02_unsupervised_ensambles.ipynb— Fase 1 (PCA, dendrograma, k = 5)notebooks/03_supervised_clasificacion.ipynb— Fase 2 (RF, kNN, MLP, SVM)
En tus sondajes¶
Prepara un CSV con al menos:
sample_id, holeid, from_m, to_m, x, y, z,
WhiteMica, Chlorite, Carbonate, Epidote, Kaolinite, Dickite, Montmor,
Alunite, Gypsum, Pyrophyllite, Diaspore, Zunyite, Water_silica,
Hematite, Goethite, Au_ppm, As_ppm, S_pct, ... , MOD_ALT, labeled
En GeoIA puedes cargar esas tablas sin código (collar + survey + assay +
espectral, o un CSV de tramos con XYZ) y firmar MOD_ALT en el PCA. El
paquete Python sirve cuando quieres los hiperparámetros publicados y tests.
MOD_ALT puede ser nulo en tramos ciegos; labeled=False los excluye del
entrenamiento.
import pandas as pd
from alteration_ml.preprocess import prepare_feature_matrix
from alteration_ml.unsupervised import fit_pca, fit_kmeans
from alteration_ml.supervised import split_labeled, train_models, predict_frame
from alteration_ml.evaluate import evaluate_model, metrics_table
df = pd.read_csv("mis_datos.csv")
spec, spec_z, _ = prepare_feature_matrix(df, feature_kind="spectral")
chem, chem_z, _ = prepare_feature_matrix(df, feature_kind="chemistry")
pca, scores, _ = fit_pca(spec[spec_z].to_numpy())
_, clusters, sil = fit_kmeans(spec[spec_z].to_numpy(), n_clusters=5)
labeled = chem[chem["labeled"] == True]
split = split_labeled(labeled, chem_z)
models = train_models(split, profile="robust")
print(metrics_table({n: evaluate_model(m, split.X_test, split.y_test) for n, m in models.items()}))
Adaptaciones frecuentes¶
| Situación | Qué tocar |
|---|---|
| Otro ensamble (p. ej. sin skarn) | Recorta DOMAINS y reetiqueta MOD_ALT |
| Solo geoquímica, sin SWIR | Omite K-Means; el supervisado sigue en pie si hay etiquetas de log |
| Solo SWIR, sin química | Usa clustering como producto; no hay RF geoquímico |
| Clases aún más desbalanceadas | class_weight="balanced" ya está; prueba robust |
| Validación espacial | Parte por holeid, no por fila |
No subas a GitHub tablas reales. En el issue de replicación basta el tipo de sistema, el tamaño de muestra y las métricas.
Siguiente: Opiniones y réplicas si ya corriste el flujo, o GeoIA / Colab si aún no.