Skip to content

INFORMSJoC/2024.0884

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

INFORMS Journal on Computing Logo

Integrating Data Cleaning and Robustification: A Study on Linear Regression

This archive is distributed in association with the INFORMS Journal on Computing under the MIT License.

The software and data in this repository are a snapshot of the code and data that were used in the research reported on in the paper Integrating Data Cleaning and Robustification: A Study on Linear Regression by U. T. Bilgic, X. Qian, B. Zeng.

Cite

To cite the contents of this repository, please cite both the paper and this repository using their respective DOIs.

Paper DOI:

https://doi.org/10.1287/ijoc.2024.0884

Code repository DOI:

https://doi.org/10.1287/ijoc.2024.0884.cd

BibTeX for this repository snapshot:

@misc{Bilgic2026integrating,
  author = {Bilgic, Utku Tarik and Qian, Xiaoning and Zeng, Bo},
  publisher = {INFORMS Journal on Computing},
  title = {Integrating Data Cleaning and Robustification: A Study on Linear Regression},
  year = {2026},
  doi = {10.1287/ijoc.2024.0884.cd},
  url = {https://github.com/INFORMSJoC/2024.0884},
  note = {Available for download at https://github.com/INFORMSJoC/2024.0884},
}

Description

This repository contains the Python implementation of the integrated framework that combines optimistic and pessimistic optimization strategies to handle outliers and robustification on linear regression problem.

The experiments compare standard regression baselines with Cleaned Robust Optimization (C-RO) and Cleaned Distributionally Robust Optimization (C-DRO) approaches on synthetic data and UCI benchmark data sets. The repository includes experiments covering synthetic outlier settings, sensitivity to distributional assumptions, ADMM performance, outlier-size estimation, random UCI outliers, black-box and white-box poisoning attacks.

Repository Structure

.
├── README.md
├── AUTHORS
├── LICENSE
├── requirements.txt
├── data/
│   ├── README.md                         
│   ├── abalone/                          # Abalone UCI data set
│   ├── auto_mpg/                         # Auto MPG UCI data set
│   ├── wine_quality/                     # Wine Quality UCI data set
│   └── hyperparameters/                  # Tuned hyperparameter CSV files
├── scripts/
│   ├── README.md                         
│   ├── _common.py                        
│   ├── experiment1_synthetic.py          # Synthetic outlier experiments
│   ├── experiment2_normality.py          # Normality-sensitivity experiments
│   ├── experiment3_admm_performance.py   # ADMM performance comparisons
│   ├── experiment4_outlier_estimation.py # Outlier-size estimation experiments
│   ├── experiment5_uci_outliers.py       # UCI random-outlier experiments
│   ├── experiment6_blackbox_poisoning_attacks.py
│   │                                     # Black-box poisoning experiments
│   └── experiment7_nopt_poisoning.py     # White-box Nopt poisoning experiments
├── src/
    ├── README.md                         
    ├── __init__.py
    ├── DataGen.py                        # Synthetic/UCI data generation
    ├── Models.py                         # Regression and optimization models
    └── UCIdatasets.py                    # Fixed-size UCI data loader

The main directories are:

  • src/: model implementations, data generators, and UCI data-loading utilities.
  • scripts/: experiment drivers.
  • data/: local copies of the Abalone, Auto MPG, and Wine Quality UCI data sets, plus tuned hyperparameter CSV files under data/hyperparameters/.

Dependencies

The code requires Python 3.10+ and package dependencies are listed in requirements.txt. The optimization models require a working Gurobi installation and license.

Install dependencies with:

python -m pip install -r requirements.txt

Replicating Results

Run commands from the repository root. Each experiment script writes raw and summary CSV files to results/raw/ by default.

python scripts/experiment1_synthetic.py
python scripts/experiment2_normality.py
python scripts/experiment3_admm_performance.py
python scripts/experiment4_outlier_estimation.py
python scripts/experiment5_uci_outliers.py
python scripts/experiment6_blackbox_poisoning_attacks.py
python scripts/experiment7_nopt_poisoning.py

The seven scripts are:

  • experiment1_synthetic.py: synthetic linear-regression experiments with response-only and feature-plus-response outliers (Table 1 and Online Appendix B.4).
  • experiment2_normality.py: sensitivity experiments that vary the non-normal component in the synthetic data-generating process (Data for Figure 4).
  • experiment3_admm_performance.py: ADMM performance experiments comparing ADMM-based solutions with exact MIP solutions (Online Appendix B.5).
  • experiment4_outlier_estimation.py: outlier-size estimation experiments using Algorithm A1 (Data for Figure 5).
  • experiment5_uci_outliers.py: UCI experiments with randomly injected outliers (Data for Figure 6).
  • experiment6_blackbox_poisoning_attacks.py: UCI experiments under black-box poisoning attacks (Table 2 and Online Appendix B.6).
  • experiment7_nopt_poisoning.py: UCI experiments under white-box Nopt poisoning attacks (Table 3 and Online Appendix B.6).

Some full experiment runs are computationally intensive. To verify the installation with small runs, use the scripts' command-line options. For example:

python scripts/experiment1_synthetic.py --scenario y --seed-start 0 --seed-stop 1 --n-train 20 --n-test 50
python scripts/experiment5_uci_outliers.py --datasets abalone --outlier-pcts 0.05 --seed-start 1000 --seed-stop 1001 --sample-size 30 --epoch 5 --skip-estimated-l --skip-neighbors

Use python scripts/<script-name>.py --help to see all available options.

Data

The UCI data used in the computational experiments are included under data/. See data/README.md for source citations and license information.

Results

Please view the main paper and Supplemental Material

Support

For questions about this repository, please contact the authors listed in AUTHORS.

About

No description, website, or topics provided.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages