# Step 1: Process CSV files

(Optional) Run `python apply_pca.py` with the appropriate arguments first to apply PCA to obtain a new csv dataset with PCA applied.

Run `python process_csv.py` with the appropriate arguments to apply normalization and to convert the data into a numpy array.

Run `python apply_noise.py` with the appropriate arguments to obtain many draws of the noised data.

# Step 2: Calculate the size of the Rashomon set

Run `python calculate_rashomon_set.py` with the appropriate arguments for each noise draw. We highly recommend parallelizing this step. 

Note that the listed number of patterns in the Rashomon set is an overestimate since the best model calculated is usually greater than the actual optimal model. The correct number of patterns can be recovered by examining the saved counts for each loss.

# Step 3: Graph the aggregate results and diversity

Run `python graph_results.py` with the appropriate arguments to plot the average size and average diversity of the Rashomon set.
