def get_binning_information()

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"]