重採樣 (resample)#

sklearn.utils.resample(*arrays, replace=True, n_samples=None, random_state=None, stratify=None)[來源]#

以一致的方式重新取樣陣列或稀疏矩陣。

預設策略實施引導程序的一個步驟。

參數 (Parameters):
*arrays形狀為 (n_samples,) 或 (n_samples, n_outputs) 的類陣列序列

可索引的資料結構可以是陣列、列表、資料框架或具有一致第一維的 scipy 稀疏矩陣。

replacebool,預設值為 True

實施有放回的重採樣。如果為 False,則將實施(切片的)隨機排列。

n_samplesint,預設值=None

要產生的樣本數量。如果設為 None,則會自動設為陣列的第一個維度。如果 replace 為 False,則不應大於陣列的長度。

random_stateint,RandomState 實例或 None,預設值=None

決定數據洗牌的隨機數生成。傳遞一個整數以在多次函數調用中獲得可重現的結果。請參閱詞彙表

stratify形狀為 (n_samples,) 或 (n_samples, n_outputs) 的類陣列或稀疏矩陣,預設值=None

如果不是 None,則使用此作為類別標籤,以分層方式分割數據。

返回:
resampled_arrays形狀為 (n_samples,) 或 (n_samples, n_outputs) 的類陣列序列

集合的重新採樣副本序列。原始陣列不受影響。

另請參閱

洗牌 (shuffle)

以一致的方式對陣列或稀疏矩陣進行洗牌。

範例

可以在同一次運行中混合稀疏和密集陣列

>>> import numpy as np
>>> X = np.array([[1., 0.], [2., 1.], [0., 0.]])
>>> y = np.array([0, 1, 2])

>>> from scipy.sparse import coo_matrix
>>> X_sparse = coo_matrix(X)

>>> from sklearn.utils import resample
>>> X, X_sparse, y = resample(X, X_sparse, y, random_state=0)
>>> X
array([[1., 0.],
       [2., 1.],
       [1., 0.]])

>>> X_sparse
<Compressed Sparse Row sparse matrix of dtype 'float64'
    with 4 stored elements and shape (3, 2)>

>>> X_sparse.toarray()
array([[1., 0.],
       [2., 1.],
       [1., 0.]])

>>> y
array([0, 1, 0])

>>> resample(y, n_samples=2, random_state=0)
array([0, 1])

使用分層的範例

>>> y = [0, 0, 1, 1, 1, 1, 1, 1, 1]
>>> resample(y, n_samples=5, replace=False, stratify=y,
...          random_state=0)
[1, 1, 1, 0, 1]