Ejemplo n.º 1
0
    graph, domain_labels = load_linqs_data(args.content_file, args.cites_file)

    kf = KFold(n=len(graph.node_list),
               n_folds=args.num_folds,
               shuffle=True,
               random_state=42)

    accuracies = []

    cm = None

    for train, test in kf:
        clf = LocalClassifier(args.classifier)
        clf.fit(graph, train)
        y_pred = clf.predict(graph, test)
        y_true = [graph.node_list[t].label for t in test]
        accuracies.append(accuracy_score(y_true, y_pred))
        if cm is None:
            cm = confusion_matrix(y_true, y_pred, labels=domain_labels)
        else:
            cm += confusion_matrix(y_true, y_pred, labels=domain_labels)

    print accuracies
    print "Mean accuracy: %0.4f +- %0.4f" % (np.mean(accuracies),
                                             np.std(accuracies))
    print cm

conditional_map = {}
X = []
for a in train_indices:
    parser.add_argument('-num_folds', type=int, default=10, help='The number of folds.')
    
    args = parser.parse_args()
    
    graph, domain_labels = load_linqs_data(args.content_file, args.cites_file)
    
    kf = KFold(n=len(graph.node_list), n_folds=args.num_folds, shuffle=True, random_state=42)    
    
    
    accuracies = []
    
    cm = None
    
    for train, test in kf:
        clf = LocalClassifier(args.classifier)
        clf.fit(graph, train)
        y_pred = clf.predict(graph, test)
        y_true = [graph.node_list[t].label for t in test]
        accuracies.append(accuracy_score(y_true, y_pred))
        if cm is None:
            cm = confusion_matrix(y_true, y_pred, labels = list(domain_labels))
        else:
            cm += confusion_matrix(y_true, y_pred, labels = list(domain_labels))

    
    print accuracies
    print "Mean accuracy: %0.4f +- %0.4f" % (np.mean(accuracies), np.std(accuracies))
    print cm
        
    
    
Ejemplo n.º 3
0
    if not args.dont_evaluate_local:
        local_accuracies = defaultdict(list)
    relational_accuracies = defaultdict(list)

    for t in range(args.num_trials):
        for b in budget:
            train, test = train_test_split(n, train_size=b, random_state=t)

            # True labels
            y_true = [graph.node_list[t].label for t in test]

            if not args.dont_evaluate_local:
                # local classifier fit and test
                local_clf = LocalClassifier(args.classifier)
                local_clf.fit(graph, train)
                local_y_pred = local_clf.predict(graph, test)
                local_accuracy = accuracy_score(y_true, local_y_pred)
                local_accuracies[b].append(local_accuracy)

            # relational classifier fit and test
            agg = pick_aggregator(args.aggregate, domain_labels, args.directed)
            relational_clf = RelationalClassifier(
                args.classifier, agg, not args.dont_use_node_attributes)
            relational_clf.fit(graph, train)
            conditional_node_to_label_map = create_map(graph, train)
            relational_y_pred = relational_clf.predict(
                graph, test, conditional_node_to_label_map)
            relational_accuracy = accuracy_score(y_true, relational_y_pred)
            relational_accuracies[b].append(relational_accuracy)

    if not args.dont_evaluate_local:
        local_accuracies = defaultdict(list)
    relational_accuracies = defaultdict(list)


    for t in range(args.num_trials):
        for b in budget:
            train, test = train_test_split(n, train_size=b, random_state=t)
            
            # True labels
            y_true=[graph.node_list[t].label for t in test]

            if not args.dont_evaluate_local:
                # local classifier fit and test
                local_clf=LocalClassifier(args.classifier)
                local_clf.fit(graph,train)
                local_y_pred=local_clf.predict(graph,test)
                local_accuracy=accuracy_score(y_true, local_y_pred)
                local_accuracies[b].append(local_accuracy)
            
            
            # relational classifier fit and test
            agg=pick_aggregator(args.aggregate,domain_labels,args.directed)
            relational_clf=RelationalClassifier(args.classifier, agg, not args.dont_use_node_attributes)
            relational_clf.fit(graph,train)
            conditional_node_to_label_map=create_map(graph,train)
            relational_y_pred=relational_clf.predict(graph,test,conditional_node_to_label_map)
            relational_accuracy=accuracy_score(y_true,relational_y_pred)
            relational_accuracies[b].append(relational_accuracy)