ray.data.Dataset.split_proportionately#
- Dataset.split_proportionately(proportions: List[float]) List[MaterializedDataset][源代码]#
使用比例来实现数据集的物化和分割。
一个常见的用例是将数据集分割为训练集和测试集(相当于例如 scikit-learn 的
train_test_split)。对于更高层次的抽象,请参见Dataset.train_test_split()。此方法分割数据集,以确保所有分割至少包含一行。如果无法做到这一点,则会引发异常。
这相当于手动计算索引并调用
Dataset.split_at_indices()。备注
此操作将触发对此数据集执行的延迟转换。
示例
>>> import ray >>> ds = ray.data.range(10) >>> d1, d2, d3 = ds.split_proportionately([0.2, 0.5]) >>> d1.take_batch() {'id': array([0, 1])} >>> d2.take_batch() {'id': array([2, 3, 4, 5, 6])} >>> d3.take_batch() {'id': array([7, 8, 9])}
时间复杂度:O(分割次数)
- 参数:
proportions – 分割数据集的比例列表。必须总和小于1,并且每个比例必须大于0。
- 返回:
数据集的划分。
参见
Dataset.split()与
split_proportionately()不同,后者允许你将数据集分割成不同的大小,而Dataset.split()则将数据集分割成大致相等的份数。Dataset.split_at_indices()Dataset.split_proportionately()在幕后使用了这种方法。Dataset.streaming_split()。与
split()不同,streaming_split()不会在内存中具体化数据集。