留一組交叉驗證 (LeaveOneGroupOut)#
- class sklearn.model_selection.LeaveOneGroupOut[source]#
留一組交叉驗證器。
提供訓練/測試索引以分割數據,使得每個訓練集都包含除屬於特定組的所有樣本之外的所有樣本。任意領域特定的組信息以整數數組的形式提供,該數組對每個樣本的組進行編碼。
例如,組可以是樣本的收集年份,因此可以針對基於時間的分割進行交叉驗證。
在使用者指南中閱讀更多信息。
參見
GroupKFold
K折疊迭代器變體,具有非重疊組。
注意事項
分割根據要排除的組的索引順序排列。第一個分割的測試集由在
groups
中索引最低的組組成,依此類推。範例
>>> import numpy as np >>> from sklearn.model_selection import LeaveOneGroupOut >>> X = np.array([[1, 2], [3, 4], [5, 6], [7, 8]]) >>> y = np.array([1, 2, 1, 2]) >>> groups = np.array([1, 1, 2, 2]) >>> logo = LeaveOneGroupOut() >>> logo.get_n_splits(X, y, groups) 2 >>> logo.get_n_splits(groups=groups) # 'groups' is always required 2 >>> print(logo) LeaveOneGroupOut() >>> for i, (train_index, test_index) in enumerate(logo.split(X, y, groups)): ... print(f"Fold {i}:") ... print(f" Train: index={train_index}, group={groups[train_index]}") ... print(f" Test: index={test_index}, group={groups[test_index]}") Fold 0: Train: index=[2 3], group=[2 2] Test: index=[0 1], group=[1 1] Fold 1: Train: index=[0 1], group=[1 1] Test: index=[2 3], group=[2 2]
- get_metadata_routing()[source]#
獲取此物件的元數據路由。
請查看 使用者指南,了解路由機制的運作方式。
- 返回:
- 路由MetadataRequest
一個封裝路由信息的
MetadataRequest
。
- get_n_splits(X=None, y=None, groups=None)[source]#
返回交叉驗證器中的分割迭代次數。
- 參數:
- Xobject
始終被忽略,為兼容性而存在。
- yobject
始終被忽略,為兼容性而存在。
- groupsarray-like of shape (n_samples,)
將數據集分割為訓練/測試集時使用的樣本組標籤。必須始終指定此「groups」參數以計算分割次數,但可以省略其他參數。
- 返回:
- 返回:
返回交叉驗證器中的分割迭代次數。
- n_splitsint
請求傳遞給
split
方法的元數據。請注意,僅當
enable_metadata_routing=True
時,此方法才相關(請參閱sklearn.set_config
)。請查看 使用者指南,了解路由機制的運作方式。每個參數的選項為
True
:請求元數據,如果提供,則傳遞給split
。如果未提供元數據,則忽略該請求。False
:不請求元數據,元估計器不會將其傳遞給split
。None
:不請求元數據,如果用戶提供元數據,元估計器將引發錯誤。str
:元數據應使用此給定別名而不是原始名稱傳遞給元估計器。
預設值 (
sklearn.utils.metadata_routing.UNCHANGED
) 會保留現有請求。這允許您更改某些參數的請求,而不更改其他參數的請求。於 1.3 版新增。
請注意
僅當此估計器用作元估計器的子估計器時,此方法才相關,例如在
Pipeline
內部使用。否則,它不起作用。- 參數:
- groupsstr、True、False 或 None,預設值=sklearn.utils.metadata_routing.UNCHANGED
split
中groups
參數的元數據路由。
- 返回:
- selfobject
更新後的物件。
- split(X, y=None, groups=None)[source]#
生成索引以將數據分割為訓練集和測試集。
- 參數:
- Xarray-like of shape (n_samples, n_features)
訓練數據,其中
n_samples
是樣本數,n_features
是特徵數。- yarray-like of shape (n_samples,), default=None
監督學習問題的目標變數。
- groupsarray-like of shape (n_samples,)
將數據集分割為訓練/測試集時使用的樣本組標籤。
- 產生:
- trainndarray
該分割的訓練集索引。
- testndarray
該分割的測試集索引。