重采样#
- sklearn.utils.resample(*arrays, replace=True, n_samples=None, random_state=None, stratify=None)[源代码]#
以一致的方式重新采样数组或稀疏矩阵。
默认策略实现引导过程的一个步骤。
- 参数:
- *arrays形状的阵列状序列(n_samples,)或 (n_样本,n_输出)
可索引数据结构可以是具有一致第一维度的数组、列表、椭圆形结构或Scipy稀疏矩阵。
- replace布尔,默认=True
通过替换重新分配实现。如果为假,这将实现(切片)随机排列。
- n_samplesint,默认=无
要生成的样本数量。如果将其保留为无,则该值会自动设置为数组的第一维度。如果replace为False,则不应大于数组的长度。
- random_stateint,RandomState实例或无,默认=无
确定用于洗牌数据的随机数生成。传递int以获得跨多个函数调用的可重复结果。看到 Glossary .
- stratify形状(n_samples,)的{类数组,稀疏矩阵}或 (n_samples,n_outputs),默认=无
如果不是无,则以分层方式拆分数据,并使用其作为类标签。
- 返回:
- resampled_arrays形状的阵列状序列(n_samples,)或 (n_样本,n_输出)
重新采样的集合副本的顺序。原始阵列不受影响。
参见
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]