使用 LightGBM 进行多类别或多标签分类

use*_*836 6 multilabel-classification multiclass-classification lightgbm

我正在开展一个分类项目,一个结果可能属于多个类别。例如,结果可能属于 A、B 和/或 C 类;例如,A、B、A&B、A&C、B&C 等。但是,我想预测一个类别的概率。例如,P(A)=结果包含 A 类的概率;例如,Pr(A)+Pr(A&B)+Pr(A&C)+Pr(A&B&C)。

我更喜欢使用 LightGBM。我的问题是:

  1. 对于 LightGBM,结果类别必须是互斥的吗?
  2. 对于 LightGBM,multiclass 与 multiclassova 有什么区别?
  3. 如果我将其建模为多标签分类(例如,N 类)问题,它是否相当于 2^N 多类分类,并且每个类都是 N 类的 one-hot 编码?

小智 0

这主要取决于您如何处理给定多类分类的概率。

例如,LGBM 的.predict()方法返回给定观察中可能出现的类(最高概率),但如果调用.predict_proba()它将返回 N 个值(N 是类的数量)

因此,如果您试图实现不互斥的预测,我建议将每个预测与某个值进行比较,比如说0.33,如果预测大于或等于该值,则分配相应的类。