python样本不均衡_三招提拔数据不均衡模子的机能(附python代码)

对付深度进修而言,数据集异常主要,但在实践名目中,或多或少会遇见数据不均衡题目。甚么是数据不均衡呢?举例来说,目前有一个义务是判定西瓜是不是成熟,这是一个二分类题目——西瓜是生的照旧熟的,该义务的数据集由两局部数据构成,成熟西瓜与生西瓜,假定生西瓜的样本数目远远大于成熟西瓜样本的数目,针对如许的数据集练习出来的算法“偏袒”于辨认新样本为生西瓜,居心让你买不到甜的西瓜以解炎天之苦,这就是一个数据不均衡题目。

针对数据不均衡题目有响应的解决举措,譬如对大都样本举行采样使得其样本数量级与少样本数附近,大概是对少数样本重复使用等。近来正好在口试中碰到一个数据不均衡题目,这也是口试中时常会涌现的题目之一,现向读者分享这次解决问题的心得。

数据集

练习数据中有三个标签,别离标识为[1、2、3],这意味着该题目是一个多分类题目。练习数据集有17个特点以及38829个自力数据点。而在测试数据中,有16个没有标签的特点和16641个数据点。该练习数据集异常不均衡,大部分数据是1类(95%),而2类和3类别离有3.0%和0.87%的数据,以下图所示。

算法

颠末开端窥察,决意接纳随机丛林(RF)算法,由于它优于撑持向量机、Xgboost以及LightGBM算法。在这个名目中挑选RF另有几个缘由:

为了找到***参数,应用scikit-sklearn实现的GridSearchCV对指定的参数值施行网格搜寻,更多细节能够在自己的Github上找到。

为了解决数据不均衡题目,应用了如下三种手艺:

A.运用集成交织考证(CV):

在这个名目中,利用穿插考证来考证模子的鲁棒性。全部数据集被分红五个子集。在每一个交织考证中,运用个中的四个子集用于锻炼,残剩的子集用于考证模子,别的模子还对测试数据举行了猜测。在穿插考证完结时,会获得五个测试猜测几率。***,对一切种别的几率取平均值。模子的锻炼显示不变,每一个交织考证上具备稳固的召回率和f1分数。这项技能也资助我在Kaggle竞赛中获得了很好的成就(前1%)。下列部份代码片断表现了集成穿插考证的实现:

B.配置种别权重/重要性:

价钱敏感进修是使随机丛林更得当从十分不均衡的数据中进修的方式之一。随机丛林有偏向于偏袒大多数种别。因而,对少数群体过错分类施加高贵的赏罚大概是有作用的。因为这类手艺能够改良模子机能,以是我给少数群体分派了很高的权重(即更高的谬误分类本钱)。而后将种别权重归并到随机丛林算法中。我依据种别1中数据集的数目与别的数据集的数目之间的比率来肯定种别权重。比方,种别1和种别3数据集的数量之间的比率约为110,而种别1和种别2的比例约为26。而今我轻微对数目举行修正以改良模子的机能,下列代码片断显现了差别类权重的实现:

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.运用集成穿插考证的成绩:

2.利用集成穿插考证+种别权重的了局:

3.利用集成交织考证+种别权重+过大展望标签的成果:

结论

因为在施行过大展望技能方面的履历很少,因而最初的时间解决起来十分辣手。然则,研讨该题目有助于提拔我解决问题的才能。对付每一个使命而言,开初能够确切是目生的,这个时间不要畏惧,一次次实验就好。因为时候的限定(48小时),无奈将精神疏散于模子的微调以及特色工程,存在革新的处所另有得多,譬如删除不必要的功用并增加一些分外功效。别的,也实验过LightGBM和XgBoost算法,但在实际进程中发明,随机丛林的成效优于这两个算法。在背面的研讨中,能够进一步实验一些其余算法,比方神经网络、希罕编码等。

【编辑保举】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值