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) features_from_exp = FeaturesFromExp(exp) features_names, features_values = features_from_exp.get_instance( instance_id) features_values = [float(value) for value in features_values] # scale the features scaled_values = classifier.named_steps['scaler'].transform( np.reshape(features_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), features_names, features_values, weighted_values[0])) features.sort(key=lambda tup: abs(tup[2])) features = features[:-int(size) - 1:-1] features_names = [x[0] for x in features] features_values = [x[1] for x in features] features_weighted_values = [x[2] for x in features] labels = [str(name) for name in features_names] tooltips = [ '%s (%.2f)' % (name, features_values[i]) for i, name in enumerate(features_names) ] barplot = BarPlot(labels) dataset = PlotDataset(features_weighted_values, None) dataset.set_color(red) barplot.add_dataset(dataset) return jsonify(barplot.to_json(tooltip_data=tooltips))
def getFeatures(exp_id, instance_id): instance_id = int(instance_id) experiment = update_curr_exp(exp_id) features_from_exp = FeaturesFromExp(experiment) features_names, features_values = features_from_exp.get_instance( instance_id) features = {features_names[i]: v for i, v in enumerate(features_values)} return jsonify(features)
def getFeatures(exp_id, instance_id): instance_id = int(instance_id) experiment = update_curr_exp(exp_id) f_names, f_values = FeaturesFromExp.get_instance(experiment, instance_id) return jsonify({f_names[i]: v for i, v in enumerate(f_values)})