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

基础概念

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

解决方法

1、欠采样,减少数量较多那一类样本的数量,使得正负样本比例均衡。

2、过采样,增加数量较少那一类样本的数量,使得正负样本比例均衡。

3、不处理样本,样本分类阈值移动。

欠采样

随机欠采样

随机欠采样是指随机从多数类样本中抽取一部分数据进行删除,随机欠采样有一个很大的缺点是未考虑样本的分布情况,而采样过程又具有很大的随机性,可能会误删多数类样本中一些重要的信息。

EasyEnsemble 和 BalanceCascade

EasyEnsemble是通过多次从多数类样本有放回的随机抽取一部分样本生成多个子数据集,将每个子集与少数类数据联合起来进行训练生成多个模型,然后集合多个模型的结果进行判断。这种方法看起来和随机森林的原理很相似。

BalanceCascade是通过一次随机欠采样产生训练集,训练一个分类器,对于那些分类正确的多数类样本不放回,然后对这个剩下的多数类样本再次进行欠采样产生第二个训练集,训练第二个分类器,同样把分类正确的样本不放回,以此类推,直到满足某个停止条件,最终的模型也是多个分类器的组合。

基于knn欠采样

有四种 KNN 欠抽样方法:

  • NearMiss-1 :选择到最近的三个少数类样本平均距离最小的那些多数类样本
  • NearMiss-2 :选择到最远的三个少数类样本平均距离最小的那些多数类样本
  • NearMiss-3 :为每个少数类样本选择给定数目的最近多数类样本,目的是保证每个少数类样本都被一些多数类样本包围
  • 最远距离 :选择到最近的三个少数类样本平均距离最大的那些多数类样本

过采样

随机过采样

随机欠采样是指多次随机从少数类样本中有放回的抽取数据,采样数量大于原有的少数类样本数量,其中有一部分数据会出现重复,而重复数据的出现会增大方差造成模型的过拟合。

SMOTE算法

SMOTE全称是Synthetic Minority Oversampling Technique即合成少数类过采样技术,它是基于随机过采样算法的一种改进方案,SMOTE算法的基本思想是对少数类样本进行分析并根据少数类样本人工合成新样本添加到数据集中。

SMOTE 算法是利用特征空间中现存少数类样本之间的相似性来建立人工数据的,也可以认为SMOTE算法假设了在相距较近的少数类样本之间的样本仍然是少数类,

具体过程如下:

  • 随机选择一个少数类样本,计算它到少数类样本集中所有样本的距离,得到它k近邻。
  • 根据样本不平衡比例设置一个采样比例以确定采样倍率n,对于每一个少数类样本x,从其k近邻中随机选择若干个样本
  • 对于每一个随机选出的近邻,选择一个在[0,1]之间的随机数乘以随机近邻和x的特征向量的差,然后加上一个x,

    用公式表示:

SMOTE算法摒弃了随机过采样复制样本的做法,可以防止随机过采样易过拟合的问题,而这些多出来的样本本身不带有信息,而且SMOTE 算法对于每个原少数类样本产生相同数量的合成数据样本,这就使得类间发生重复的可能性加大。

Borderline-SMOTE算法

Borderline-SMOTE算法较SMOTE算法提升的地方是只为那些K近邻中有一半以上多数类样本的少数类样本生成新样本,因为这些样本容易被错分,而在这些少数类样本附近生存人工合成样本,有助于少数类样本的分类正确。而如果少数类样本周围全是多数类样本,这种情况下,这个样本会被认定为噪声样本。

Borderline-SMOTE算法筛选样本的公式如下:

它的选择过程如下:

  • 对于每个 xi?Smin 确定一系列最近邻样本集,称该数据集为 Si:k?nn,且 Si:k?nn?S
  • 对每个样本 xi ,判断出最近邻样本集中属于多数类样本的个数,即:|Si:k?nn?Smaj|
  • 选择满足上面不等式的 xi

基于k-means过采样

基于k-means聚类过采样方法一般分为两步:

  • 首先分别对正负例进行K-means聚类
  • 聚类之后,对其中较小的簇进行上面的过采样方法扩充样本数量
  • 然后在进行正负类样本均衡扩充

该算法不仅可以解决类间不平衡问题,而且还能解决类内部不平衡问题。

分类阈值移动

通常在一个二分类的问题中,我们经常将0.5作为预测结果的分类标准,比如将预测概率大于0.5分为A类,预测概率小于0.5分为B类,这里的0.5就是分类阈值。

在二分类问题中,假如预测一个样本为A的概率为p,那么它为B的概率为1-p,而p/(1-p)表示两类可能性的比,即几率(odds),或称为优势比。如果p/(1-p)>1,我们认为该样本是A类的几率大于B。然而,在一个数据集中正负样本比例不相同时,此时会有一个观测几率,假设在数据集中有m个A样本,n个B样本,那么观测几率为m/n(样本均衡的情况下观测几率为1)。

在算法分类过程中,如果预测几率p/(1-p)大于实际的观测几率m/n,此时我们才把样本分类为A,而不是以0.5作为分类阈值(样本均衡情况下以0.5作为阈值)

用公式表示:p/(1-p)>m/n

计算结果得到p>m/(m+n)

此时只有当p大于m/(m+n)时,预测结果为A类,这里m/(m+n) 取代0.5成为新的分类阈值。

借助以上的原理,在分类学习中面对样本不均衡时,我们可以采用原有不均衡的样本进行学习,然后通过改变决策规则来做分类,比如在样本均衡时我们0.5作为分类阈值,而在样本不均衡的情况下我们可以规定预测概率需要达到0.8才能被预测为多数类。

原文地址:https://www.cnblogs.com/wkslearner/p/8870673.html

时间: 2024-08-24 01:54:18

机器学习中的类别不均衡问题的相关文章

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

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

机器学习中的回归理解

机器学习中的类别均衡问题? 分为类别平衡问题和类别不平衡问题 类别平衡问题:可以采用回归 类别不平衡问题:可以采用在缩放 针对类别的回归问题有 线性回归: 非线性回

[转]如何处理机器学习中的不平衡类别

如何处理机器学习中的不平衡类别 原文地址:How to Handle Imbalanced Classes in Machine Learning 原文作者:elitedatascience 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m- 译者:RichardLeeH 校对者:lsvih, lileizhenshuai 如何处理机器学习中的不平衡类别 不平衡类别使得"准确率"失去意义.这是机器学习 (特别是在分类)中一个令人惊讶的常见问题,出现于每

如何解决机器学习中数据不平衡问题

作者:无影随想 时间:2016年1月. 出处:http://www.zhaokv.com/2016/01/learning-from-imbalanced-data.html 声明:版权所有,转载请联系作者并注明出处 这几年来,机器学习和数据挖掘非常火热,它们逐渐为世界带来实际价值.与此同时,越来越多的机器学习算法从学术界走向工业界,而在这个过程中会有很多困难.数据不平衡问题虽然不是最难的,但绝对是最重要的问题之一. 一.数据不平衡 在学术研究与教学中,很多算法都有一个基本假设,那就是数据分布是

机器学习中的数学(4)-线性判别分析(LDA), 主成分分析(PCA)

机器学习中的数学(4)-线性判别分析(LDA), 主成分分析(PCA) 版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系[email protected] 前言: 第二篇的文章中谈到,和部门老大一宁出去outing的时候,他给了我相当多的机器学习的建议,里面涉及到很多的算法的意义.学习方法等等.一宁上次给我提到,如果学习分类算法,最好从线性的入手,线性分类器最简单的就是

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

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

机器学习中的有监督学习,无监督学习,半监督学习

在机器学习(Machine learning)领域.主要有三类不同的学习方法: 监督学习(Supervised learning). 非监督学习(Unsupervised learning). 半监督学习(Semi-supervised learning), 监督学习:通过已有的一部分输入数据与输出数据之间的相应关系.生成一个函数,将输入映射到合适的输出,比如分类. 非监督学习:直接对输入数据集进行建模,比如聚类. 半监督学习:综合利用有类标的数据和没有类标的数据,来生成合适的分类函数. 一.监

机器学习中的数据清洗与特征处理综述

背景 随着美团交易规模的逐步增大,积累下来的业务数据和交易数据越来越多,这些数据是美团做为一个团购平台最宝贵的财富.通过对这些数据的分析和挖掘,不仅能给美团业务发展方向提供决策支持,也为业务的迭代指明了方向.目前在美团的团购系统中大量地应用到了机器学习和数据挖掘技术,例如个性化推荐.筛选排序.搜索排序.用户建模等等,为公司创造了巨大的价值.本文主要介绍在美团的推荐与个性化团队实践中的数据清洗与特征挖掘方法.主要内容已经在内部公开课"机器学习InAction系列"讲过,本博客的内容主要是

机器学习中如何选择分类器

在机器学习中,分类器作用是在标记好类别的训练数据基础上判断一个新的观察样本所属的类别.分类器依据学习的方式可以分为非监督学习和监督学习.非监督学习顾名思义指的是给予分类器学习的样本但没有相对应类别标签,主要是寻找未标记数据中的隐藏结构.,监督学习通过标记的训练数据推断出分类函数,分类函数可以用来将新样本映射到对应的标签.在监督学习方式中,每个训练样本包括训练样本的特征和相对应的标签.监督学习的流程包括确定训练样本的类型.收集训练样本集.确定学习函数的输入特征表示.确定学习函数的结构和对应的学习算