我有一个非常不平衡的大数据集 ( 500000 instances, 60 features),它很容易发生变化(大小和特征数量的增加)。但是将保持不变的是班级的不平衡,这class 0将永远是主导的。平均而言,90%其中的数据将在 中class 0,其余的将10%在 中class 1。
我对使用类标签 1 尽可能准确地分类实例感兴趣,因此我想增加其误分类成本。
我选择的分类器是RandomForest为了解决类不平衡问题,我正在尝试调整权重,然后使用评估StratifiedKFold并绘制相应roc_curve的 k 折。
这是我的分类器的代码:
 clf1 = RandomForestClassifier(n_estimators=25, min_samples_leaf=10, min_samples_split=10,
      class_weight = "balanced", random_state=1, oob_score=True)
 sample_weights = array([9 if i == 1 else 1 for i in y])
我浏览了文档,有些东西我不明白。我测试了所有这些方法,但评估指标的差异很小,所以我很难确定哪些设置优化了我的分类器。
不用说,即使我使用加权我的模型的预测能力非常低,敏感度是平均的0.2
这些是我的问题:
- 应该
sample_weight和class_weight同时使用吗? - between 
class_weights = "balanced"andclass_weights = balanced_subsampleswhich 应该可以提供更好的分类器性能 - 是否
sample_weight应该始终根据样本中的不平衡比例进行调整? class_weights = balanced_subsamples同时sample_weight使用时会报执行错误。为什么?
另外,如果有更好的方法来评估分类器,请告诉我。