當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。