Negative Set

A negative set defines examples treated as inactive, irrelevant, non-binding, or low-quality. In molecular ML, negative construction is often the benchmark, not a detail.

The key distinction is provenance:

An unmeasured molecule is unknown, not automatically inactive.

Common Sources

SourceWhat It SupportsMain Risk
measured inactive examplesassay-specific inactive classificationassay threshold, censoring, and replicate handling dominate
property-matched decoysvirtual-screening enrichment benchmarkdecoys may be separable by artifacts or too easy
random library moleculesbroad retrieval stress testunrealistic prevalence and trivial negatives
assumed negatives from missing labelsweak supervision onlyunknowns are mislabeled as true negatives
cross-target negativestarget-conditioned selectivity taskshidden activity against the target may be unmeasured

Label Semantics

Negative construction should preserve the distinction:

where is an assay-specific activity threshold. A benchmark should state whether a negative is measured inactive, censored below a threshold, unobserved, or sampled as a decoy.

Evaluation Pattern

FieldRequired Detail
negative provenancemeasured, decoy, random, assumed, cross-target, or generated
prevalencenatural prevalence or rebalanced benchmark prevalence
property matchingsize, charge, hydrophobicity, topology, and scaffold controls
split unitscaffold, target, assay/source, temporal, or complex-pair split
baselinesimple property, fingerprint, similarity, or docking baseline
metricenrichment, ranking, classification, calibration, or decision utility

Checks

  • Are negatives experimentally measured or assumed?
  • Are decoys separable by trivial properties such as size, charge, or hydrophobicity?
  • Is performance reported separately for measured inactives and decoys?
  • Does the active threshold match the assay and task?
  • Would a simple property-only or fingerprint baseline solve the benchmark?
  • Is the evaluation prevalence the same as the deployment prevalence?
  • Are missing labels excluded, modeled as unknown, or incorrectly converted to inactive?