in src/responsibleai/rai_analyse/_score_card/_rai_insight_data.py [0:0]
def get_binning_information(self, target_feature):
dataset = self.data.get_test()
if target_feature in self.data.get_raiinsight().categorical_features:
def relabel(item, topnlabels):
if item in topnlabels:
return item
return self.other_class
total_labels = dataset[target_feature].nunique()
topnlabels = dataset[target_feature].value_counts().nlargest(3).index
if len(topnlabels) >= total_labels:
all_labels = topnlabels.to_list()
else:
all_labels = topnlabels.to_list() + [self.other_class]
return (
all_labels,
dataset[target_feature].apply(relabel, args=(topnlabels,)),
)
else:
df = pd.DataFrame()
df["label"] = pd.qcut(dataset[target_feature], 4, duplicates="drop")
df["label"] = df["label"].apply(
lambda x: "{} to {}".format(round(x.left, 2), round(x.right, 2))
)
return df["label"].value_counts().index.to_list(), df["label"]