def getTopWeightedFeatures(exp_id, instance_id, size): instance_id = int(instance_id) classifier = get_classifier(exp_id) # get the features exp = update_curr_exp(exp_id) f_names, f_values = FeaturesFromExp.get_instance(exp, instance_id) # scale the features scaled_values = classifier.named_steps['scaler'].transform( np.reshape(f_values, (1, -1))) weighted_values = np.multiply(scaled_values, classifier.named_steps['model'].coef_) features = list( map(lambda name, value, w_value: (name, value, w_value), f_names, f_values, weighted_values[0])) features.sort(key=lambda tup: abs(tup[2])) features = features[:-int(size) - 1:-1] f_names, f_values, f_weighted = list(zip(*features)) labels = [str(name) for name in f_names] tooltips = [ '%s (%.2f)' % (name, f_values[i]) for i, name in enumerate(f_names) ] barplot = BarPlot(labels) dataset = PlotDataset(f_weighted, None) dataset.set_color(red) barplot.add_dataset(dataset) return jsonify(barplot.to_json(tooltip_data=tooltips))
def getClusterStats(exp_id): experiment = update_curr_exp(exp_id) clustering = ClustersExp.from_json(experiment.output_dir()) num_clusters = clustering.num_clusters num_instances_v = [] labels = [] for c in range(num_clusters): instances_in_cluster = clustering.clusters[c].instances_ids num_instances = len(instances_in_cluster) num_instances_v.append(num_instances) labels.append(clustering.clusters[c].label) barplot = BarPlot(labels) dataset = PlotDataset(num_instances_v, 'Num. Instances') barplot.add_dataset(dataset) return jsonify(barplot.to_json())
def getFamiliesBarplot(annotations_id, iteration, label): iteration = None if iteration == 'None' else int(iteration) family_counts = annotations_db_tools.get_families_counts( session, annotations_id, iter_max=iteration, label=label) df = pd.DataFrame({ 'families': list(family_counts.keys()), 'counts': [family_counts[k] for k in list(family_counts.keys())] }) sort_data_frame(df, 'families', ascending=True, inplace=True) barplot = BarPlot(df['families'].values) dataset = PlotDataset(df['counts'].values, 'Num. Instances') dataset.set_color(get_label_color(label)) barplot.add_dataset(dataset) return jsonify(barplot.to_json())