Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中带替换的分层样本_Python_Random_Sample_Sklearn Pandas - Fatal编程技术网

python中带替换的分层样本

python中带替换的分层样本,python,random,sample,sklearn-pandas,Python,Random,Sample,Sklearn Pandas,我有一个熊猫数据帧。我正在尝试创建一个带有替换项的示例数据帧,并将其分层 这允许我替换: df_test = df.sample(n=100, replace=True, random_state=42, axis=0) 然而,我不知道如何也分层。我可以使用权重参数吗?如果可以,如何使用?我要分层的列是字符串 这使我能够对以下内容进行分层: from sklearn.model_selection import train_test_split X_train, X_test, y_trai

我有一个熊猫
数据帧
。我正在尝试创建一个带有替换项的示例
数据帧
,并将其分层

这允许我替换:

df_test = df.sample(n=100, replace=True, random_state=42, axis=0)
然而,我不知道如何也分层。我可以使用
权重
参数吗?如果可以,如何使用?我要分层的列是字符串

这使我能够对以下内容进行分层:

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(
    X, Y, test_size=.50, stratify=Y, random_state=42)
但是,没有替代的选择


如何同时进行分层和替换?

据我所知,默认的
StratifiedShuffleSplit
from将与替换一起运行,即非互斥的strats。希望我理解正确

将numpy导入为np
从sklearn.model_选择导入分层hufflesplit
X=np.数组([[1,2],[3,4],[1,2],[3,4],[1,2],[3,4])
y=np.array([0,0,0,1,1,1])
sss=StratifiedShuffleSplit(n_分割=5,测试大小=0.5,随机状态=0)
sss.get_n_分割(X,y)
打印(sss)
对于序列索引,测试sss中的索引。拆分(X,y):
打印(“列车:,列车索引,测试:,测试索引)
X_列,X_测试=X[列索引],X[测试索引]
y_列,y_测试=y[列指数],y[测试指数]
收益率:

TRAIN: [5 2 3] TEST: [4 1 0]
TRAIN: [5 1 4] TEST: [0 2 3]
TRAIN: [5 0 2] TEST: [4 3 1]
TRAIN: [4 1 0] TEST: [2 3 5]
TRAIN: [0 5 1] TEST: [3 4 2]

这是一个有点老的问题,但既然谷歌在我寻找同样的东西时首先给了我这个,我想把这个留给每个人都会很有用,包括我未来的自己

显然,
sklearn
提供了以下功能:


您可以使用
n\u samples
参数控制样本量。默认情况下,它设置为
None
,因此您可以返回带有替换的
X.shape[0]
随机样本(因为这是为引导目的而设计的)。希望这对其他人有所帮助。

您想用什么替换?请注意,
stratify
选项仅在
from sklearn import datasets
from sklearn.utils import resample

X, y = datasets.load_iris(return_X_y=True)
X_new, y_new = resample(X, y, stratify=y)