机器学习之样本不均衡

以下内容是个人通过查阅网上相关资料总结出的内容

具体说明数据不均衡会带来的问题:

1)在一个二分类问题中,训练集中class 1的样本数比class 2的样本数是60:1。使用逻辑回归进行分类,最后训练出的模型可能会忽略了class 2,即模型可能会将所有的训练样本都分类为class 1。

2)在分类任务的数据集中,有三个类别,分别为A,B,C。在训练集中,A类的样本占70%,B类的样本占25%,C类的样本占5%。最后我的分类器对类A的样本过拟合了,而对其它两个类别的样本欠拟合。

那么该如何解决这种样本不均衡问题?

1)过抽样

抽样是处理不平衡数据的最常用方法,基本思想就是通过改变训练数据的分布来消除或减小数据的不平衡。过抽样方法通过增加少数类样本来提高少数类的分类性能 ,最简单的办法是简单复制少数类样本,缺点是可能导致过拟合,没有给少数类增加任何新的信息。改进的过抽样方法通过在少数类中加入随机高斯噪声或产生新的合成样本等方法。

如何解决过采样中只是简单的复制少数类样本所带来的过拟合缺点?

采用过采样的典型算法SMOTE(它是通过对训练集里的小样本类别进行插值来产生额外的小样本类别数据)

2)欠抽样

欠抽样方法通过减少多数类样本来提高少数类的分类性能,最简单的方法是通过随机地去掉一些多数类样本来减小多数类的规模,缺点是会丢失多数类的一些重要信息,不能够充分利用已有的信息。

如何解决欠采样带来的无法充分利用数据问题?

可以把样本数较多的那一类分成与少类样本相同的多份,让不同的学习器使用,最后利用bagging思想。

1)采用代价敏感方法(常用,还无自己的具体实现需调用包中的)

重构训练集的方法。不改变已有算法,而是根据样本的不同错分代价给训练集中的每一个样本赋一个权值,接着按权重对原始样本集进行重构。引入代价敏感因子,设计出代价敏感的分类算法。通常对小样本赋予较高的代价,大样本赋予较小的代价,期望以此来平衡样本之间的数目差异。

2)尝试产生人工数据样本

一种简单的人工样本数据产生的方法便是,对该类下的所有样本每个属性特征的取值空间中随机选取一个组成新的样本,即属性值随机采样。你可以使用基于经验对属性值进行随机采样而构造新的人工样本,或者使用类似朴素贝叶斯方法假设各属性之间互相独立进行采样,这样便可得到更多的数据,但是无法保证属性之前的线性关系(如果本身是存在的)。 
有一个系统的构造人工数据样本的方法SMOTE(Synthetic Minority Over-sampling Technique)。SMOTE是一种过采样算法,它构造新的小类样本而不是产生小类中已有的样本的副本,即该算法构造的数据是新样本,原数据集中不存在的。它基于距离度量选择小类别下两个或者更多的相似样本,然后选择其中一个样本,并随机选择一定数量的邻居样本对选择的那个样本的一个属性增加噪声,每次处理一个属性。这样就构造了更多的新生数据。

3)大样本/小样本个数=L对大样本进行L聚类

将大类中样本划分到L个聚类中,然后训练L个分类器,每个分类器使用大类中的一个簇与所有的小类样本进行训练得到。最后对这L个分类器采取少数服从多数对未知类别数据进行分类,如果是连续值(预测),那么采用平均值。

4)小样本个为N对大样本进行N聚类

设小类中有N个样本。将大类聚类成N个簇,然后使用每个簇的中心组成大类中的N个样本,加上小类中所有的样本进行训练。

5)选择合适的评价指标

常规的分类评价指标可能会失效,比如将所有的样本都分类成大类,那么准确率、精确率等都会很高。这种情况下,AUC是最好的评价指标。

原文地址:https://www.cnblogs.com/dyl222/p/10925311.html

时间: 2024-07-30 21:39:53

机器学习之样本不均衡的相关文章

处理样本不均衡数据

处理样本不均衡数据一般可以有以下方法: 1.人为将样本变为均衡数据. 上采样:重复采样样本量少的部分,以数据量多的一方的样本数量为标准,把样本数量较少的类的样本数量生成和样本数量多的一方相同. 下采样:减少采样样本量多的部分,以数据量少的一方的样本数量为标准. 2.调节模型参数(class_weigh,sample_weight,这些参数不是对样本进行上采样下采样等处理,而是在损失函数上对不同的样本加上权重) (A)逻辑回归中的参数class_weigh: 在逻辑回归中,参数class_weig

机器学习-样本不均衡问题处理

在机器学习中,我们获取的数据往往存在一个问题,就是样本不均匀.比如你有一个样本集合,正例有9900个,负例100个,训练的结果往往是很差的,因为这个模型总趋近于是正例的. 就算全是正那么,也有99%的准确率,看起来挺不错的,但是我们要预测的负样本很可能一个都预测不出来. 这种情况,在机器学习中有三个处理办法,过采样.欠采样.再平衡(再缩放) 过采样:增加一些数据数据,使得正反例数量一致,比如这里,我们增加负例9800个,若单纯复制这100个负例,则很可能会导致多重共线性问题,所以实际的处理方法一

机器学习中样本不平衡的处理方法

在现实收集的样本中,正负类别不均衡是现实数据中很常见的问题.一个分类器往往 Accuracy 将近90%,但是对少数样本的判别的 Recall 却只有10%左右.这对于我们正确找出少数类样本非常不利. 举例来说:在一波新手推荐的活动中,预测用户是否会注册的背景下,不注册的用户往往是居多的,这个正负比例通常回事1:99甚至更大.一般而言,正负样本比例超过1:3,分类器就已经会倾向于负样本的判断(表现在负样本Recall过高,而正样本 Recall 低,而整体的 Accuracy依然会有很好的表现)

机器学习:样本去中心化目的

作者:Spark链接:https://www.zhihu.com/question/37069477/answer/132387124来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 在回归问题和一些机器学习算法中,以及训练神经网络的过程中,通常需要对原始数据进行中心化(Zero-centered或者Mean-subtraction)处理和标准化(Standardization或Normalization)处理. 目的:通过中心化和标准化处理,得到均值为0,标准差为

机器学习中对不均衡数据的处理方法

当对于a类型数据占10%  b类型的数据占90%  这中数据不均衡的情况采用的方法有: 1.想办法获取更多数据 2.换一种评判方式 3.重组数据: a.复制 a的数据,使它的数据量和b一样多. b.减少b的数据,使它的数据量和a一样多. 4.使用其他的 机器学习算法 5.修改算法. 原文地址:https://www.cnblogs.com/HL-blog/p/9483270.html

机器学习中的类别不均衡问题

基础概念 类别不均衡是指在分类学习算法中,不同类别样本的比例相差悬殊,它会对算法的学习过程造成重大的干扰.比如在一个二分类的问题上,有1000个样本,其中5个正样本,995个负样本,在这种情况下,算法只需将所有的样本预测为负样本,那么它的精度也可以达到99.5%,虽然结果的精度很高,但它依然没有价值,因为这样的学习算法不能预测出正样本.这里我们可以知道不均衡问题会导致样本较少那一类的高错分率,即较少一类的样本会有较大的比例会被预测成样本数量较多的那一类. 解决方法 1.欠采样,减少数量较多那一类

【转】解决样本类别分布不均衡的问题

3.4 解决样本类别分布不均衡的问题 说明:本文是<Python数据分析与数据化运营>中的“3.4 解决样本类别分布不均衡的问题”. -----------------------------下面是正文内容-------------------------- 所谓的不平衡指的是不同类别的样本量异非常大.样本类别分布不平衡主要出现在分类相关的建模问题上.样本类别分布不均衡从数据规模上可以分为大数据分布不均衡和小数据分布不均衡两种. 大数据分布不均衡.这种情况下整体数据规模大,只是其中的少样本类的

机器学习之分类问题实战(基于UCI Bank Marketing Dataset)

导读: 分类问题是机器学习应用中的常见问题,而二分类问题是其中的典型,例如垃圾邮件的识别.本文基于UCI机器学习数据库中的银行营销数据集,从对数据集进行探索,数据预处理和特征工程,到学习模型的评估与选择,较为完整的展示了解决分类问题的大致流程.文中包含了一些常见问题的处理方式,例如缺失值的处理.非数值属性如何编码.如何使用过抽样和欠抽样的方法解决分类问题中正负样本不均衡的问题等等. 作者:llhthinker 欢迎转载,请保留原文链接:http://www.cnblogs.com/llhthin

机器学习中特征的处理及选择

基础概念 特征工程是通过对原始数据的处理和加工,将原始数据属性通过处理转换为数据特征的过程,属性是数据本身具有的维度,特征是数据中所呈现出来的某一种重要的特性,通常是通过属性的计算,组合或转换得到的.比如主成分分析就是将大量的数据属性转换为少数几个特征的过程.某种程度而言,好的数据以及特征往往是一个性能优秀模型的基础. 既然叫特征工程,自然涵盖了很多内容,而其中涉及到的比较重要的部分是特征的处理及选择. 特征处理包含: 数据清洗 数据规范化 特征构造与衍生 特征选择包含: 特征过滤 wrappe