示例#1
0
文件: diadem.py 项目: guillain/SecuML
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))
示例#2
0
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)
示例#3
0
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)})