首页 > 编程知识 正文

openfoam流固耦合求解器,语义分割样本不均衡

时间:2023-05-06 21:05:10 阅读:159572 作者:2803

不平衡问题类别不平衡问题,存在dddl,即数据集上的样本,其数量远远多于或少于其他样本,从而导致机器学习模型失效的问题。 例如,逻辑回归不适合范畴失衡问题。 例如逻辑回归在欺诈检测问题中,大部分样本为正常样本,欺诈样本较少,因此逻辑回归算法倾向于将大部分样本判定为正常样本,可以达到较高的精度,但能否达到较高的召回率

不平衡的问题在许多情况下都存在,例如欺诈检测、风控识别,这些样本中,黑样本(一般有问题的样本)的数量一般远远少于白样本)正常样本。

上采样(过采样)和下采样(over sampling )策略是解决类失衡问题的基本方法之一。 上采样增加少数类采样的数量,下采样减少大量类采样,以获得相对平衡的数据集。

最简单的上采样方法可以直接复制少数类别的样本后添加到样本集中,最简单的下采样方法可以直接采用固定百分比的多数类别的样本作为训练集。

SMOTE算法是一种使用比较多的上采样算法,SMOTE算法的原理并不复杂,在python上从头实现也只有几十行代码,但python的imblearn软件包更方便inter

imblearn类失衡包提供了上采样和下采样策略中的多种接口,基本调用方法一致,主要介绍对应的SMOTE方法和下采样中的RandomUnderSampler方法imblearn可以使用pip install imblearn直接安装。

代码示例生成类别不平衡数据

使用sklearn的make_classification生成一组不平衡数据示例froms klearn.datasetsimportmake _ class ification #,并生成一组示例,其中0和1的比例为9比1 x是特征,y是对应的标签x。 y=make _ class ification (n _ classes=2,class_sep=2,weights=[ 0.9,0.1 ],n_informative=3,n _ reduned

from collections import Counter#从生成的样本类别的分布来看,0和1的样本比率为9比1,类别的不平衡数据print(counter(y ) ) 0:900

使用用于imlbearn库采样的SMOTE接口fromimblearn.over _ samplingimportSMOTE #定义smote模型。 random_state是随机数种子的作用smo=smote (相当于random_state )

print(counter(y_smo ) (counter ) ) 0:900,1:900 )正如上面的代码所示,SMOTE模型默认生成一对一的数据。 如果要生成其他比率的数据,请使用radio参数。 不仅适用于二分类问题,也同样适用于多分类问题

radio参数可以指定由相应类别生成的数据的数量smo=smote(ratio={1:300},random_state=42 )。 生成数据示例X_smo,y_smo=smo.fit,其中#0和1的比率为3:1。y )打印(counter (y _ smo ) ) counter({0:900, 1:300} )查看数据分布imblearn中的采样接口提供了用于提供随机上采样Randomoverer的下采样接口

与fromimblearn.under _ samplingimportrandomundersampler #类似,使用ratio查找下采样百分比RUS=randomundersampler (ratio={ 03360 } 也可以指定y_rus=rus.fit_sample(x,y ) print ) counter (y _ smo ) )原始

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。