我为不平衡的数据集训练了一个二元分类器。我做了两个实验:
- lightgbm 分类器,boosting_type='gbdt',objective='cross_entropy',SMOTE 上采样
在训练 lgbm 模型后,我对验证数据集进行了预测。我绘制的概率分布如下:
剧情代码:
fig = plt.figure()
tmp = pd.Series(pred_y)
ax = tmp.plot.kde()
fig.savefig('xx.png')
- 标准Scaler,sklearn逻辑回归,class_weight='balanced'
验证数据集的输出概率分布如下:
为什么lightgbm输出概率分布有一些输出值接近0.5和0.75?与逻辑模型不同,仅输出接近 0 或接近 1 的概率。因为 lightgbm 模型是决策森林,并添加来自许多树的许多输出以产生最终概率?还是因为数据集不平衡?