【问题标题】:Python/ML: Which methods to use for Multiclass Classification for Product Categorization?Python/ML:产品分类的多类分类使用哪些方法?
【发布时间】:2020-05-27 08:04:19
【问题描述】:

在泡菜中……

我有一个包含 >100,000 次观察的数据集;数据集的列包括 CustomerIDVendorIDProductIDCatNMap。这是它的样子:

如您所见,前 3 列(CustomerID、VendorID、ProductID)中表示的值表示唯一的数字映射值,如果在 x,y 平面上表示将毫无意义(这消除了对许多分类方法的使用);最后一列包含客户分配的类别的字符串。现在,这里是我不明白的部分,不知道如何接近......

目标: 是为客户预测未来的 CatNMap 值,但是在我看来,我在这里拥有的功能没有用,这是真的吗?现在如果是,我可以使用什么方法,因为 CatNMap 列有 >7,000 个唯一值;另外,如果假设同一产品有 2 个或更多不同的类别由不同的客户分配,那么任何方法将如何处理对未来项目的分类?我需要为此实施 NN 吗?

感谢所有答案!

【问题讨论】:

  • 请不要忘记为所有有效的答案投票,并接受您最喜欢的答案。可能您知道这一点,但这是为了让社区知道哪些答案是有用的,并奖励人们的时间和精力;)请参阅此 meta.stackexchange.com/questions/5234/ 和 meta.stackexchange.com/问题/173399/

标签: python machine-learning neural-network classification multiclass-classification


【解决方案1】:

据我了解,您的目标是根据前 3 列(您的输入数据作为特征)预测 CatNMap(您的输出数据)。

正如你之前所说,(CustomerID, VendorID, ProductID) 是 3 个categorical variables,这意味着它们可能具有的值与数量无关,而是与类别有关。所以两个连续的值可能与它们的实际含义无关。如我所见,您的输出 CatNMap 也是如此。

话虽如此,有几种方法可以处理分类变量。 根据我的经验,对于您的问题,我会为您的所有数据尝试One Hot Encoding (CustomerID, VendorID, ProductID, CatNMap)。更重要的是,如果您发现可能的话,也许值得尝试使用 embeddings 代替 ProductID, CatNMap 而不是 OneHotEncoding。

至于使用哪种算法,绝对值得尝试训练随机森林和多层感知器模型,并在调整后进行比较。

我发现this guide 很有用,您可以在其中看到一些示例,但是还有许多其他资源可以处理这个主题。 你也应该看看this

【讨论】:

  • 您好,感谢您的建议!您会说在对数据集进行 One Hot Enconding 之后,使用随机森林是否适用...?对于超过 500K 观察的数据集,随机森林是一个不错的选择吗?
  • @DGomonov 我已经将随机森林与 sklearn 的 OHE 一起使用,没有问题,我认为你也不应该有任何问题。您可以展示算法的好例子越多,它在现实世界中的表现就越好。另外,您可能想看看here
【解决方案2】:

这些特征似乎无法预测输出,即使它们是预测性的,70,000 个类需要海量数据集进行训练,我认为用常规方法无法解决问题,让我们想想一些想法

【讨论】:

    猜你喜欢
    • 2016-09-04
    • 2014-10-29
    • 1970-01-01
    • 2013-11-02
    • 2012-03-03
    • 2018-12-06
    • 2017-08-09
    • 2019-11-12
    • 1970-01-01
    相关资源
    最近更新 更多