in bindings/python-compute/performance_comparison.py [0:0]
def set_params(self, n_clusters=None, metric='performance', base_models=None, segment_filters=None):
is_manual = bool(segment_filters)
should_compute_metric = self.should_compute_metric(metric)
if should_compute_metric:
self.metric = metric
metric_df = self.loss_df.copy() if self.metric == 'performance' else self.pred_df.copy()
self.ipd = get_independent_preds(metric_df.columns)
# todo: consider cases with more than one class
self.metric_df = metric_df[self.ipd].rename(columns={cc: 'model_' + cc.split('_')[1] for cc in self.ipd})
if not is_manual:
self.n_clusters = n_clusters
self.n_segments = n_clusters
self.clustering_columns = get_independent_preds(self.metric_df.columns, base_models)
# todo: no need to compute each time. just need to get children_ property of the clustering model
self.compute_clusters()
else:
self.segment_filters = segment_filters
self.n_segments = len(segment_filters)
self.compute_explicit_segments()