我想将我的数据集拆分为两部分,75%用于培训,25%用于测试。有两个班。 我有另一个只有一个类的实例的数据集,其余所有实例都属于第二类。 所以我不想随意拆分。我想确保,如果只有一个类的一个实例,它应该在训练中。任何想法如何做到这一点。我知道我必须选择指数,但我不知道如何。 现在,我正在这样做,它首先选择75%作为培训并保持测试
train_data = df[:int((len(df)+1)*.75)]
test_data = df[int(len(df)*.75+1):]
答案 0 :(得分:1)
这有助于:GroupKFold
。在那里找到sklearn doc:
http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GroupKFold.html
答案 1 :(得分:1)
你正在寻找一个分层的火车和测试分裂:sklearn.model_selection.StratifiedKFold.html
答案 2 :(得分:0)
您的数据集是否会根据输入进行更改,还是会保持一致的数据量?如果是后者,您可以简单地将总数的75%作为拼接方法的第二个参数。例如,如果你有100个项目,你可以指定你的train_data = df [0:75:]和另一个test_data = df [76:]。
但是如果没有模型或缩短的脚本,我认为我不能做更多的事情。
答案 3 :(得分:0)
试试这个:
train_data = df [:int(len(df)* .75)] test_data = df [int(len(df)* .75):: int(len(df)* .25) - 1]
根据10个整数列表进行测试时,它对我有用。