Skip to content
Back to skills

Lithology Classification Eval

ASecurity

Evaluates a model's ability to perform multi-class sequence labeling on multi-channel well-log time series data for lithology classification. It tests the model's capacity to handle diverse geological settings, manage distribution shifts, and produce stratigraphically plausible predictions. Use when the user wants to benchmark on SEAM, Facies, FORCE, GeoLink, or asks about evaluating this task. Reports Weighted F1.

  • 3 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 11, 2026
businesspythongitperformance

Security analysis

A100/100

Scanned September 11, 2026

npx -y skills add qhjqhj00/research-skills-pool --skill lithology-classification-eval --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Lithology Classification Eval?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Lithology Classification Eval
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/qhjqhj00-lithology-classification-eval/badge)](https://www.skillsdirectory.com/skills/qhjqhj00-lithology-classification-eval)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: lithology-classification-eval
description: Evaluates a model's ability to perform multi-class sequence labeling on multi-channel well-log time series data for lithology classification. It tests the model's capacity to handle diverse geological settings, manage distribution shifts, and produce stratigraphically plausible predictions. Use when the user wants to benchmark on SEAM, Facies, FORCE, GeoLink, or asks about evaluating this task. Reports Weighted F1.
metadata:
  skill_kind: dataset_eval
  source_arxiv: 2604.21501
  bibtex_key: zhou2026geomind
  confidence: high
---

# lithology-classification-eval

> GeoMind: An Agentic Workflow for Lithology Classification with Reasoned Tool Invocation — Zhou et al. (2026) (arXiv:2604.21501, 2026)

## What this evaluates

Evaluates a model's ability to perform multi-class sequence labeling on multi-channel well-log time series data for lithology classification. It tests the model's capacity to handle diverse geological settings, manage distribution shifts, and produce stratigraphically plausible predictions.

## Datasets

- **SEAM** — total 7092; splits: unspecified (-1)
- **Facies** — total 3164; splits: unspecified (-1)
- **FORCE** — total 52766; splits: unspecified (-1)
- **GeoLink** — total 580205; splits: unspecified (-1); repo https://github.com/LukasMosser/geolink_dataset

## Metrics

- `Weighted F1` **(primary)** — range: [0, 1]
  - Weighted average of per-class F1 scores, where each class's F1 is weighted by the number of true samples in that class. F1 for a class is the harmonic mean of its precision and recall.
- `Weighted Precision` — range: [0, 1]
  - Weighted average of per-class precision scores, weighted by class support (number of true samples).
- `Weighted Recall` — range: [0, 1]
  - Weighted average of per-class recall scores, weighted by class support.

## Input / output format

**Input**: Depth-aligned multi-channel well-log time series sequences (e.g., gamma ray, resistivity, density) with corresponding lithology labels.

**Output**: Predicted lithology class label for each depth/sample point in the sequence.

## Scoring recipe

```python
def compute_weighted_f1(y_true, y_pred, num_classes):
    precisions, recalls, f1s, weights = [], [], [], []
    for c in range(num_classes):
        tp = np.sum((y_true == c) & (y_pred == c))
        fp = np.sum((y_true != c) & (y_pred == c))
        fn = np.sum((y_true == c) & (y_pred != c))
        prec = tp / (tp + fp) if (tp + fp) > 0 else 0.0
        rec = tp / (tp + fn) if (tp + fn) > 0 else 0.0
        f1 = 2 * prec * rec / (prec + rec) if (prec + rec) > 0 else 0.0
        precisions.append(prec)
        recalls.append(rec)
        f1s.append(f1)
        weights.append(np.sum(y_true == c))
    return np.average(f1s, weights=weights)
```

## Common pitfalls

- Using macro or micro averaging instead of the specified class-weighted average, which skews results on imbalanced geological datasets.
- Evaluating sequence labeling without accounting for stratigraphic fragmentation (salt-and-pepper noise), which is a key geological plausibility metric reported in the paper.
- Comparing models without aligning input preprocessing protocols, as the numerical module requires specific normalization and tool invocation steps.

## Evidence (verbatim from paper)

> To evaluate the lithology classification performances, here we select three widely used metrics, i.e., Precision, Recall, and F1 measure. Considering our task is a multi-class classification problem, we use the weighted average scores to evaluate the performances of our proposed methods and all baselines. Specifically, we weight the metrics of each class by the number of samples from that class.

## Citation

```bibtex
@misc{zhou2026geomind,
  title={GeoMind: An Agentic Workflow for Lithology Classification with Reasoned Tool Invocation},
  author={Zhou et al. (2026)},
  year={2026},
  note={arXiv:2604.21501}
}
```

- arXiv: 2604.21501

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.