与为类别中的每个值创建模型有根本区别吗?

数据挖掘 机器学习 scikit-学习
2022-02-01 18:29:48

我正在根据服务请求创建一些模型。所请求的服务分布不均,一些服务很少使用,而另一些则相当普遍。

我将这些服务作为分类变量,并构建了管道以通过 one-hot 编码将它们合并。我开始认为,为每个服务训练一个模型可能更有意义(至少对于常见的服务)。还是将不常见的归为特殊类别更有意义?

我在回归模型中苦苦挣扎,我的 R2 值为 0.41。

1个回答

与为类别中的每个值创建模型有根本区别吗?

就在这里。

如果针对变量(类别)的每个特定值训练模型,则只有该类别的数据子集可用于训练和测试模型。因此,每个模型都有较少数量的要训练的实例。结果:

  • 在小类别的情况下,可能没有足够的实例来获得可靠的模型。
  • 每个模型都是独立的。这可能是好是坏,取决于这种独立性在数据中是否也是正确的,或者在多大程度上:
    • 如果特征根据类别以完全不同的方式表现,那么最好创建单独的模型,因为每个模型都可以真正利用该类别的特定模式。
    • 如果特征在类别之间具有非常相似的行为,那么按类别划分的独立模型可能会丢失大量信息。

总之,选择通常取决于:

  • 每个类别有多少数据可用。
  • 其他特征相对于该类别的独立性如何。