else: #le.fit(data[column_names[feature[node]]]) le_name_mapping = mapp[column_names[feature[node]]][0] #print(le_name_mapping) names=[k for k,v in le_name_mapping.items() if v >=threshold[node]] mask += "({} is in {}) \t ".format(column_names[feature[node]], names) # We insert the & at the right places mask = mask.replace("\t", "&", mask.count("\t") - 1) mask = mask.replace("\t", "") return mask # COMMAND ---------- import numpy as np # Leaves leave_id = clf.apply(df_encoded) paths ={} for leaf in np.unique(leave_id): path_leaf = [] find_path(0, path_leaf, leaf) paths[leaf] = np.unique(np.sort(path_leaf)) rules_columns = {} for key in paths: rules_columns[key] = get_rule2(paths[key], df_encoded.columns) # COMMAND ---------- rules[7575]