Skip to content
Back to skills

Open Set Malware Eval

ASecurity

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}$).

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 11, 2026
researchpythongotestingperformance

Security analysis

A100/100

Scanned September 11, 2026

npx -y skills add qhjqhj00/research-skills-pool --skill open-set-malware-eval --agent claude-code

Installs 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 with every re-scan.

Security grade badge for Open Set Malware Eval
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/qhjqhj00-open-set-malware-eval/badge)](https://www.skillsdirectory.com/skills/qhjqhj00-open-set-malware-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: 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

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.