对于多标签分层,我们有一个很好的解决方案,由scikit-multilearn实现,我相信它是基于“多标签数据分层”中提出的算法。但是,在某些情况下,当我们的数据集中的一些样本缺乏独立性时,我们需要分离的数据来包含不重叠的组。例如,如果我们有来自A组的10个样本和来自B组的5个样本,那么所有的A组样本都需要在一个分离的数据集中,而来自B组的所有样本都需要在另一个集合中。有谁知道实现这一目标的算法或近似算法吗?我可以用不相交的组生成训练和测试集,也可以创建标签分层培训和测试集,但我还没有找到一种好的方法来实现这两种方法。
发布于 2023-01-27 15:23:24
实现这一目标的一种方法是将标签分层和基于组的分层结合起来。
首先,可以使用标签分层来确保标签在培训和测试集之间的分布是平衡的。然后,您可以使用基于组的分层,以确保来自每一组的样本在培训和测试集合中是不重叠的。
一种方法是首先识别数据集中的组,然后将每个组中的样本分成两组:一组用于培训,另一组用于测试。然后,您可以将来自每个组的培训集组合成您的最终培训集,并对测试集执行相同的操作。
另一种方法可能是使用K折叠交叉验证的修改版本,您可以确保来自某个组的样本总是在相同的折叠中。
需要注意的是,这个问题没有一个完美的解决方案,这取决于数据集的具体特征和分类任务的目标。
https://datascience.stackexchange.com/questions/118066
复制相似问题