def load(self, fname): _, extension = os.path.splitext(fname) if extension == '.pkl': return super().load(fname) elif extension == '.csv': return ScoreExport.from_csv(fname)
def next(self): self.__bounds() if self.i > len(self.items): raise StopIteration() label, fname, load = self.items[self.i] _, extension = os.path.splitext(fname) logger.info(label, fname, load) self.i += 1 if extension == '.csv': return (label, ScoreExport.from_csv(fname).roc()) obj = load(fname) return (label, self._get_export(obj))
def difference(self, args): base = load_pickle(args.diff[0]) p_args = [] args_ = args.diff[1:-1] args_ = [tuple(args_[i:i + 2]) for i in range(0, len(args_), 2)] for label, fname in args_: _, extension = os.path.splitext(fname) if extension == '.csv': scores = ScoreExport.from_csv(fname) elif extension == '.pkl': scores = load_pickle(fname) p_args.append((label, scores)) fname = self.f(args.diff[-1]) print(p_args) # other = [load_pickle(x) for x in args.diff[1:]] plots.performance.p_diff(base, p_args, fname)
def call(self, args): swap = None score_export = None if args.load: obj = self.load(args.load[0]) if isinstance(obj, SWAP): swap = obj score_export = swap.score_export() elif isinstance(obj, ScoreExport): score_export = obj if args.scores_from_csv: fname = args.scores_from_csv[0] score_export = ScoreExport.from_csv(fname) if args.run: swap = self.run_swap(args) score_export = swap.score_export() if swap is not None: if args.save: manifest = self.manifest(swap, args) self.save(swap, self.f(args.save[0]), manifest) if args.subject: fname = self.f(args.subject[0]) plots.traces.plot_subjects(swap.history_export(), fname) if args.user: fname = self.f(args.user[0]) plots.plot_user_cm(swap, fname) # if args.utraces: # fname = self.f(args.user[0]) # plots.traces.plot_user(swap, fname) if args.log: fname = self.f(args.log[0]) write_log(swap, fname) if args.stats: s = swap.stats_str() print(s) logger.debug(s) if args.test: from swap.utils.golds import GoldGetter gg = GoldGetter() logger.debug('applying new gold labels') swap.set_gold_labels(gg.golds) swap.process_changes() logger.debug('done') if args.test_reorder: self.reorder_classifications(swap) if args.export_user_scores: fname = self.f(args.export_user_scores[0]) self.export_user_scores(swap, fname) if score_export is not None: if args.save_scores: fname = self.f(args.save_scores[0]) self.save(score_export, fname) if args.hist: fname = self.f(args.hist[0]) plots.plot_class_histogram(fname, score_export) if args.dist: data = [s.getScore() for s in swap.subjects] plots.plot_pdf(data, self.f(args.dist[0]), swap, cutoff=float(args.dist[1])) if args.presrec: fname = self.f(args.presrec[0]) plots.distributions.sklearn_purity_completeness( fname, score_export) if args.scores_to_csv: self.scores_to_csv(score_export, args.scores_to_csv[0]) if args.diff: self.difference(args) if args.shell: import code code.interact(local=locals()) return swap
def call(self, args): swap = None scores = None if args.load: obj = self.load(args.load[0]) if isinstance(obj, SWAP): swap = obj scores = swap.score_export() elif isinstance(obj, ScoreExport): scores = obj if args.scores_from_csv: fname = args.scores_from_csv[0] scores = ScoreExport.from_csv(fname) if args.run: swap = self.run_swap(args) scores = swap.score_export() if swap is not None: if args.save: manifest = self.manifest(swap, args) self.save(swap, self.f(args.save[0]), manifest) if args.log: fname = self.f(args.log[0]) write_log(swap, fname) if args.stats: s = swap.stats_str() print(s) logger.debug(s) if args.test: from swap.utils.golds import GoldGetter gg = GoldGetter() logger.debug('applying new gold labels') swap.set_gold_labels(gg.golds) swap.process_changes() logger.debug('done') if args.test_reorder: self.reorder_classifications(swap) if args.export_user_scores: fname = self.f(args.export_user_scores[0]) self.export_user_scores(swap, fname) if scores is not None: if args.save_scores: DB().subjects.save_scores(scores) if args.scores_to_csv: self.scores_to_csv(scores, args.scores_to_csv[0]) self.plot(args, swap, scores) if args.shell: import code code.interact(local=locals()) return swap