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=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 = []
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
n = range(len(graph.node_list)) 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)