This is a source code for AAAI 2019 paper Classification with Costly Features using Deep Reinforcement Learning wrote by Jaromír Janisch, Tomáš Pevný and Viliam Lisý: paper / slides / poster / code / blog
Updated version available: There is an enhanced version of the article under name Classification with Costly Features as a Sequential Decision-Making Problem (paper), which analyzes more settings (hard budget, lagrangian optimization of lambda and missing features). The code is available in the lagrange branch of this repository.
Cite as:
@inproceedings{janisch2019classification,
title={Classification with Costly Features using Deep Reinforcement Learning},
author={Janisch, Jaromír and Pevný, Tomáš and Lisý, Viliam},
booktitle={AAAI Conference on Artificial Intelligence},
year={2019}
}
Prerequisites:
- cuda capable hardware
- ubuntu 16.04
- cuda 8/9
- python 3.6 (numpy, pandas, pytorch 0.4)
Usage:
- use tools
tools/conv_*.py
to prepare datasets; read the headers of those files; data is expected to be in../data
- pretrained HPC models are in
trained_hpc
, or you can usetools/hpc_svm.py
to recreate them; they are needed in../data
- run
python3.6 main.py --dataset [dataset] --flambda [lambda] --use_hpc [0|1] --pretrain [0|1]
, choosedataset
fromconfig_datasets/
- the run will create multiple log files
run*.dat
- you can use octave or matlab to analyze them with
tools/debug.m
- you can also evaluate the agent on the test set with
eval.py --dataset [dataset] --flambda [lambda]