Skip to content

Commit

Permalink
fix order of columns in query instance for kdtree (fix #303) (#304)
Browse files Browse the repository at this point in the history
Signed-off-by: Martin Lange <ml_ks@web.de>
  • Loading branch information
lange-martin committed Jun 27, 2022
1 parent 2eb8e54 commit 908f3e8
Showing 1 changed file with 8 additions and 1 deletion.
9 changes: 8 additions & 1 deletion dice_ml/explainer_interfaces/dice_KD.py
Original file line number Diff line number Diff line change
Expand Up @@ -223,9 +223,16 @@ def find_counterfactuals(self, data_df_copy, query_instance, query_instance_orig

# Making the one-hot-encoded version of query instance match the one-hot encoded version of the dataset
query_instance_df_dummies = pd.get_dummies(query_instance_orig)
for col in pd.get_dummies(data_df_copy[self.data_interface.feature_names]).columns:

data_df_columns = pd.get_dummies(data_df_copy[self.data_interface.feature_names]).columns
for col in data_df_columns:
if col not in query_instance_df_dummies.columns:
query_instance_df_dummies[col] = 0

# Fix order of columns in the query instance. This is necessary because KD-tree treats data as a simple array
# instead of a dataframe.
query_instance_df_dummies = query_instance_df_dummies.reindex(columns=data_df_columns)

self.final_cfs, cfs_preds = self.vary_valid(query_instance_df_dummies,
total_CFs,
features_to_vary,
Expand Down

0 comments on commit 908f3e8

Please sign in to comment.