怎么用python提升数据不平衡模型的性能

技术怎么用python提升数据不平衡模型的性能这篇文章主要讲解了“怎么用python提升数据不平衡模型的性能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用pytho

本文主要讲解“如何使用python提高不平衡数据模型的性能”。本文的解释简单明了,易学易懂。现在,请跟随边肖的思路,学习学习“如何利用python提高不平衡数据模型的性能”!

数据集

训练数据中有三个标签,分别标记为[1,2,3],这意味着问题是一个多分类问题。训练数据集有17个特征和38829个独立数据点。在测试数据中,有16个未标记的特征和16641个数据点。训练数据集非常不平衡,大部分数据在类别1 (95%),而类别2和类别3的数据分别为3.0%和0.87%,如下图所示。

怎么用python提升数据不平衡模型的性能

算法

经过初步观察,我们决定采用随机森林(RF)算法,因为它优于支持向量机、Xgboost和LightGBM算法。在这个项目中选择射频还有其他几个原因:

森林对过拟合有很强的鲁棒性;

参数化还是很直观的;

在这个项目中,有许多将随机森林算法应用于高度不平衡数据集的成功用例。

个人以往算法实现经验;

要查找* * *参数,请使用scikit-sklearn实现的GridSearchCV对指定的参数值执行网格搜索。更多细节可以在我的Github上找到。

为了处理数据不平衡,使用了以下三种技术

A.使用集成交叉验证(CV):

在这个项目中,交叉验证用于验证模型的健壮性。整个数据集分为五个子集。在每个交叉验证中,四个子集用于训练,其余子集用于验证模型,模型还预测测试数据。在交叉验证结束时,将获得五个测试预测概率。* * *,平均所有类别的概率。模型的训练性能稳定,每次交叉验证都有稳定的召回率和f1评分。这项技术也帮助我在Kaggle比赛中取得了不错的成绩(前1%)。以下代码片段显示了集成交叉验证的实现:

怎么用python提升数据不平衡模型的性能

B.设置类别权重/重要性:

成本敏感学习是使随机森林更适合从非常不平衡的数据中学习的方法之一。随机森林倾向于支持大多数类别。因此,对少数群体的错误分类施加昂贵的惩罚可能是有益的。因为这种技术可以提高模型的性能,所以我给少数群体分配了较高的权重(即较高的误分类成本)。然后,将类别权重合并到随机森林算法中。我根据类别1中数据集的数量与其他数据集的数量之比来确定类别权重。例如,类别1和类别3的数据集数量之间的比率约为110,而类别1和类别2的比率约为26。现在我稍微修改一下数量来提高模型的性能。下面的代码片段展示了不同类权重的实现:

怎么用python提升数据不平衡模型的性能

C.过大预测标签而不是过小预测(Over-Predict a Label than Under-Predict):

这项技术是可选的。实践表明,这种方法对提高少数类别的性能非常有效。简而言之,如果模型被错误地归类为3类,这种技术可以在有限的程度上惩罚模型,但对2类和1类的惩罚稍差。为了实现这个方法,我改变了每个类别的概率阈值,将类别3、类别2、类别1的概率按递增顺序设置(即P3=0.25,P2=0.35,P1=0.50),迫使模型过度预测类别。这个算法的详细实现可以在Github上找到。

最终结果

以下结果显示了上述三种技术如何帮助提高模型性能:

1.使用集成交叉验证的结果:

怎么用python提升数据不平衡模型的性能

2.使用集成交叉验证+类别权重的结果:

怎么用python提升数据不平衡模型的性能

3.使用集成交叉验证+类别权重+过大预测标签的结果:

怎么用python提升数据不平衡模型的性能

感谢阅读。以上就是“如何用python提高数据不平衡模型的性能”的内容。学习完这篇文章,相信你对如何使用python提高数据不平衡模型的性能有了更深的理解,具体用法还需要实践验证。在这里,边肖将为您推送更多关于知识点的文章,敬请关注!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/128598.html

(0)

相关推荐

  • 怎么理解ArrayExpress数据库

    技术怎么理解ArrayExpress数据库本篇文章给大家分享的是有关怎么理解ArrayExpress数据库,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。和G

    攻略 2021年11月23日
  • python中的list是什么意思(python中list用法)

    技术Python中的List怎么用这篇文章主要为大家展示了“Python中的List怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python中的List怎么用”这篇文

    攻略 2021年12月19日
  • 塑料三角烧瓶,三角烧瓶和三角瓶的区别

    技术塑料三角烧瓶,三角烧瓶和三角瓶的区别一塑料三角烧瓶、应用领域区别:1、三角瓶多用于生物培育菌种实验,有盖。2、三角烧瓶即锥形瓶是化学实验中常见仪器,多无盖,可加热,用于化学实验。
    二、外形区别:
    3、锥形瓶一般来说

    生活 2021年10月26日
  • 「IOI2021」Dungeons

    技术「IOI2021」Dungeons 「IOI2021」Dungeons题目
    点这里看题目。
    分析
    比较考察基础的观察和诡异的优化的题目,值得一试。
    算法 1
    直接模拟,复杂度为 \(O(qs)\)。

    礼包 2021年11月18日
  • 如何理解mysql的锁机制

    技术如何理解mysql的锁机制本篇文章为大家展示了如何理解mysql的锁机制,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 锁0.1 锁机制当前MySQL已经支持 ISAM, M

    攻略 2021年11月16日
  • html5map标签的用法(html5 map标签)

    技术html5中map标签怎么用小编给大家分享一下html5中map标签怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

    攻略 2021年12月17日