def get_models_performance_by_segment()

in bindings/python-compute/performance_comparison.py [0:0]


    def get_models_performance_by_segment(self):
        segments_list = []
        for s in range(self.n_segments):
            segment_mask = (self.segment_ids == s)
            segment_dict = {
                'segmentId': 'segment_' + str(s),
                'numDataPoints': segment_mask.sum(),
                'dataIds': self.uuid[segment_mask].tolist()
                # 'dataIds': np.where(self.segment_ids == c)[0].tolist()
            }
            models_list = []
            models_df = self.metric_df.loc[segment_mask]
            models_df = models_df[[c for c in models_df.columns if c.startswith('model_')]]

            for m in models_df.columns:
                model_dict = {
                    'modelId': m,
                    'modelName': self.model_meta[m],
                    'percentiles': percentiles_func(models_df[m]),
                    'density': density_func(models_df[m])
                }
                models_list.append(model_dict)

            segment_dict['modelsPerformance'] = models_list
            segments_list.append(segment_dict)

        return segments_list