【问题标题】:How to draw equal number of examples from each class in Scikit Learn SVM during training? [closed]如何在训练期间从 Scikit Learn SVM 中的每个类中抽取相同数量的示例? [关闭]
【发布时间】:2018-04-03 17:38:17
【问题描述】:

我使用 Scikit Learn 来实现 Support Vector Machine。由于我正在处理类不平衡(96% 到 4%),我希望 SVM 在训练期间从每个类中抽取相同数量的样本。如何使用 Scikit Learn 实现这一目标?

【问题讨论】:

    标签: python machine-learning scikit-learn svm


    【解决方案1】:

    您可能对imbalanced-learn 包感兴趣,该包具有多种实现,例如过采样和欠采样来解决类不平衡问题。

    【讨论】:

      【解决方案2】:

      另一种方法是使用class_weight='balanced' 参数调整类权重;来自SVC docs(其他 SVM 模型也存在类似的论点):

      class_weight : {dict, ‘balanced’}, 可选

      对于 SVC,将第 i 类的参数 C 设置为 class_weight[i]*C。如果没有给出,所有的类都应该有一个权重。 “平衡” mode 使用 y 的值自动反向调整权重 与输入数据中的类频率成正比为n_samples / (n_classes * np.bincount(y))

      【讨论】:

        猜你喜欢
        • 2018-04-05
        • 2013-07-30
        • 2016-02-05
        • 2014-12-03
        • 2017-04-16
        • 2013-10-31
        • 1970-01-01
        • 2019-09-09
        • 2013-05-25
        相关资源
        最近更新 更多