【问题标题】:Multi-label classification methods for large dataset大数据集的多标签分类方法
【发布时间】:2018-10-11 13:10:03
【问题描述】:

我意识到还有另一个标题相似的问题,但我的数据集非常不同。

我有近 4000 万行和大约 3000 个标签。运行一个简单的 sklearn train_test_split 需要将近 20 分钟。

我最初使用的是多类分类模型,因为这就是我所拥有的全部经验,我意识到,由于我需要提出所有可能的标签,特定记录可能会与之相关联,所以我应该使用多标签分类方法。

我正在寻找有关如何有效执行此操作的建议。我尝试了二元相关性,花了将近 4 个小时来训练。分类器链在 22 小时后因内存错误而出错。我害怕尝试标签 powerset,因为我读过它们不能很好地处理大量数据。最后,我有适应算法、MlkNN 和集成方法(我也担心性能方面的问题)。

还有其他人在处理此类问题和数据量方面有经验吗?除了建议的模型,我还希望获得有关最佳训练方法的建议,例如 train_test_split 比率或不同/更好的方法。

【问题讨论】:

  • 这个问题可能更适合Data Science,如果它适合该网站的posting guidelines
  • 糟糕,我本来是想这么做的。我该如何移动它?我是否只是删除此并重新发布
  • 只是好奇,多分类是什么意思?它与多标签分类有何不同?
  • 我的意思是多类分类,每个数据点只能属于一个类别,而多标签意味着每个数据点可以分配给多个标签。

标签: python scikit-learn multilabel-classification


【解决方案1】:

这种规模的工作 20 分钟似乎并不长,4 小时的培训也不长。

我真的会尝试 vowpal wabbit。它在这种多标签问题上表现出色,如果您追求的是这样,它可能会提供无与伦比的性能。它需要大量调整,并且仍然需要高质量的训练数据,但这是非常值得的。这本质上只是一个二元分类问题。集成当然需要更长的时间,因此请根据您的精度要求考虑是否有必要。

【讨论】:

  • 我从未听说过 vowpal 兔。你在 Windows 机器和 python 上使用过这个吗?
  • 我在 Linux 上使用过 python 客户端和命令行实用程序,但它看起来完全兼容 Windows。我认为它实际上是作为 Microsoft 研究的一部分而开发的。
猜你喜欢
  • 2013-12-15
  • 2017-11-08
  • 1970-01-01
  • 2017-11-01
  • 2017-11-21
  • 2021-08-17
  • 2017-11-08
  • 2020-10-23
  • 1970-01-01
相关资源
最近更新 更多