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)