python:从数据中随机抽取样本但保持相同的分布

Ziq*_*iqi 2 python pandas scikit-learn

我有一个包含 20,000 多个实例的训练数据,分为 3 个类,分布类似于 A=10%、B=20%、C=70%。在 sklearn 或 pandas 或其他任何东西中,有没有办法可以从这些数据中抽取 10% 的样本,但同时又要尊重不同类别的分布?因为我需要对数据进行网格搜索,但原始数据集维度太高(20,000 x 12,000 特征维度)

train_test_split 将保持分布,但它只会将整个数据集分成两组,这仍然太大。

谢谢

shi*_*vsn 5

您应该使用Stratifiefkfold。通过保留每个类别的样本百分比来进行折叠。请参阅有关使用它的文档。