graph - 如何知道节点/功能贡献?

标签 graph pytorch conv-neural-network

我正在 PyTorch 中研究 GCN(图卷积网络),在我的应用程序中:患者是一个图,节点代表其基因,对于每个基因,我有 2 个特征(基因结构和表达值)。

我的任务是建立一个回归模型来预测每位患者患病的风险。

我的问题是,

1-如何知道哪些节点(基因)对预测有贡献?

2- 我拥有的 2 的哪个特征(基因结构和表达值)有助于预测?

任何建议/想法都会有所帮助,谢谢。

最佳答案

我建议的可能是最简单的解决方案。但是,它可以很好地工作。

根据您对问题的描述,您想学习图形(代表患者)表示,可用于预测患病风险。正如我们所知,GCN(图卷积网络)可以为图中的每个节点提供向量表示。

所有节点表示都可以转化为单个向量表示,表示整个图,这可以通过多种方式完成。例如,您可以使用最大池化或自注意力池化。通过这两种方式,您都可以确定哪些节点对最终预测的贡献最大。

例如,在self-attention pooling中,每个节点都有一个权重,单向量表示是加权向量表示。因此,权重可以指示节点的贡献。如果我们使用最大池化,那么我们可以在应用最大池化时计算一个节点中有多少特征被池化。计数本身可以指示贡献。

Which feature of the 2 that I have (gene structure and expression value) contribute to the prediction?

您可以应用与上述相同的想法。例如,您可以为这 2 个特征设置可学习的权重,以便在计算图的单个向量表示时将它们组合起来。

关于graph - 如何知道节点/功能贡献?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61851325/

相关文章:

java - 如何创建邻居的ArrayList来协调无向图中的节点?

graph - 使用 iGraph 在 Julia 中生成随机配置模型图

java - 实例化抽象类解决方法

machine-learning - FastAI PyTorch Train_loss 和 valid_loss 看起来非常好,但模型无法识别任何内容

theano - 卷积神经网络 - 权重可视化

java - 如何制作递归函数以查找图中的所有欧拉路径?

python - BatchNorm 动量约定 PyTorch

mongodb - 使用 Mongo DB 的 PyTorch DataLoader

javascript - 如何在 TensorFlow.js 中使用 optimize.minimize 和最大池化层

python - keras 卷积层中的内核大小是如何定义的?