|
|
|
@ -194,3 +194,59 @@ def get_data(dataset): |
|
|
|
|
feas['num_features'] = num_features |
|
|
|
|
feas['num_nodes'] = num_nodes |
|
|
|
|
return feas |
|
|
|
|
|
|
|
|
|
def get_data_by_fold(dataset): |
|
|
|
|
# Load data |
|
|
|
|
# adj, features, y_test, tx, ty, test_maks, true_labels = load_data(data_name) |
|
|
|
|
adj, features, y_test, tx, ty, test_maks, true_labels = load_data(dataset) # e ic gpcr nr luo |
|
|
|
|
|
|
|
|
|
# Store original adjacency matrix (without diagonal entries) for later |
|
|
|
|
adj_orig = adj |
|
|
|
|
# 删除对角线元素 |
|
|
|
|
adj_orig = adj_orig - sp.dia_matrix((adj_orig.diagonal()[np.newaxis, :], [0]), shape=adj_orig.shape) |
|
|
|
|
adj_orig.eliminate_zeros() |
|
|
|
|
|
|
|
|
|
adj_train, train_edges, val_edges, val_edges_false, test_edges, test_edges_false = mask_test_edges(adj) |
|
|
|
|
adj = adj_train |
|
|
|
|
adj_dense = adj.toarray() |
|
|
|
|
|
|
|
|
|
# Some preprocessing |
|
|
|
|
adj_norm = preprocess_graph(adj) |
|
|
|
|
|
|
|
|
|
num_nodes = adj.shape[0] |
|
|
|
|
features_dense = features.tocoo().toarray() |
|
|
|
|
|
|
|
|
|
features = sparse_to_tuple(features.tocoo()) |
|
|
|
|
# num_features是feature的维度 |
|
|
|
|
num_features = features[2][1] |
|
|
|
|
# features_nonzero就是非零feature的个数 |
|
|
|
|
features_nonzero = features[1].shape[0] |
|
|
|
|
|
|
|
|
|
pos_weight = float(adj.shape[0] * adj.shape[0] - adj.sum()) / adj.sum() |
|
|
|
|
norm = adj.shape[0] * adj.shape[0] / float((adj.shape[0] * adj.shape[0] - adj.sum()) * 2) |
|
|
|
|
|
|
|
|
|
adj_label = adj_train + sp.eye(adj_train.shape[0]) |
|
|
|
|
adj_label = sparse_to_tuple(adj_label) |
|
|
|
|
items = [ |
|
|
|
|
adj, num_features, num_nodes, features_nonzero, |
|
|
|
|
pos_weight, norm, adj_norm, adj_label, |
|
|
|
|
features, true_labels, train_edges, val_edges, |
|
|
|
|
val_edges_false, test_edges, test_edges_false, adj_orig, features_dense, adj_dense, features_dense |
|
|
|
|
] |
|
|
|
|
|
|
|
|
|
feas = {} |
|
|
|
|
|
|
|
|
|
print('num_features is:', num_features) |
|
|
|
|
print('num_nodes is:', num_nodes) |
|
|
|
|
print('features_nonzero is:', features_nonzero) |
|
|
|
|
print('pos_weight is:', pos_weight) |
|
|
|
|
print('norm is:', norm) |
|
|
|
|
|
|
|
|
|
for item in items: |
|
|
|
|
# item_name = [ k for k,v in locals().iteritems() if v == item][0] |
|
|
|
|
feas[retrieve_name(item)] = item |
|
|
|
|
|
|
|
|
|
feas['num_features'] = num_features |
|
|
|
|
feas['num_nodes'] = num_nodes |
|
|
|
|
return feas |
|
|
|
|
|
|
|
|
|