marsplus / Adversarial-Regression-with-Multiple-Learners

Code to replicate the experimental results in paper "Adversarial Regression with Multiple Learners" @ ICML 2018

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Adversarial Regression with Multiple Learners

This is the repository to reproduce the experimental results reported in the paper Adversarial Regression with Multiple Learners appeared in ICML 2018.

Overview

Currently, you can use this code to replicate the experimental results for redwine dataset (Figure 1, Figure 2, and Figure 7). The experimental results for other datasets can be similarly generated.

Installation

(Necessary: Python3.7 and conda)

  1. First, clone the project folder to your computer.
  2. Then, create an environment and activate it:
conda create -n multiple-learner python=3.7
conda activate multiple-learner
  1. After the environment is activated, install the following required packages:
    conda install numpy scipy pandas scikit-learn seaborn matplotlib
    pip install cvxpy
    pip install cvxopt
    

Run

  1. Inside the project folder, create a folder to store experimental outputs:
mkdir result/
  1. Enter into src/ folder, run the following command to generate experimental outputs:
./run_exp.sh
  1. Insider src/ folder, run the following command to generate Figure 1 (complete information), Figure 2 (incomplete information + over-estimatd z), and Figure 3 (incomplete information + under-estimated z):
python plot.py redwine
  1. I generated the figures on MacOS Mojave. If you see some error like the following, Try this solution:
libc++abi.dylib: terminating with uncaught exception of type NSException

Reference

@inproceedings{tong2018adversarial,
  title={Adversarial Regression with Multiple Learners},
  author={Tong, Liang and Yu, Sixie and Alfeld, Scott and others},
  booktitle={Proceedings of the 35th International Conference on Machine Learning (ICML)},
  pages={4946--4954},
  year={2018}
}

About

Code to replicate the experimental results in paper "Adversarial Regression with Multiple Learners" @ ICML 2018


Languages

Language:Python 96.0%Language:Shell 4.0%