python - 用于具有阈值的多输出图像分类的拆分数据集
问题描述
我使用 sklearn.model_selection 中的 StratifiedShuffleSplit 来拆分数据集。但这仅适用于 1 个标签。那么如何对两个标签进行分层拆分,并为每个标签中的每个类中的样本数添加一个阈值呢?对不起,我的英语不好。
from sklearn.model_selection import StratifiedShuffleSplit
split = StratifiedShuffleSplit(n_splits=1, test_size=val_size, random_state=42)
for train_index, val_index in split.split(tdf, tdf['layout']):
train_df = tdf.loc[train_index]
val_df = tdf.loc[val_index]
解决方案
您能否详细说明(在每个班级的每个标签中)?
此 API 可用于确保训练集和测试集在每个类中具有示例比例。换句话说,我们用它来确保我们在训练和测试集中都有来自每个类的样本。它不处理不平衡类的问题,这是另一个问题。
如果您的意思是 1 个类乘 1 个标签,那么您需要在拆分前检查类数
tdf['layout'].nunique()
输出应该是:2
此外,在您的代码中,您只拆分独立功能(输入)而不拆分输出/目标(在您的情况下:tdf['layout])
添加这行代码:
y_train, y_val = tdf['layout][train_index], tdf['layout][val_index]
此外,只需确保从 tdf 中删除了“布局”列
推荐阅读
- python - 第一次通过重复功能
- ansible - 使用 ansible url 模块设置 bitbucket 分支权限
- python - OpenCV 网络摄像头问题
- mysql - 加入六表在 php 和 mysql 中不起作用
- oop - 如何使用 OCAML 以函数式编程概念对我的游戏项目进行建模?
- database - (Laravel)在 DB::raw 中获取当前日期和给定日期的差异
- ios - 从 Swift 将视频上传到 Amazon S3
- html - 可访问性如何对评级组件起作用?
- excel - 无论我的 pivotItems 的值/更改如何,都将 Pivot 字段“公司代码”始终设置为 True(可见)
- android - Android 库活动应该以自己的主题独立打开