DeepChem手册3.12 分割器

DeepChem提供了一系列的Splitter类用于科学数据的机器学习模型训练、验证和测试集的分割。包括RandomSplitter、RandomGroupSplitter、RandomStratifiedSplitter等,其中RandomSplitter根据随机种子按比例划分数据,RandomGroupSplitter基于分组进行随机分割,RandomStratifiedSplitter则确保每个任务的活性化合物比例。此外,还有基于分子指纹的Tanimoto相似性分割器FingerprintSplitter,确保分子之间的差异性。
摘要由CSDN通过智能技术生成

3.12 Splitters

DeepChem的dc.splits.Splitter对象是分割DeepChem数据集以进行机器学习的有用工具。核心思想是,当评估机器学习模型时,从源数据产生训练集,验证集,测试集是非常有用的。训练集用于训练模型,验证集用于评价不同的模型架构。测试集最后用于评估模型的性能。

dc.splits模型包括科学的分割器。很多情况下,我们需要更多的评估科学的深度学习模型比标准的深度模型,因为我们要寻找新领域的泛化能力。这里的一些分割器是有用的。

Contents

 General Splitters

– RandomSplitter

– RandomGroupSplitter

– RandomStratifiedSplitter

– SingletaskStratifiedSplitter

– IndexSplitter

– SpecifiedSplitter

– TaskSplitter

 Molecule Splitters

– ScaffoldSplitter

– MolecularWeightSplitter

– MaxMinSplitter

– ButinaSplitter

– FingerprintSplitter

 Base Splitter (for develop)

3.12.1 General Splitters

RandomSplitter

class RandomSplitter

随机数据分割的类。

split(dataset: deepchem.data.datasets.Dataset, frac_train: float = 0.8, frac_valid: float = 0.1,

frac_test: float = 0.1, seed: Optional[int] = None, log_every_n: Optional[int] = None) →

Tuple[numpy.ndarray, numpy.ndarray, numpy.ndarray]

随机将内部分子分割为训练集/验证集/测试集。

参数

 dataset (Dataset) – 被分割的数据集。

 seed (int, optional (default None)) – 使用的随机种子。

 frac_train (float, optional (default 0.8)) – 分到训练集中的数据的占比。

 frac_valid (float, optional (default 0.1)) – 分到验证集中的数据的占比。

 frac_test (float, optional (default 0.1)) – 分到测试集中的数据的占比。

 seed – 使用的随机种子。

 log_every_n (int, optional (default None)) – 每n个样本记录 (当前不用)。

返回训练索引、验证索引、测试索引的元组。每个索引是一个numpy数组。

返回类型Tuple[np.ndarray, np.ndarray, np.ndarray]

k_fold_split(dataset: deepchem.data.datasets.Dataset, k: int, directories: Optional[

List[str]] = None, **kwargs) → List[Tuple[deepchem.data.datasets.Dataset,

deepchem.data.datasets.Dataset]]

参数

 dataset (Dataset) – 进行k-折分割的数据集

 k (int) – 数据集交要分割的折数。

 directories (List[str], optional (default None)) – 长度为2*k个文件路径列表来保存生成的disk-datasets。

返回k元组 (train, cv) 长度列表,其中 train和cv均为Dataset。

返回类型列表[Tuple[Dataset, Dataset]]

train_test_split(dataset: deepchem.data.datasets.Dataset, train_dir: Optional[str] = None,

test_dir: Optional[str] = None, frac_train: float = 0.8, seed: Optional[

int] = None, **kwargs) → Tuple[deepchem.data.datasets.Dataset,

deepchem.data.datasets.Dataset]

分割self到train/test集

返回训练/测试的数据集对象。

参数

 dataset (data like object) – 被分割的数据集。

 train_dir (str, optional (default None)) – 如指明,产生的训练数据集贮存的地方。

只在isinstance(dataset, dc.data.DiskDataset)为真时考虑。

 test_dir (str, optional (default None)) –如指明,产生的测试数据集贮存的地方。

只在isinstance(dataset, dc.data.DiskDataset)为真时考虑。

frac_train (float, optional (default 0.8)) – 分到训练集中的数据的占比。

seed (int, optional (default None)) – 使用的随机种子。R

返回作为dc.data.Dataset 对象的训练集和测试集的元组。

返回类型 Tuple[Dataset, Dataset]

train_valid_test_split(dataset: deepchem.data.datasets.Dataset, train_dir: Optional[str]

= None, valid_dir: Optional[str] = None, test_dir: Optional[str]

= None, frac_train: float = 0.8, frac_valid: float = 0.1,

frac_test: float = 0.1, seed: Optional[int] = None, log_every_n:

int = 1000, **kwargs) → Tuple[deepchem.data.datasets.Dataset,

deepchem.data.datasets.Dataset, deepchem.data.datasets.Dataset]

将self分割为训练集/验证集/测试集。.

返回训练集/验证集/测试集的数据集对象。.

参数

 dataset (Dataset) –被分割的数据集。

 train_dir (str, optional (default None)) – 如指明,产生的训练数据集贮存的地方。

只在isinstance(dataset, dc.data.DiskDataset)为真时考虑。

 valid_dir (str, optional (default None)) – 如指明,产生的验证数据集贮存的地方。

只在isinstance(dataset, dc.data.DiskDataset)为真时考虑。

 test_dir (str, optional (default None)) – 如指明,产生的测试数据集贮存的地方。

只在isinstance(dataset, dc.data.DiskDataset)为真时考虑。

frac_train (float, optional (default 0.8)) – 分到训练集中的数据的占比。

 frac_valid (float, optional (default 0.1)) – 分到验证集中的数据的占比。

 frac_test (float, optional (default 0.1)) – 分到测试集中的数据的占比。?

 seed (int, optional (default None)) – 使用的随机种子。

 log_every_n (int, optional (default 1000)) – 能过指明记录器的输出频率来控制记录器。

返回作为 dc.data.Dataset对象的训练集、验证集、测试集的元组。

返回类型 Tuple[Dataset, Optional[Dataset], Dataset]

RandomGroupSplitter

class RandomGroupSplitter(groups: Sequence)

基于分组进行随机分割

基于分组进行分割的分割器类。一个应用场景是分子有多个构像共享同的扩朴结构。分割器保证分割结果保存基团。

注意它不进行动态规划或试图最大化选择如frac_train, frac_valid, 或frac_test最大化。它只是排列基团。因此基团原素显著不同时需要小心使用。

__init__(groups: Sequence)

初始化对象

参数 groups (Sequence) – 指示基团的数组。长度等于len(dataset.X)。

注意: 基团的例子如下

groups : 3 2 2 0 1 1 2 4 3

dataset.X : 0 1 2 3 4 5 6 7 8

groups : a b b e q x a a r

dataset.X : 0 1 2 3 4 5 6 7 8

split(dataset: deepchem.data.datasets.Dataset, frac_train: float = 0.8, frac_valid: float = 0.1,

frac_test: float = 0.1, seed: Optional[int] = None, log_every_n: Optional[int] = None) →

Tuple[List[int], List[int], List[int]]

返回指定分割索引

参数

 dataset (Dataset) – 被分割的数据集.

frac_train (float, optional (default 0.8)) – 分到训练集中的数据的占比。

 frac_valid (float, optional (default 0.1)) – 分到验证集中的数据的占比。

 frac_test (float, optional (default 0.1)) – 分到测试集中的数据的占比。

seed (int, optional (default None)) – 使用的随机种子。

 log_every_n (int, optional (default None)) – 每n个样本记录 (当前不用)。

返回不同分割的元组 (train_inds, valid_inds, test_inds of the indices (integers)。

返回类型 Tuple[List[int], List[int], List[int]]

k_fold_split(dataset: deepchem.data.datasets.Dataset, k: int, directories: Optional[

List[str]] = None, **kwargs) → List[Tuple[deepchem.data.datasets.Dataset,

deepchem.data.datasets.Dataset]]

参数

 dataset (Dataset) – 进行k-折分割的数据集

 k (int) – 数据集交要分割的折数。

 directories (List[str], optional (default None)) – 长度为2*k个文件路径列表来保存生成的disk-datasets。

返回k元组 (train, cv) 长度列表,其中 train和cv均为Dataset。

返回类型列表[Tuple[Dataset, Dataset]]

train_test_split(dataset: deepchem.data.datasets.Dataset, train_dir: Optional[str] = None,

test_dir: Optional[str] = None, frac_train: float = 0.8, seed: Optional[

int] = None, **kwargs) → Tuple[deepchem.data.datasets.Dataset,

deepchem.data.datasets.Dataset]

分割self到train/test集

返回训练/测试的数据集对象。

参数

 dataset (data like object) – 被分割的数据集。

 train_dir (str, optional (default None)) – 如指明,产生的训练数据集贮存的地方。

只在isinstance(dataset, dc.data.DiskDataset)为真时考虑。

 test_dir (str, optional (default None)) –如指明,产生的测试数据集贮存的地方。

只在isinstance(dataset, dc.data.DiskDataset)为真时考虑。

frac_train (float, optional (default 0.8)) – 分到训练集中的数据的占比。

seed (int, optional (default None)) – 使用的随机种子。R

返回作为dc.data.Dataset 对象的训练集和测试集的元组。

返回类型 Tuple[Dataset, Dataset]

train_valid_test_split(dataset: deepchem.data.datasets.Dataset, train_dir: Optional[str]

= None, valid_dir: Optional[str] = None, test_dir: Optional[str]

= None, frac_train: float = 0.8, frac_valid: float = 0.1,

frac_test: float = 0.1, seed: Optional[int] = None, log_every_n:

int = 1000, **kwargs) → Tuple[deepchem.data.datasets.Dataset,

deepchem.data.datasets.Dataset, deepchem.data.datasets.Dataset]

将self分割为训练集/验证集/测试集。.

返回训练集/验证集/测试集的数据集对象。.

参数

 dataset (Dataset) –被分割的数据集。

 train_dir (str, optional (default None)) – 如指明,产生的训练数据集贮存的地方。

只在isinstance(dataset, dc.data.DiskDataset)为真时考虑。

 valid_dir (str, optional (default None)) – 如指明,产生的验证数据集贮存的地方。

只在isinstance(dataset, dc.data.DiskDataset)为真时考虑。

 test_dir (str, optional (default None)) – 如指明,产生的测试数据集贮存的地方。

只在isinstance(dataset, dc.data.DiskDataset)为真时考虑。

frac_train (float, optional (default 0.8)) – 分到训练集中的数据的占比。

 frac_valid (float, optional (default 0.1)) – 分到验证集中的数据的占比。

 frac_test (float, optional (default 0.1)) – 分到测试集中的数据的占比。?

 seed (int, optional (default None)) – 使用的随机种子。

 log_every_n (int, optional (default 1000)) – 能过指明记录器的输出频率来控制记录器。

返回作为 dc.data.Dataset对象的训练集、验证集、测试集的元组。

返回类型 Tuple[Dataset, Optional[Dataset], Dataset]

RandomStratifiedSplitter

class RandomStratifiedSplitter

RandomStratified分割器类

对于稀疏多任务数据集,标准的分割不能保证分割分得到有活性的化合物。

该尽量安排使得每个任务都有一定比例的活性化合物。这对于单任务有严格的保证,但对于多任务数据集通常可以为每一个任务得到很准确的活性化合物分割结果。

注意:这个分割器主要用于布尔型标签数据。它只考虑标签为零还是非零。当标签有多个非零值时,它不会给每个分割一定比例的每个值。

split(dataset: deepchem.data.datasets.Dataset, frac_train: float = 0.8, frac_valid: float = 0.1,

frac_test: float = 0.1, seed: Optional[int] = None, log_every_n: Optional[int] = None) →

Tuple

返回指定分割的索引

参数

 seed (int, optional (default None)) – 使用的随机种子。

 frac_train (float, optional (default 0.8)) – 分到训练集中的数据的占比。

 frac_valid (float, optional (default 0.1)) – 分到验证集中的数据的占比。

 frac_test (float, optional (default 0.1)) – 分到测试集中的数据的占比。

 log_every_n (int, optional (default None)) – 通过指定日志频率来控制日志。

返回训练索引、验证索引、测试索引的元组。每个索引是一个numpy数组。

返回类型Tuple

k_fold_split(dataset: deepchem.data.datasets.Dataset, k: int, directories: Optional[

List[str]] = None, **kwargs) → List[Tuple[deepchem.data.datasets.Dataset,

deepchem.data.datasets.Dataset]]

参数

 dataset (Dataset) – 进行k-折分割的数据集

 k (int) – 数据集交要分割的折数。

 directories (List[str], optional (default None)) – 长度为2*k个文件路径列表来保存生成的disk-datasets。

返回k元组 (train, cv) 长度列表,其中 train和cv均为Dataset。

返回类型列表[Tuple[Dataset, Dataset]]

train_test_split(dataset: deepchem.data.datasets.Dataset, train_dir: Optional[str] = None,

test_dir: Optional[str] = None, frac_train: float = 0.8, seed: Optional[

int] = None, **kwargs) → Tuple[deepchem.data.datasets.Dataset,

deepchem.data.datasets.Dataset]

分割self到train/test集

返回训练/测试的数据集对象。

参数

 dataset (data like object) – 被分割的数据集。

 train_dir (str, optional (default None)) – 如指明,产生的训练数据集贮存的地方。

只在isinstance(dataset, dc.data.DiskDataset)为真时考虑。

 test_dir (str, optional (default None)) –如指明,产生的测试数据集贮存的地方。

只在isinstance(dataset, dc.data.DiskDataset)为真时考虑。

frac_train (float, optional (default 0.8)) – 分到训练集中的数据的占比。

seed (int, optional (default None)) – 使用的随机种子。R

返回作为dc.data.Dataset 对象的训练集和测试集的元组。

返回类型 Tuple[Dataset, Dataset]

train_valid_test_split(dataset: deepchem.data.datasets.Dataset, train_dir: Optional[str]

= None, valid_dir: Optional[str] = None, test_dir: Optional[str]

= None, frac_train: float = 0.8, frac_valid: float = 0.1,

frac_test: float = 0.1, seed: Optional[int] = None, log_every_n:

int = 1000, **kwargs) → Tuple[deepchem.data.datasets.Dataset,

deepchem.data.datasets.Dataset, deepchem.data.datasets.D

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python 3.12 解释器失效是指在某些情况下,Python 3.12 版本的解释器无法正常工作或运行代码。这可能是由于多种原因引起的,例如安装问题、兼容性问题或者其他系统配置问题。 如果你遇到了 Python 3.12 解释器失效的问题,可以尝试以下几个解决方法: 1. 检查安装:首先确保你已经正确地安装了 Python 3.12 版本的解释器。可以通过命令行输入 `python --version` 来确认当前使用的 Python 版本。如果显示的版本不是 3.12,可能是因为你没有正确地设置 Python 的环境变量或者没有正确地安装 Python 3.12。 2. 更新解释器:如果你已经安装了 Python 3.12,但仍然遇到问题,可以尝试更新解释器到最新版本。有时候,Python 的开发团队会发布补丁或修复程序来解决已知的问题。 3. 检查依赖项:某些 Python 库或模块可能不兼容 Python 3.12 版本。如果你在代码中使用了这些库或模块,可能会导致解释器失效。请检查你的代码中是否使用了不兼容的库,并尝试更新或替换这些库。 4. 查找错误信息:当解释器失效时,通常会显示一些错误信息或异常。请仔细阅读这些错误信息,以便更好地理解问题的原因。你可以在搜索引擎或开发者社区中搜索这些错误信息,以找到解决方案或相关的讨论。 如果以上方法都无法解决问题,你可以尝试使用其他版本的 Python 解释器,或者向 Python 社区或开发者寻求帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值