我正在尝试使用sklearn.linear_model.LogisticRegression(multiclass='ovr')
. 我的数据集有 1000 多个类和 200 万个训练示例。
据我了解,这种方法将训练 1000 个不同的分类器,每个类别一个。这样做时,每个类的正例集很容易识别。但是每个分类器的负例集是什么?负例集是否 = 我的整个训练数据中的所有其他数据点?这不会造成不平衡问题并降低每个单独分类器的有效性吗?
我正在尝试使用sklearn.linear_model.LogisticRegression(multiclass='ovr')
. 我的数据集有 1000 多个类和 200 万个训练示例。
据我了解,这种方法将训练 1000 个不同的分类器,每个类别一个。这样做时,每个类的正例集很容易识别。但是每个分类器的负例集是什么?负例集是否 = 我的整个训练数据中的所有其他数据点?这不会造成不平衡问题并降低每个单独分类器的有效性吗?
负例集是否 = 我的整个训练数据中的所有其他数据点?
是的。
这不会造成不平衡问题并降低每个单独分类器的有效性吗?
是的,根据Bishop, Christopher M. (2006). "Pattern Recognition and Machine Learning". Springer, p. 338
它是这种启发式的问题之一。如果这在您的特定情况下严重降低了性能,您可以考虑其他策略。