def experiment_details(self, user, metric, sort, task, event_type, sha1, n): session = self.Session() results = [] metrics = listify(metric) users = listify(user) metrics_to_add = [metrics[0]] if len(metrics) == 1 else [] phase = self.event2phase(event_type) hits = session.query(Experiment).filter(Experiment.sha1 == sha1). \ filter(Experiment.task == task) for exp in hits: for event in exp.events: if event.phase == phase: result = [ exp.id, exp.username, exp.label, exp.dataset, exp.sha1, exp.date ] for m in self._get_filtered_metrics( event.metrics, metrics): result += [m.value] if m.label not in metrics_to_add: metrics_to_add += [m.label] results.append(result) cols = ['id', 'username', 'label', 'dataset', 'sha1', 'date' ] + metrics_to_add result_frame = pd.DataFrame(results, columns=cols) return df_experimental_details(result_frame, sha1, users, sort, metric, n)
def experiment_details(self, user, metric, sort, task, event_type, sha1, n): metrics = listify(metric) coll = self.db[task] users = listify(user) query = self._update_query({}, username=users, sha1=sha1) projection = self._update_projection(event_type=event_type) result_frame = self._generate_data_frame(coll, metrics=metrics, query=query, projection=projection, event_type=event_type) return df_experimental_details(result_frame, sha1, users, sort, metric, n)
def experiment_details(self, user, metric, sort, task, event_type, sha1, n): session = self.Session() results = [] metrics = listify(metric) users = listify(user) metrics_to_add = [metrics[0]] if len(metrics) == 1 else [] phase = self.event2phase(event_type) hits = session.query(Experiment).filter(Experiment.sha1 == sha1). \ filter(Experiment.task == task) for exp in hits: for event in exp.events: if event.phase == phase: result = [exp.id, exp.username, exp.label, exp.dataset, exp.sha1, exp.date] for m in self._get_filtered_metrics(event.metrics, metrics): result += [m.value] if m.label not in metrics_to_add: metrics_to_add += [m.label] results.append(result) cols = ['id', 'username', 'label', 'dataset', 'sha1', 'date'] + metrics_to_add result_frame = pd.DataFrame(results, columns=cols) return df_experimental_details(result_frame, sha1, users, sort, metric, n)