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