Learning Accurate Decision Trees with Bandit Feedback via Quantized Gradient Descent
- Install necessary packages
Create a new conda environment named dgt_env with python==3.6.8, pytorch==1.7.0 and install all dependencies inside:
$ conda env create -f dgt_env.yml
$ conda activate dgt_env
- Change working directory to
src:
$ cd src
- Run the algorithm
To reproduce some of our results, please run bash run.sh.
- The script by default runs our algorithm with height 6 on
ailerons. Commands forabalone,satimage, andpendigitsare commented out. - To change height of the tree learnt, change the argument corresponding to
--heightflag. - The
--proc_per_gpuoption denotes how many processes to run per GPU. It defaults to 4 which is ideal for a typical GPU but on a GPU with small memory, reducing it from 4 might be required. - The
--num_gpuoption denotes how many GPUs to parallelize over (and assumes device ordinal of GPUs start with 0). It defaults to 1.
Note: For abalone dataset we report the final performance across 5 different shuffles.
- Check Results
Final scores, i.e. mean test RMSE/Accuracy and standard deviation, can be found in the file ./out/exp@{dataset}_{height}@{start_time}/meanstd-exps/meanstd-run-summary.csv under the columns test_acc_mean and test_acc_std.