首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >L在分割数据时,如何在训练集中得到50%的例子,在每个类中得到50 %的测试集?

L在分割数据时,如何在训练集中得到50%的例子,在每个类中得到50 %的测试集?
EN

Data Science用户
提问于 2017-11-24 10:15:36
回答 1查看 3.6K关注 0票数 5

L有一个有10个类的200个例子的数据集。L希望将数据集分成50%的训练集和50%的测试集。

每节课L都有20个例子。因此,L希望每堂课都能得到10个训练范例和10个测试范例。

以下是我的课程:

代码语言:javascript
复制
classes=['BenchPress', 'ApplyLipstick', 'BabyCrawling', 'BandMarching', 'Archery', 'Basketball', 'ApplyEyeMakeup', 'BalanceBeam', 'BaseballPitch', 'BasketballDunk']

L尝试了以下几点:

代码语言:javascript
复制
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(final_data, true_label, test_size=0.50, random_state=42)

然而,它返回50%的训练集和50 %的测试集,而不尊重每个班级的比例(l希望在测试集中得到10个例子,在每个班级中得到10个例子)。以下是由此产生的分裂:

EN

回答 1

Data Science用户

回答已采纳

发布于 2017-11-24 12:50:31

从0.17版本开始,train_test_split应该使用分层参数给出分层结果。

示例代码:

代码语言:javascript
复制
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(final_data, true_label, test_size=0.50, random_state=42, stratify=true_label)

从有关参数分层的文档中:

分层:类似数组或无(默认为无),如果不是无,数据将以分层的方式分割,使用它作为标签数组。新版本0.17:分层分裂

希望这能有所帮助!

票数 5
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/25073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档