如何在机器学习中使用 K 折验证进行欠采样

时间:2021-02-07 22:32:21

标签: python machine-learning

我正在为我的项目 rn 处理一个高度不平衡的数据集,为简单起见,我将在这里举一个简单的例子:一个数据集有 20 个 0 和 80 个 1,所以总数是 100。

假设我已经使用X_train, X_test,y_train,y_test = train_test_split(X, y,stratify=y,random_state=42)进行了分层分割(X_train.shape 为 80,X_test.shape 为 20),那么我的问题是如何实现欠采样 < strong>同时在训练数据集中进行 K 折验证。

我最初的想法是使用 from imblearn.under_sampling import RandomUnderSampler 得到 16 个 '0's 和 16 个 '1's(总共是 32 个)来制作均匀分布的数据集,然后对该 32 个数据集进行 K 折交叉验证并丢弃其余的X_train 中的 48 个。使用模型来预测 X_test。所以我想知道这是否是正确的处理程序。

1 个答案:

答案 0 :(得分:0)

您可以使用 RandomUnderSampler 方法来实现它。将随机状态和比率值放入参数中,然后尝试看看这是否有效。