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()
不会在内存中具体化数据集。