Evaluates a model's ability to classify malware into known families while simultaneously detecting instances belonging to novel, unseen families in an open-set scenario. Use when the user wants to benchmark on BIG 2015, Mailing, MAL-100, or asks about evaluating this task. Reports classification accuracy ($C_{Acc}$).
Scanned 9/11/2026
Install to Claude Code
npx -y skills add qhjqhj00/research-skills-pool --skill open-set-malware-eval --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Open Set Malware Eval?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/qhjqhj00-open-set-malware-eval)More formats (shields.io, HTML) on the badges page.
---
name: open-set-malware-eval
description: Evaluates a model's ability to classify malware into known families while simultaneously detecting instances belonging to novel, unseen families in an open-set scenario. Use when the user wants to benchmark on BIG 2015, Mailing, MAL-100, or asks about evaluating this task. Reports classification accuracy ($C_{Acc}$).
metadata:
skill_kind: dataset_eval
source_arxiv: 2305.01236
bibtex_key: guo2023cnsnet
confidence: high
---
# open-set-malware-eval
> CNS-Net: Conservative Novelty Synthesizing Network for Malware Recognition in an Open-set Scenario — Jingcai Guo et al. (2023) (arXiv:2305.01236, 2023)
## What this evaluates
Evaluates a model's ability to classify malware into known families while simultaneously detecting instances belonging to novel, unseen families in an open-set scenario.
## Datasets
- **BIG 2015** — total 10868; splits: train (6900), test (3968)
- **Mailing** — total 9339; splits: train (6400), test (2939)
- **MAL-100** — total 56481; splits: train (31523), test (24958)
## Metrics
- `classification accuracy ($C_{Acc}$)` **(primary)** — range: percent
- Calculated as $N_{correct} / N_{instance}$, where $N_{correct}$ is the number of correctly classified known malware instances and $N_{instance}$ is the total number of testing known instances.
- `detection accuracy ($D_{Acc}$)` — range: percent
- Calculated as $(TPR_{(K)} + TNR_{(U)}) / 2$, where $TPR_{(K)}$ is the true positive rate for known families and $TNR_{(U)}$ is the true negative rate for unknown families.
## Input / output format
**Input**: Malware instances represented as 25×25 grayscale images (or 1D vectors for some baselines) derived from 8 groups of raw characteristics including PE header info, COFF header, imported/exported functions, section info, byte histogram, byte-entropy histogram, and printable-string info.
**Output**: Predicted malware family label for known instances, and a binary known/unknown decision for detection.
## Scoring recipe
```python
def compute_C_Acc(preds, golds):
correct = sum(1 for p, g in zip(preds, golds) if p == g)
return correct / len(golds)
def compute_D_Acc(preds, golds, is_unknown):
tp_k = sum(1 for p, g, u in zip(preds, golds, is_unknown) if p == g and not u)
fn_k = sum(1 for p, g, u in zip(preds, golds, is_unknown) if p != g and not u)
tpr_k = tp_k / (tp_k + fn_k) if (tp_k + fn_k) > 0 else 0
tn_u = sum(1 for p, g, u in zip(preds, golds, is_unknown) if p == 'unknown' and u)
fp_u = sum(1 for p, g, u in zip(preds, golds, is_unknown) if p != 'unknown' and u)
tnr_u = tn_u / (tn_u + fp_u) if (tn_u + fp_u) > 0 else 0
return (tpr_k + tnr_u) / 2
```
## Common pitfalls
- Data splitting is not standardized across baselines; some competitors use different train/test ratios or only report results on known families.
- The $D_{Acc}$ metric averages TPR for knowns and TNR for unknowns, which can mask severe imbalance in detection performance between known and unknown classes.
- Resizing malware feature vectors to fixed 25×25 or 32×32 images may discard fine-grained structural details present in the original 622-dimensional feature space.
## Evidence (verbatim from paper)
> The performance of open-set malware recognition can be evaluated by two parallel tasks including the multi-families classification and the unknown detection. The performance is evaluated by the classification accuracy $C_{Acc}$ defined as: $C_{Acc} = N_{correct} / N_{instance}$... The detection accuracy $D_{Acc}$ is then calculated as: $D_{Acc} = (TPR_{(K)} + TNR_{(U)}) / 2$.
## Citation
```bibtex
@misc{guo2023cnsnet,
title={CNS-Net: Conservative Novelty Synthesizing Network for Malware Recognition in an Open-set Scenario},
author={Jingcai Guo et al. (2023)},
year={2023},
note={arXiv:2305.01236}
}
```
- arXiv: 2305.01236
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!