对于深度学习模型的常见批评是它们像黑盒子一样工作。一个模型产生输出,但并没有足够的内容来解释它们的正确性。模型的预测的结果是否可靠?是否有一些预测结果比另一些结果更可靠?如果对于有些数值模型的预测结果为5.372,你会认为这个值是5.371和5.373的中间值?还是2 和8?在某些领域这情况可能足够好,但要科学领域并不足够好。对于模型预测的值我们需要也想要评估这个值的不确定性以致我们知道我们能基于它做什么结论。
DeepChem让评估预测输出的不确定性评估很容易。(起码对于它所支持的模型是这样—不是所有的模型)。我们加载数据,创建模型,用训练集来训练它,用测试集来预测输出,然后进行一些不确定性评估。
本教程我们用MoleculeNet的Delaney数据集来进行实验。我们来加载我们的数据集,然后做一些不确定性预测。
In [1]:
import deepchem as dc
import numpy as np
import matplotlib.pyplot as plot
tasks, datasets, transformers = dc.molnet.load_delaney()
train_dataset, valid_dataset, test_dataset = datasets
model = dc.models.MultitaskRegressor(len(tasks), 1024, uncertainty=True)
model