DeepChem教程24: 模型可解释性介绍

本文介绍了如何利用DeepChem和LIME工具来提高模型的可解释性,特别是在化学领域的应用。通过训练MultitaskClassifier对Tox21数据集进行预测,并使用LIME来解释模型对分子毒性预测的决策过程。文章展示了如何通过LIME创建局部线性模型,以理解模型如何根据分子的特定片段来判断其毒性。
摘要由CSDN通过智能技术生成

前面的几节,你已经学习了如何用DeepChem 训练模型解决不同的问题。但是我们还没有真正的学习模型的可解释性问题。

建模时我们通常要问一些问题模型工作得好不好?我们为什么要相信模型?我作为一个数据科学家的回答是,因为我们有明显的证据证实模型对于手头的测试集是切合实际的“。但通常这不足于说服领域专家。

LIME 是一个能帮助你解决这一问题的工具。它用局部的特征空间扰动来确定特征的重要性。本教程,你将学习如何使用LIMEDeepChem来解释我们的模型学习到了什么。

如果这个工具以人类可理解的方式来处理图像那它可以处理分子吗?本教程我们将学习如何用LIME解释固定长度的特征化模型。

创建模型

我们加载ECFP特征化的Tox21数据集。回顾一下特征化是如何工作的。它识别分子中的小片断,然后设置输出向为1以表示分子中某个片断的存在。

In [1]:

import deepchem as dc

n_features = 1024

tasks, datasets, transformers = dc.molnet.load_tox21(featurization='ecfp')

train_dataset, valid_dataset, test_dataset = datasets

我们现在用这个数据集来训练模型。如前面的教程,我们用MultitaskClassifier,它是多个全链接的简单堆叠。

In [2]:

n_tasks = len(tasks)

n_features = train_dataset.get_data_shape()[0]

model = dc.models.MultitaskClassifier(n_tasks, n_features)

model.fit(train_dataset, nb_epoch=50)

Out[2]:

0.1333492088317871

我们用训练集和测试集评估模型以理解它的准确度。我们用ROC-AUC作为量度。

In [3]:

import numpy as np

metric = dc.metrics.Metric(dc.metrics.roc_auc_score, np.mean)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值