3.14 Model类
DeepChem 维护大量的科学计算模型。 DeepChem’s注重于便于科学应用,所以我们支持不同的机器学习框架 (目前有scikit-learn,xgboost, TensorFlow以及PyTorch) 因为不同的框架或多或少的适合于不同的应用。
3.14.1 Model菜单
如果你刚开始DeepChem,你可能对该基础感兴趣。模型菜单列出了多种定制的DeepChem模型。注意有些打包如SklearnModel 和 GBDTModel打包了外部的机器学习库不包括在内,但本表是完整的。
注意,如何阅读本表。每一行描述模型的需求。有些模型也有定制的方法。你可以从下表看出训练模型需要什么。
3.14.2 Model
class Model(model=None, model_dir: Optional[str] = None, **kwargs)
DeepChem模型的抽像基类。
__init__(model=None, model_dir: Optional[str] = None, **kwargs) →None
所有模型的抽像类。
这仅是为了方便子类的实施,不可以直接调用。
参数
model (object) – 打包ScikitLearn/Keras/Tensorflow 模型对像。
model_dir (str, optional (default None)) – 存贮模型的目录路径。如果不指明,模型将保存在临时目录。
fit_on_batch(X: Sequence, y: Sequence, w: Sequence)执行一步进行训练。
参数
X (np.ndarray) – 批的输入
y (np.ndarray) – 批的标签
w (np.ndarray) – 批的权重
predict_on_batch(X: Sequence)对于指定的批用新数据进行预测。
参数 X (np.ndarray) – 特征
reload() →None
从磁盘重载训练的模型。
static get_model_filename(model_dir: str)→ str
给出模型目录,从模型本身获得文件名。
static get_params_filename(model_dir: str)→str
给出模型目录,从模型本身获得文件名。
save() →None
用于保存的派遣函数。
每一个子类对于重写这个方法负责。
fit(dataset: deepchem.data.datasets.Dataset)
Fits a model on data in a Dataset object.
Parameters dataset (Dataset) – the Dataset to train on
predict(dataset: deepchem.data.datasets.Dataset, transformers: List[transformers.Transformer] =
[])→ numpy.ndarray
用self对给定的数据集对象进行预测。
参数
dataset (Dataset) – 待预测的数据集对象
transformers (List[Transformer]) – 输入对象被转换所用的转换器。输出传递到这个转换器进行反转换。
返回类型np.ndarray
evaluate(dataset: deepchem.data.datasets.Dataset, metrics: List[deepchem.metrics.metric.Metric],
transformers: List[transformers.Transformer] = [], per_task_metrics: bool = False,
use_sample_weights: bool = False, n_classes: int = 2)
评估模型对指定数据集的性能。
这个函数用评估器评估模型。结果,它继承评估器的相同限制。即,只有回归和分类模型可以用这种方式进行评估。
对于生成器模型,你要重写方法来进行定制的评估。
提定的关键参数将被传递到Evaluator.compute_model_performance。
参数
dataset (Dataset) – 数据集对像
metrics (Metric / List[Metric] / function) – 提供的量度。
该类试图对输入进行智能的处理。如果提供一个dc.metrics.Metric对象或列表,它会评估self.model的这些量度。如果是一个函数,它被认为是一个量度函数,这个方法会试图打包到dc.metrics.Metric对象。一个量度函数必须接受两个参数,y_true, y_pred ,它们是 np.ndarray对象并返回浮点分值。这个量度函数也接受关键字参数sample_weight来计算每个样本的权重。
transformers (List[Transformer]) – dc.trans.Transformer对象列表。
这个转换必须是以前应用到数据集。这个数据集会反转换以评估量度。
per_task_metrics (bool, optional (default False)) – 如真, 返回多任务数据集的每个任力的计算的量度。
use_sample_weights (bool, optional (default False)) – 如设置, 使用每个样本权重w。
n_classes (int, optional (default None)) – 如指明, 将使用n_classes 作为self.dataset 中唯一类的数目。对于回归量度这个参数将忽略。
返回
multitask_scores (dict) – 映射量度名称到量度分的字典。
all_task_scores (dict, optional) – 如果per_task_metrics == True被作为关键字参数传递,为不同的任务返回分值的第二个字典。
get_task_type()→ str
当前模型只能是分类器或回归器。
get_num_tasks()→ int
获得任务名。