将 sample_weights 用于平衡数据集是不是有意义?
Posted
技术标签:
【中文标题】将 sample_weights 用于平衡数据集是不是有意义?【英文标题】:Does it make sense to use sample_weights for balanced datasets?将 sample_weights 用于平衡数据集是否有意义? 【发布时间】:2020-05-06 01:27:56 【问题描述】:我对 sklearn 库中的 sample_weights 了解有限,但据我所知,它通常用于在训练期间帮助平衡不平衡的数据集。我想知道的是,如果我已经有一个完美平衡的二进制分类数据集(即标签/Y/类列中的 1 和 0 的数量相等),是否可以在 0 中添加一个样本权重以提高重要性关于正确预测 1?
例如,假设我真的希望我的模型能够很好地预测 1,即使结果是 1,也可以预测 0。将 0 的 sample_weight 设置为 2,将 1 设置为 1 是正确的做法,以便更加重视正确预测 1 吗?或者那有关系吗?然后我猜在训练期间,f1 评分函数是否被普遍接受为最佳指标?
感谢您的意见!
【问题讨论】:
【参考方案1】:回答
经过几轮测试和更多研究,我发现是的,如果您的目标是减少过度预测的机会,那么使用平衡的二进制分类数据集为 0 增加更多权重确实有意义1的。我使用 2 代表 0 和 1 代表 1 的权重运行了两个单独的训练课程,反之亦然,我发现当权重应用于 0 时,我的模型预测的 1 更少,这是我的最终目标。
以防万一对任何人有帮助。
此外,我正在为这些测试使用 SKLearn 的 Balanced Accuracy 评分功能,该功能取每个单独班级的准确性的平均值。
【讨论】:
以上是关于将 sample_weights 用于平衡数据集是不是有意义?的主要内容,如果未能解决你的问题,请参考以下文章
在 Keras 中使用 sample_weight 进行序列标记
如何纠正 sklearn.naive_bayes 中的 sample_weight?
sample_weight 与 scikit-learn 中的 class_weight 相比如何?