split

split(mapped_triples: Tensor, ratios: float | Sequence[float] = 0.8, random_state: None | int | Generator = None, randomize_cleanup: bool = False, method: str | None = None) Sequence[Tensor][source]

将三元组分割成干净的组。

Parameters:
  • mapped_triples (Tensor) – 形状: (n, 3) 基于ID的三元组。

  • ratios (float | Sequence[float]) – 此参数有三种选项。 首先,可以给出一个介于0和1.0之间的浮点数(不包括0和1.0)。第一组三元组将获得此比例,第二组将获得剩余部分。 其次,可以给出一个比例列表,指定每组应按什么顺序获得什么比例,如[0.8, 0.1]。 最终比例可以省略,因为可以计算得出。 第三,可以明确设置所有比例,如[0.8, 0.1, 0.1],其中所有比例的总和为1.0。

  • random_state (None | int | Generator) – 用于打乱和分割三元组的随机状态。

  • randomize_cleanup (bool) – 如果为真,则使用非确定性方法将三元组移动到训练集。这样做的优点是它不一定需要移动所有的三元组,但由于它一次只移动一个三元组,因此可能会显著变慢。

  • method (str | None) – 要使用的方法的名称,参见 splitter_resolver。默认为“coverage”,即, CoverageSplitter

Returns:

三元组的分区,根据比例(大约)进行分割。

Return type:

Sequence[Tensor]

ratio = 0.8  # makes a [0.8, 0.2] split
train, test = split(triples, ratio)

ratios = [0.8, 0.1]  # makes a [0.8, 0.1, 0.1] split
train, test, val = split(triples, ratios)

ratios = [0.8, 0.1, 0.1]  # also makes a [0.8, 0.1, 0.1] split
train, test, val = split(triples, ratios)