DeepChem教程 6:图卷积

本教程介绍了图卷积的概念,将其与图像卷积对比,并展示了如何使用DeepChem库构建和训练自定义的图卷积模型。通过加载Tox21数据集,训练GraphConvModel和自定义的Keras模型,最终评估模型在训练和测试集上的ROC-AUC得分。
摘要由CSDN通过智能技术生成

DeepChem教程 6:图卷积

本教程我们学习更多的图卷积。处理分子数据有一个最为强大的深度学习工具。原因是分子可以很自然的看作图。注意,这类的标准的化学图形我们从高中就开始用于可视化分子作为图。在本教程的后一部分,我们将更详细的探求这种关系。我们将更深入的理解这些系统是如何工作的。

什么是图卷积?

考虑一下一种常用于处理图像的标准的卷积神经网络。每个像素有一个矢量数值,如红、绿、蓝通道值。数据传递给一系列的卷积层。每一层组合数据自像素及它的邻居以产生新的像素的矢量数据。早期的层检测局部的模式,后期的层检测更大的更抽象的模式。通常卷积层随池化层改变,池化层进行一些局部区域的最大最小化之类的操作。

图卷积相似,但是它们对图操作。它们从图上的节点的矢量数据开始(如,节点代表的原子的化学特征)。卷积和池化层组合信息自相连的节点(如,相结合的原子)以为每个节点产生新的数据矢量。

训练GraphConvModel

让我们来使用MoleculeNet加载Tox21数据集。为了特征化数据以便图卷积神经网络使用,我们设置特征化器选项为'GraphConv'MoleculeNet的调用返回训练集、验证集、测试集供我们使用。它也返回tasks,即任务名的列表,也返回transformers,数据转换器的列表,用于处理数据集。(通常大部分深度网络都是挑剔的,需要一系列的数据转换过程以保证训练过程的稳定性。)

In [1]:

import deepchem as dc

tasks, datasets, transformers = dc.molnet.load_tox21(featurizer='GraphConv')

train_dataset, valid_dataset, test_dataset = datasets

现在我们用这个数据集来训练图卷积网络。DeepChem有一个GraphConvModel类打包标准的图卷积结构方便用户使用。我们来实例化类的对象并用我们的数据集来训练。

In [2]:

n_tasks = len(tasks)

model = dc.models.GraphConvModel(n_tasks, mode='classification')

model.fit(train_dataset, nb_epoch=50)

Out[2]:

0.28185401916503905

我们来评估一下我们训练的模型的性能。对于这个,我们需要确定一个度量来衡量模型的性能。dc.metrics 已经存贮了一系列的量度。对于这个数据集,使用ROC-AUC是标准,即接受者操作特征曲线下的面积(它测量了精确度和召回之间接妥协)。幸运的是,DeepChem已有ROC-AUC分可用。为了测量模型在这个量度下的性能,我们使用便利的函数 model.evaluate()

In [3]:

metric = dc.metrics.Metric(dc.metrics.roc_auc_score)

print('Training set score:', model.evaluate(train_dataset, [metric], transformers))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值