如何在分类机器学习模型中增加真阳性?

2024-04-28 13:25:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我是机器学习的新手 我有一个数据集,它具有高度不平衡的类(以负类为主),包含超过2K的数字特征,目标是[0,1]。我已经训练了物流回归,虽然我得到了89%的准确率,但从混乱矩阵中,发现模型的真正性很低。下面是我的模型的分数

准确度得分:0.8965989500114129

精准度得分:0.3333333333333

召回分数:0.0295454545454545

F1分:0.05427974947807933

我如何才能增加我的真正积极性?我应该使用不同的分类模型吗?

我尝试过PCA,并将数据表示为2个组件,它将模型精度提高到90%(近似),但真阳性率再次降低


Tags: 数据模型机器目标高度矩阵数字特征
3条回答

我假设您的目的是在某个测试集中获得一个具有良好分类精度的模型,而不管该模型的形式如何。 在这种情况下,如果您可以访问计算资源,请尝试梯度增强树。这是一个集成分类器,在数据子集上使用多个决策树,然后使用投票集成进行预测。据我所知,它可以在类数不平衡的情况下得到很好的结果。在

SciKitLearn具有sklearn.ensemble.GradientBoostingClassifier函数。我没有使用过这个特定的版本,但是我经常使用回归版本,它看起来很好。我很确定MATLAB也有这个包,如果你有权限的话。在

2k特性对于SKL算法来说可能很困难-我不知道我从未尝试过。在

有几种方法可以做到这一点:

  • 您可以更改模型并测试其性能是否更好
  • 您可以固定一个不同的预测阈值:这里我猜您预测0如果回归的输出是<;0.5,您可以将0.5更改为{}。这会增加你的真阳性率,但当然,代价是更多的假阳性。在
  • 您可以复制训练集中的每个正面示例,这样分类器就可以感觉到类实际上是平衡的。在
  • 您可以更改分类器的丢失,以惩罚更多的假阴性(这实际上非常接近于在数据集中复制阳性示例)

我相信还有很多窍门可以用,这里是我最喜欢的短名单。在

你的数据集有多大?我们在这里谈几排?在

你的数据集是不平衡的,因此对于一个简单的分类算法来说,大多数时候预测“多数类”是很正常的,并且给你90%的准确率。你能收集到更多的数据,其中会有更多的正面例子吗。在

或者,尝试过采样/欠采样。看看有没有帮助。在

当预测到错误的类时,也可以使用该算法的惩罚版本来施加惩罚。这可能会有帮助。在

相关问题 更多 >