pyt*_*das 4 python random sample sklearn-pandas
我有一只熊猫DataFrame。我正在尝试创建一个DataFrame带有替换的样本并将其分层。
这允许我替换:
df_test = df.sample(n=100, replace=True, random_state=42, axis=0)
Run Code Online (Sandbox Code Playgroud)
但是,我不确定如何分层。我可以使用该weights参数吗?如果可以,如何使用?我想要分层的列是字符串。
这让我可以分层:
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)
Run Code Online (Sandbox Code Playgroud)
但是,没有选择替换。
如何同时分层和替换?
小智 5
这是一个有点老的问题,但由于当我在寻找相同的东西时,谷歌首先返回了我这个问题,我认为将这个问题留在这里对每个人(包括我未来的自己)都是有用的。
显然在sklearn.utils.resamplesklearn中提供了此功能:
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)
Run Code Online (Sandbox Code Playgroud)
您可以使用参数控制样本数量n_samples。默认情况下,它设置为None,因此您可以返回X.shape[0]带有替换的随机样本(因为这是为引导目的而设计的)。希望这对某人有帮助。