使用sklearn在训练集中获得同等比例的每节课

  • 本文关键字:sklearn 集中 使用 scikit-learn
  • 更新时间 :
  • 英文 :


我正在研究一个带有不平衡标签的数据集的多类分类问题,我想研究我的算法在小样本量情况下的表现。

我想做的是通过随机统一选择每个类的p%来专门创建我的训练集。具体来说,假设我有{(A,20(,(B,40(,(C,90(}的类和计数,其中类型为(ClassName,NumSamples(。我希望能够对每节课的10%进行采样,以获得一个训练集{(a,2(,(B,4(,(C,9(}。

我试着做这个

X_trn, X_tst, y_trn, y_tst = train_test_split(X,y,test_size=0.9,stratify=y)

以及我从中得到的数字

print(pd.Series(y_trn).value_counts())
print(pd.Series(y_tst).value_counts())
print(X.shape)
print(X_trn.shape)

暗示我得到了我想要的,但我想在下一步走之前仔细检查一下。

Panda的描述方法可以帮助您找到train_testrongplit之后的分布。

print(X_trn["ClassName"].describe())

希望它能有所帮助!

最新更新