GCN cora-network可视化

GCN cora-network可视化

一、源码下载

Github下载地址:https://github.com/tkipf/gcn

您可以在以下模型之间进行选择:

  • gcn:图卷积网络
  • gcn_cheby:图卷积网络的Chebyshev多项式版本
  • dense:支持稀疏输入的基本多层感知器

框架还支持对每个具有邻接矩阵的多个图实例(可能具有不同的大小)进行批量分类。最好将各个特征矩阵连接起来,并建立一个(稀疏的)块对角矩阵,其中每个块对应一个图实例的邻接矩阵。对于池化(对于图级输出而不是节点级输出),最好指定一个简单的池化矩阵,该矩阵从各自的图实例中收集要素,如下所示:

[graph_classification
安装源码所需要的包,执行train.py文件

在这里插入图片描述

利用GCN完成节点分类任务的模型训练

二、节点分类可视化

进一步,利用 tsnegcn 的 outputs 进行可视化,观测是否能分成明显的7簇?

需要注意的是,要修改源代码,以将网络中节点的embedding 和 label输出出来。

  • 步骤一:修改 utils.py 的load_data()函数,将变量labels返回

    • return adj, features, y_train, y_val, y_test, train_mask, val_mask, test_mask, labels
  • 步骤二:修改 train.py 文件。首先修改输出out

    • outs = sess.run([model.opt_op, model.loss, model.accuracy, model.outputs], feed_dict=feed_dict)

    然后在训练完后添加如下代码段在这里插入图片描述

label_dict = {0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6"} # 定义标签颜色字典
# 写文件
with open("./embeddings.txt", "w") as fe, open("./labels.txt", 'w') as fl:
    for i in range(len(outs[3])):
        fl.write(label_dict[int(list(labels[i]).index(1.))]+"\n")
        fe.write(" ".join(map(str, outs[3][i]))+"\n")

三、代码可视化

将分类后的结果在二维坐标上显示,所以我们要针对这个7个特征的数据进行PCA降维操作。

但是可视化效果不如参考的这篇博客的。

import matplotlib.pyplot as plt                 #加载matplotlib用于数据的可视化
from sklearn.decomposition import PCA           #加载PCA算法包

x, y= [], []
with open("labels.txt", "r") as f:  # 打开文件
    data1 = f.read().split("\n")  # 读取文件
    for i in data1:
        y.append(int(i))
with open("embeddings.txt", "r") as f:  # 打开文件
    data1 = f.read().split("\n")  # 读取文件
    for item in data1:
        a = []
        item1 = item.split(" ")
        for i in item1:
            a.append(float(i))
        x.append(a)

pca=PCA(n_components=2)     #加载PCA算法,设置降维后主成分数目为2
reduced_x=pca.fit_transform(x)#对样本进行降维
print(reduced_x)

# #可视化
color = ['#F0F8FF', 'green', 'b', 'r', '#7FFFD4', '#FFC0CB', '#00022e']
for index, item in enumerate(reduced_x):
    plt.scatter(item[0], item[1], c= color[y[index]])
plt.show()

在这里插入图片描述

img

参考博客: https://www.jianshu.com/p/47425c02d779

  • 8
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 22
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不染心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值