resample#

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

以一致的方式对数组或稀疏矩阵进行重采样。

默认策略实现引导程序的一个步骤。

参数:
*arrays形状为 (n_samples,) 或 (n_samples, n_outputs) 的数组类序列

可索引数据结构可以是数组、列表、数据帧或具有一致第一维度的 scipy 稀疏矩阵。

replace布尔值,默认为 True

实现有放回的重采样。当以非均匀权重进行采样时,必须将其设置为 True:预期具有非常大权重的少数数据点将被多次采样,以保留由权重引起的分布。如果为 False,这将实现(切片)随机排列。

n_samples整型,默认为 None

要生成的样本数量。如果留空(None),则自动设置为数组的第一维。如果 replace 为 False,则不应大于数组的长度。

random_state整型,RandomState 实例或 None,默认为 None

确定数据洗牌的随机数生成。传递一个整型值可在多次函数调用中获得可重现的结果。请参阅 词汇表

stratify形状为 (n_samples,) 或 (n_samples, n_outputs) 的 {类数组,稀疏矩阵},默认为 None

如果不为 None,数据将以分层方式进行拆分,并将其用作类别标签。

sample_weight形状为 (n_samples,) 的类数组,默认为 None

包含与每个样本关联的权重值。值被归一化为总和为一,并解释为对每个数据点进行采样的概率。

版本 1.7 新增。

返回:
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]