How abdull66-hash/detection-under-budgets works
This repository is a research project evaluating flow-sampling policies for network-attack monitoring. Its principal workflow loads and cleans a dataset, splits it into training, scorer, and test sets, trains attack models, applies sampling policies, and evaluates flow- and campaign-level detection; it also compares a second regime that samples training data. Baselines, diagnostic checks, regime analyses, summary tables, and report figures are supporting research branches. Source excerpts show the experiment orchestration and key helpers; edges for other modules rely only on the SOURCE INDEX, so unsampled behavior is not inferred.
Main entry points: run_regime2.py Sampled-train regime · run_experiment.py Full-train regime · preprocess.py Clean splits · baseline.py Baseline runs
Components 20
Data preparation
- Clean splits
p1_monitoring_budget/src/preprocess.py
Experiments
- Sampling policies
p1_monitoring_budget/src/sampling.py - Campaign metrics
p1_monitoring_budget/src/campaigns.py - Attack models
p1_monitoring_budget/src/models.py - Baseline runs
p1_monitoring_budget/src/baseline.py - Full-train regime
p1_monitoring_budget/src/run_experiment.py - Sampled-train regime
p1_monitoring_budget/src/run_regime2.py
Analysis and reporting
- Column checks
p1_monitoring_budget/src/column_check.py - Host-keyed spread
p1_monitoring_budget/src/host_keyed_spread.py - Regime analysis
p1_monitoring_budget/src/analyze_regimes.py - Result analysis
p1_monitoring_budget/src/analyze.py - Summary tables
p1_monitoring_budget/src/summary_table.py - Report figures
p1_monitoring_budget/src/figures.py - Experiment results
p1_monitoring_budget/results
Shared helpers
- File helpers
common/io.py - Metric helpers
common/metrics.py - Seed control
common/seed.py - Plot helpers
common/plotting.py
Other components
- Researcher
- Flow dataset
Connections 41
- Researcher → Baseline runs: runs baseline
p1_monitoring_budget/src/baseline.py - Researcher → Full-train regime: runs experiment
p1_monitoring_budget/src/run_experiment.py - Researcher → Sampled-train regime: runs regime
p1_monitoring_budget/src/run_regime2.py - Flow dataset → Clean splits: loads and cleans
p1_monitoring_budget/src/preprocess.py - Clean splits → File helpers: loads parquet
p1_monitoring_budget/src/preprocess.py - Baseline runs → Clean splits: loads splits
p1_monitoring_budget/src/baseline.py - Baseline runs → Attack models: builds models
p1_monitoring_budget/src/baseline.py - Baseline runs → Metric helpers: scores predictions
p1_monitoring_budget/src/baseline.py - Baseline runs → Seed control: sets seeds
p1_monitoring_budget/src/baseline.py - Full-train regime → Clean splits: loads splits
p1_monitoring_budget/src/run_experiment.py - Full-train regime → Sampling policies: builds masks
p1_monitoring_budget/src/run_experiment.py - Full-train regime → Campaign metrics: measures campaigns
p1_monitoring_budget/src/run_experiment.py - Full-train regime → Attack models: trains models
p1_monitoring_budget/src/run_experiment.py - Full-train regime → Metric helpers: scores predictions
p1_monitoring_budget/src/run_experiment.py - Full-train regime → Seed control: sets seeds
p1_monitoring_budget/src/run_experiment.py - Full-train regime → File helpers: saves results
p1_monitoring_budget/src/run_experiment.py - Sampled-train regime → Clean splits: loads splits
p1_monitoring_budget/src/run_regime2.py - Sampled-train regime → Sampling policies: builds masks
p1_monitoring_budget/src/run_regime2.py - Sampled-train regime → Campaign metrics: measures campaigns
p1_monitoring_budget/src/run_regime2.py - Sampled-train regime → Attack models: trains models
p1_monitoring_budget/src/run_regime2.py - Sampled-train regime → Full-train regime: reuses masks
p1_monitoring_budget/src/run_regime2.py - Sampled-train regime → Metric helpers: scores predictions
p1_monitoring_budget/src/run_regime2.py - Sampled-train regime → Seed control: sets seeds
p1_monitoring_budget/src/run_regime2.py - Sampled-train regime → File helpers: saves results
p1_monitoring_budget/src/run_regime2.py - Baseline runs → Experiment results: writes results
p1_monitoring_budget/src/baseline.py - Full-train regime → Experiment results: writes results
p1_monitoring_budget/src/run_experiment.py - Sampled-train regime → Experiment results: writes results
p1_monitoring_budget/src/run_regime2.py - Column checks → Baseline runs: uses baseline
p1_monitoring_budget/src/column_check.py - Host-keyed spread → Sampling policies: uses sampling
p1_monitoring_budget/src/host_keyed_spread.py - Regime analysis → Campaign metrics: uses campaign logic
p1_monitoring_budget/src/analyze_regimes.py - Regime analysis → Clean splits: uses preprocessing
p1_monitoring_budget/src/analyze_regimes.py - Result analysis → Metric helpers: uses metrics
p1_monitoring_budget/src/analyze.py - Summary tables → Clean splits: uses preprocessing
p1_monitoring_budget/src/summary_table.py - Report figures → Clean splits: loads split data
p1_monitoring_budget/src/figures.py - Report figures → Plot helpers: styles and saves
p1_monitoring_budget/src/figures.py - Report figures → Experiment results: reads and writes figures
p1_monitoring_budget/src/figures.py - Result analysis → File helpers: uses file helpers
p1_monitoring_budget/src/analyze.py - Regime analysis → File helpers: uses file helpers
p1_monitoring_budget/src/analyze_regimes.py - Summary tables → File helpers: uses file helpers
p1_monitoring_budget/src/summary_table.py - Column checks → File helpers: uses file helpers
p1_monitoring_budget/src/column_check.py - Host-keyed spread → File helpers: uses file helpers
p1_monitoring_budget/src/host_keyed_spread.py