我正在尝试对数据集进行一些监督机器学习。
我的数据组织在一个 DataFrame 中,样本作为行,特征作为列。我的专栏之一包含样本所属的类别。
我想将我的数据集分成两半,以便样本在类别之间均匀分布。 是否有这样做的原生 pandas 方法,还是我必须遍历每一行并将每个样本单独分配给训练组或测试组?
这是我的数据如何组织的说明性示例。列char
表示每行所属的类别。
feature char
0 SimpleCV.Features.Blob.Blob object at (38, 74)... A
1 SimpleCV.Features.Blob.Blob object at (284, 26... A
2 SimpleCV.Features.Blob.Blob object at (87, 123... B
3 SimpleCV.Features.Blob.Blob object at (198, 37... B
4 SimpleCV.Features.Blob.Blob object at (345, 60... C
5 SimpleCV.Features.Blob.Blob object at (139, 92... C
6 SimpleCV.Features.Blob.Blob object at (167, 83... D
7 SimpleCV.Features.Blob.Blob object at (57, 54)... D
8 SimpleCV.Features.Blob.Blob object at (35, 77)... E
9 SimpleCV.Features.Blob.Blob object at (136, 73... E
参考上面的示例,我想最终得到两个 DataFrame,每个 DataFrame 包含每个char
类别中一半的样本。在此示例中,每种char
类型有两种,因此生成的 DataFrame 将分别有A
一行、B
一行等...
但是,我应该提到,char
我的实际数据中每个类别的行数可能会有所不同。
首先十分感谢!