我有一只熊猫schemaFormValidate
。我正在尝试创建一个带有替换的示例<template>
<div class="container">
<div v-for="n in 3" :key="n">{{n}}</div>
<div v-for="n in arr" :key="n">{{n}}</div>
</div>
</template>
<script>
export default {
name: 'MyComponent',
data () {
return {
arr: ['A', 'B', 'C']
}
}
}
<style scoped>
.container div{
border: 1px solid black;
}
</style>
并对其进行分层。
这使我可以替换:
DataFrame
但是,我不确定如何进行分层。我可以使用DataFrame
参数吗?我要分层的列是字符串。
这使我可以分层:
df_test = df.sample(n=100, replace=True, random_state=42, axis=0)
但是,没有替代的选择。
我如何进行分层和替换?
答案 0 :(得分:2)
这是一个古老的问题,但是由于google在寻找同一件事时首先将其返回给我,因此我认为将其留给所有人,包括我未来的自我,将很有用。
显然sklearn
在sklearn.utils.resample中提供了此功能:
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)
您可以使用n_samples
参数控制样本量。默认情况下,它设置为None
,因此您将获得X.shape[0]
个随机样本并进行替换(因为这是为引导而设计的)。希望这对某人有帮助。
答案 1 :(得分:0)
据我所知,sklearn中的默认StratifiedShuffleSplit
将替换运行,即非互斥策略。希望我能正确理解你。
import numpy as np
from sklearn.model_selection import StratifiedShuffleSplit
X = np.array([[1, 2], [3, 4], [1, 2], [3, 4], [1, 2], [3, 4]])
y = np.array([0, 0, 0, 1, 1, 1])
sss = StratifiedShuffleSplit(n_splits=5, test_size=0.5, random_state=0)
sss.get_n_splits(X, y)
print(sss)
for train_index, test_index in sss.split(X, y):
print("TRAIN:", train_index, "TEST:", test_index)
X_train, X_test = X[train_index], X[test_index]
y_train, y_test = y[train_index], y[test_index]
产量:
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]