网站标题改不了,北京网约车,全国设计网站建设,友链交易平台全文链接#xff1a;https://tecdat.cn/?p38570 本文主要探讨了如何利用图卷积网络#xff08;GCN#xff09;对图中的节点进行分类。介绍了相关的数据处理、模型构建、训练及测试等环节#xff0c;通过对分子数据集的操作实践#xff0c;展示了完整的节点分类流程#… 全文链接https://tecdat.cn/?p38570 本文主要探讨了如何利用图卷积网络GCN对图中的节点进行分类。介绍了相关的数据处理、模型构建、训练及测试等环节通过对分子数据集的操作实践展示了完整的节点分类流程并对模型的效果进行了多方面评估旨在为相关领域的研究与应用提供参考点击文末“阅读原文”获取完整代码数据。 图卷积网络GCN是卷积神经网络的一种变体在处理图结构数据的节点分类任务中有着重要应用。例如在化学领域给定分子结构以图表示化学键可以利用GCN预测分子中原子的类型如碳、氧等。本文以数据集为例详细阐述基于GCN的节点分类实现过程。 数据准备 一数据集下载与加载 首先从指定网址下载数据集该数据集包含碳、氢、氮、氧和硫这五种不同的原子。通过以下代码实现下载与初步处理 if ~exist(data_file,file):mkdir(output_folder) 加载下载好的MAT文件中的数据其包含多个不同的数组本文主要使用代表库仑矩阵的X数组和代表每个原子原子序数的Z数组代码如下 data load(data_file) 二图数据预处理 从加载的数据结构中提取库仑数据和原子序数并进行相应变换。 为了将训练数据中的库仑矩阵转换为邻接矩阵。之后对部分数据进行可视化展示查看分子的相关情况像提取未填充的邻接矩阵、将原子序数转换为符号并绘图等代码如下 nexttileplot(G,NodeLabelsymbols,Layoutforce) 点击标题查阅往期内容 R语言KERAS深度学习CNN卷积神经网络分类识别手写数字图像数据MNIST 左右滑动查看更多 01 02 03 04 利用直方图可视化各标签类别的频率代码如下 figure
histogram(categorical(atomicSymbol(atom_data))) 对数据进行划分分为训练集、验证集和测试集分别包含80%、10%和10%的数据。 模型构建 一深度学习模型定义 定义的深度学习模型输入为邻接矩阵A和特征矩阵X输出分类预测结果。模型是一系列形如 Zl1σl(D^−1/2A^D^−1/2ZlWl)Zl的操作组合其中涉及激活函数、权重矩阵等不同元素。 二模型参数初始化 创建结构来存放模型参数并利用函数本文附属文件初始化各乘法操作的可学习权重 parameters struct()
num\_hidden\_feature_maps 32 三模型相关函数定义 创建函数其输入模型参数、特征数据和邻接矩阵返回预测结果输入模型参数、特征数据、邻接矩阵以及独热编码目标返回损失、损失相对于参数的梯度和网络预测另外还有函数它们各自在模型的训练、预测等环节发挥重要作用。 模型训练 设定训练轮数为1500轮学习率为0.01每300轮验证一次网络。初始化Adam相关参数将训练和验证特征数据转换为特定对象格式若有可用GPU则将数据转换到GPU上进行训练同时将训练和验证标签转换为独热编码向量并初始化训练进度监测对象。然后利用自定义训练循环训练模型在每一轮中进行模型损失和梯度评估、更新网络参数、更新训练绘图以及按要求验证网络等操作 num_epochs 1500
learn_rate 0.01
validation_frequency 300
trailing_avg \[\]
trailing\_avg\_sq \[\] 模型测试与预测 一模型测试 使用测试数据对模型进行测试先按照训练和验证数据的处理步骤预处理测试数据将测试特征数据转换为相应对象格式利用模型进行预测并将概率转换为分类标签最后计算准确率还通过混淆矩阵等方式可视化模型的预测情况评估模型基于类别精度和召回率等指标的表现。 计算混淆矩阵 figure
cm confusionchart(labels\_test,Y\_test, 二新数据预测 利用函数对未标记数据进行预测选择测试数据的前几个观测值简单示例可视化预测结果将预测结果作为节点标签绘制分子的图表示 num\_observations\_new 4
adjacency\_data\_new adjacency\_data\_test\[:,:,1:num\_observations\_new\] 总结 本文通过对数据集完整的处理、基于图卷积网络的模型构建、训练及测试等流程展示呈现了图中节点分类任务的实现过程及相关方法应用。结果表明模型在该任务中有一定的准确率等表现后续可进一步探索优化模型结构、改进数据处理方式等方面以提升模型在节点分类任务中的性能更好地应用于如化学分子结构分析等诸多领域。 参考文献 [1] Kipf, Thomas N., and Max Welling. “Semi-Supervised Classification with Graph Convolutional Networks.” Paper presented at ICLR 2017, Toulon, France, April 2017.[2] Blum, Lorenz C., and Jean-Louis Reymond. “970 Million Druglike Small Molecules for Virtual Screening in the Chemical Universe Database GDB-13.” Journal of the American Chemical Society 131, no. 25 (July 1, 2009): 8732–33. https://doi.org/10.1021/ja902302h.[3] Rupp, Matthias, Alexandre Tkatchenko, Klaus-Robert Müller, and O. Anatole von Lilienfeld. “Fast and Accurate Modeling of Molecular Atomization Energies with Machine Learning.” Physical Review Letters 108, no. 5 (January 31, 2012): 058301. https://doi.org/10.1103/PhysRevLett.108.058301. 本文中分析的数据、代码分享到会员群扫描下面二维码即可加群 资料获取 在公众号后台回复“领资料”可免费获取数据分析、机器学习、深度学习等学习资料。 点击文末“阅读原文” 获取全文完整代码数据资料。 本文选自《MATLAB图卷积网络GCN处理分子数据集节点分类研究》。 点击标题查阅往期内容 PYTHON TENSORFLOW 2二维卷积神经网络CNN对图像物体识别混淆矩阵评估|数据分享 R语言深度学习卷积神经网络 (CNN)对 CIFAR 图像进行分类训练与结果评估可视化 R语言KERAS深度学习CNN卷积神经网络分类识别手写数字图像数据MNIST MATLAB中用BP神经网络预测人体脂肪百分比数据 Python中用PyTorch机器学习神经网络分类预测银行客户流失模型 R语言实现CNN卷积神经网络模型进行回归数据分析 SAS使用鸢尾花(iris)数据集训练人工神经网络(ANN)模型 【视频】R语言实现CNN卷积神经网络模型进行回归数据分析 Python使用神经网络进行简单文本分类 R语言用神经网络改进Nelson-Siegel模型拟合收益率曲线分析 R语言基于递归神经网络RNN的温度时间序列预测 R语言神经网络模型预测车辆数量时间序列 R语言中的BP神经网络模型分析学生成绩 matlab使用长短期记忆LSTM神经网络对序列数据进行分类 R语言实现拟合神经网络预测和结果可视化 用R语言实现神经网络预测股票实例 使用PYTHON中KERAS的LSTM递归神经网络进行时间序列预测 python用于NLP的seq2seq模型实例:用Keras实现神经网络机器翻译 用于NLP的Python使用Keras的多标签文本LSTM神经网络分类