This benchmark evaluates the accuracy of malware family classification models and antivirus-based labeling tools on a large, expert-verified dataset. It probes a model's ability to correctly assign ground-truth family labels to malware samples, including handling open-set noise and alias resolution. Use when the user wants to benchmark on MOTIF, or asks about evaluating this task. Reports accuracy.
Scanned 9/11/2026
Install to Claude Code
npx -y skills add qhjqhj00/research-skills-pool --skill motif-eval --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Motif Eval?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/qhjqhj00-motif-eval)More formats (shields.io, HTML) on the badges page.
---
name: motif-eval
description: This benchmark evaluates the accuracy of malware family classification models and antivirus-based labeling tools on a large, expert-verified dataset. It probes a model's ability to correctly assign ground-truth family labels to malware samples, including handling open-set noise and alias resolution. Use when the user wants to benchmark on MOTIF, or asks about evaluating this task. Reports accuracy.
metadata:
skill_kind: dataset_eval
source_arxiv: 2111.15031
bibtex_key: joyce2021motif
confidence: high
---
# motif-eval
> MOTIF: A Large Malware Reference Dataset with Ground Truth Family Labels — Joyce et al. (2021) (arXiv:2111.15031, 2021)
## What this evaluates
This benchmark evaluates the accuracy of malware family classification models and antivirus-based labeling tools on a large, expert-verified dataset. It probes a model's ability to correctly assign ground-truth family labels to malware samples, including handling open-set noise and alias resolution.
## Datasets
- **MOTIF** — total 3095; splits: train (-1), test (-1); repo https://github.com/boozallen/MOTIF
## Metrics
- `accuracy` **(primary)** — range: [0, 1]
- Correct predictions divided by total predictions. Standard classification accuracy.
- `precision` — range: [0, 1]
- True positives divided by all predicted positives. Measures the proportion of predicted family labels that are correct.
- `recall` — range: [0, 1]
- True positives divided by all actual positives. Measures the proportion of actual family labels correctly identified.
- `f1_measure` — range: [0, 1]
- Harmonic mean of precision and recall: 2 * (precision * recall) / (precision + recall).
## Input / output format
**Input**: Malware samples provided as PE files, disarmed binaries, or pre-extracted EMBER feature vectors.
**Output**: A single predicted malware family label (string) per sample.
## Scoring recipe
```python
def score(predictions, gold):
accuracy = sum(p == g for p, g in zip(predictions, gold)) / len(gold)
precision = precision_score(gold, predictions, average='macro')
recall = recall_score(gold, predictions, average='macro')
f1 = f1_score(gold, predictions, average='macro')
return {'accuracy': accuracy, 'precision': precision, 'recall': recall, 'f1_measure': f1}
```
## Common pitfalls
- Using precision and recall as clustering metrics (grouping samples together) rather than strict label matching can artificially inflate scores and hide incorrect family assignments.
- Assuming antivirus majority voting yields high accuracy; the benchmark shows it only reaches ~62% accuracy due to open-set noise and alias mismatches.
- Including singleton families (families with only one sample) in both training and test splits causes data leakage and invalidates cross-validation results.
## Evidence (verbatim from paper)
> Antivirus majority voting resulted in 1,178 reports with the correct family, 719 reports with an incorrect family, and 1,198 reports where no family was the clear majority. After discarding the scan reports with no majority (as is common practice), antivirus majority voting resulted in only 62.10% accuracy.
## Citation
```bibtex
@misc{joyce2021motif,
title={MOTIF: A Large Malware Reference Dataset with Ground Truth Family Labels},
author={Joyce et al. (2021)},
year={2021},
note={arXiv:2111.15031}
}
```
- arXiv: 2111.15031
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!