当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python sklearn GroupShuffleSplit用法及代码示例


本文简要介绍python语言中 sklearn.model_selection.GroupShuffleSplit 的用法。

用法:

class sklearn.model_selection.GroupShuffleSplit(n_splits=5, *, test_size=None, train_size=None, random_state=None)

Shuffle-Group(s)-Out 交叉验证迭代器

提供随机训练/测试索引以根据第三方提供的组拆分数据。该组信息可用于将样本的任意域特定分层编码为整数。

例如,这些组可以是样本收集的年份,因此允许针对基于时间的拆分进行交叉验证。

LeavePGroupsOut 和 GroupShuffleSplit 之间的区别在于,前者使用大小为 p 的唯一组的所有子集生成分割,而 GroupShuffleSplit 生成 user-determined 数量的随机测试分割,每个分割的 user-determined 分数为独特的群体。

例如,LeavePGroupsOut(p=10) 的计算密集度较低的替代方案是 GroupShuffleSplit(test_size=10, n_splits=100)

注意:参数 test_sizetrain_size 指的是组,而不是样本,就像在 ShuffleSplit 中一样。

在用户指南中阅读更多信息。

参数

n_splits整数,默认=5

重新洗牌和拆分迭代的次数。

test_size浮点数,整数,默认=0.2

如果是浮点数,则应介于 0.0 和 1.0 之间,表示要包含在测试拆分中的组的比例(四舍五入)。如果是int,表示测试组的绝对数量。如果为 None,则将该值设置为火车大小的补码。默认值将在 0.21 版本中更改。仅当 train_size 未指定时,它将保持 0.2,否则它将补充指定的 train_size

train_size浮点数或整数,默认=无

如果浮点数,则应介于 0.0 和 1.0 之间,并表示要包含在火车拆分中的组的比例。如果是 int,则表示列车组的绝对数量。如果没有,该值将自动设置为测试大小的补码。

random_stateint、RandomState 实例或无,默认=无

控制生成的训练和测试指标的随机性。传递 int 以在多个函数调用之间实现可重现的输出。请参阅术语表。

例子

>>> import numpy as np
>>> from sklearn.model_selection import GroupShuffleSplit
>>> X = np.ones(shape=(8, 2))
>>> y = np.ones(shape=(8, 1))
>>> groups = np.array([1, 1, 2, 2, 2, 3, 3, 3])
>>> print(groups.shape)
(8,)
>>> gss = GroupShuffleSplit(n_splits=2, train_size=.7, random_state=42)
>>> gss.get_n_splits()
2
>>> for train_idx, test_idx in gss.split(X, y, groups):
...     print("TRAIN:", train_idx, "TEST:", test_idx)
TRAIN: [2 3 4 5 6 7] TEST: [0 1]
TRAIN: [0 1 5 6 7] TEST: [2 3 4]

相关用法


注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.model_selection.GroupShuffleSplit。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。