02 特征工程 - 数据不平衡

01 特征工程 - 概念

数据清洗过程:

PS:工作中可能遇到的最大的问题是数据不均衡。
怎么去解决的? 上采样、下采样、SMOTE算法。
解决的效果如何? 有一点点改进,但不是很大。
事实上确实如此,很多时候即使用了上述算法对采样的数据进行改进,但是结果反而可能更差。在业界中,对数据不均衡问题的处理确实是一件比较头疼的问题。最好的处理方法还是:尽可能去获得更多的那些类别比较少的数据。


数据不平衡概念

在实际应用中,数据往往分布得非常不均匀,也就是会出现“长尾现象”,即:绝大多数的数据在一个范围/属于一个类别,而在另外一个范围或者另外一个类别中,只有很少的一部分数据。那么这个时候直接使用机器学习可能效果会不太少,所以这个时候需要我们进行一系列的转换操作。

而在采样过程中修改样本的权重,一般做的比较少。

数据不平衡解决方案一

设置损失函数的权重,使得少数类别数据判断错误的损失大于多数类别数据判断错误的损失,即当我们的少数类别数据预测错误的时候,会产生一个比较大的损失值,从而导致模型参数往让少数类别数据预测准确的方向偏。可以通过scikit-learn中的class_weight参数来设置权重。

数据不平衡解决方案二

下采样/欠采样(under sampling):从多数类中随机抽取样本从而减少多数类别样本数据,使数据达到平衡的方式。

PS:比如本来样本正负例的比例是100:1,一般使用下采样将数据比例控制到4:1就是极限了。如果强行将正负例的比例控制到1:1,会损失很多样本的特性,使得模型效果还不如100:1的训练结果。

集成下采样/欠采样:采用普通的下采样方式会导致信息丢失,所以一般采用集成学习和下采样结合的方式来解决这个问题;主要有两种方式:

1、EasyEnsemble
采用不放回的数据抽取方式抽取多数类别样本数据,然后将抽取出来的数据和少数类别数据组合训练一个模型;多次进行这样的操作,从而构建多个模型,然后使用多个模型共同决策/预测。

2、BalanceCascade
利用Boosting这种增量思想来训练模型;先通过下采样产生训练集,然后使用Adaboost算法训练一个分类器;然后使用该分类器多对所有的大众样本数据进行预测,并将预测正确的样本从大众样本数据中删除;重复迭代上述两个操作,直到大众样本数据量等于小众样本数据量。


扩展一个技巧:
如果参加一个比赛,我们会在模型训练的时候将数据分成训练集开发集。模型提交后,比赛方会提供测试集对结果进行预测。
一般来说我们训练集上的模型评分会在86 ~ 88%左右,开发集上的评分为82 ~ 84%,但是到了实际的测试集上,模型评分可能只有72%左右。
技巧来了:
1、一般来说测试集的数据是不带标签的,但是测试集依然有特征X。
2、我们都不考虑训练集和测试集的目标Y,人为创建一列目标值Z,将训练集中的Z都设为0,将测试集的目标Z都设为1。
3、寻找测试集的X和Z之间的映射。
4、根据这个X和Z之间的映射,使用训练集中的X预测Z,结果肯定是组0,1向量。
5、将预测值为1的数据提出来,作为我的开发集(用来验证我们模型的数据集合),剩下预测为0的数据作为训练集。在这个基础上对我的训练数据进行调优。

这是一个在不做任何特征的情况下对模型调优的一个技巧,一般可以将模型在真实环境中的评分提高一点点。大概72%提高到74%左右。

为什么?实际上我们做训练的目的是为了找一找比赛中人家提供给我们的训练数据和真实数据,哪些长得比较像。将更像真实测试数据的样本放到开发集中作为调参的标准,从而能够提高最终的评分。虽然没有什么科学依据,但是确实比较有效,不登大雅之堂。


数据不平衡解决方案三

Edited Nearest Neighbor(ENN): 对于多数类别样本数据而言,如果这个样本的大部分k近邻样本都和自身类别不一样,那我们就将其删除,然后使用删除后的数据训练模型。

数据不平衡解决方案四

Repeated Edited Nearest Neighbor(RENN): 对于多数类别样本数据而言,如果这个样本的大部分k近邻样本都和自身类别不一样,那我们就将其删除重复性的进行上述的删除操作,直到数据集无法再被删除后,使用此时的数据集据训练模型。

数据不平衡解决方案五

Tomek Link Removal: 如果两个不同类别的样本,它们的最近邻都是对方,也就是A的最近邻是B,B的最近邻也是A,那么A、B就是Tomek Link。将所有Tomek Link中多数类别的样本删除。然后使用删除后的样本来训练模型。

\color{red}{以上是对多数类别的样本进行删除}


\color{red}{下面是对少数类别的样本进行扩充}

数据不平衡解决方案六

过采样/上采样(Over Sampling):和欠采样采用同样的原理,通过抽样来增加少数样本的数目,从而达到数据平衡的目的。一种简单的方式就是通过有放回抽样,不断的从少数类别样本数据中抽取样本,然后使用抽取样本+原始数据组成训练数据集来训练模型;不过该方式比较容易导致过拟合一般抽样样本不要超过50%。

过采样/上采样(Over Sampling):因为在上采样过程中,是进行是随机有放回的抽样,所以最终模型中,数据其实是相当于存在一定的重复数据,为了防止这个重复数据导致的问题,我们可以加入一定的随机性,也就是说:在抽取数据后,对数据的各个维度可以进行随机的小范围变动,eg: (1,2,3) --> (1.01, 1.99, 3);通过该方式可以相对比较容易的降低上采样导致的过拟合问题。

数据不平衡解决方案七

采用数据合成的方式生成更多的样本,该方式在小数据集场景下具有比较成功的案例。常见算法是SMOTE算法,该算法利用小众样本在特征空间的相似性来生成新样本。

比如:给少数样本编号,1~100;将1、2样本连起来,取他们的中点(期望),作为一个新的样本。以此类推,最后可以新生成50个样本。用这种算法一次可以提高50%的样本量。

数据不平衡解决方案八

对于正负样本极不平衡的情况下,其实可以换一种思路/角度来看待这个问题:可以将其看成一分类(One Class Learning)或者异常检测(Novelty Detection)问题,在这类算法应用中主要就是对于其中一个类别进行建模,然后对所有不属于这个类别特征的数据就认为是异常数据,经典算法包括:One Class SVM、IsolationForest等。

03 特征工程 - 特征转换 - 分词、Jieba分词

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,123评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,031评论 2 384
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,723评论 0 345
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,357评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,412评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,760评论 1 289
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,904评论 3 405
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,672评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,118评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,456评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,599评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,264评论 4 328
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,857评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,731评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,956评论 1 264
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,286评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,465评论 2 348

推荐阅读更多精彩内容