首页 > 编程知识 正文

列举单机模式和伪分布模式的异同点(纹理过滤各向异性采样优化)

时间:2023-05-06 13:02:54 阅读:85671 作者:1523

smote是一种方便的示例生成方法,Python已经有了可以立即调用的实现,可以直接使用命令进行安装。

pip安装中小企业联盟

imblearn包大40MB以上,需要等一会儿。 如果安装成功,马上就可以使用

今天主要利用样本生成的方法,扩展原有的不平衡样本数据集,以达到“最佳平衡”

下面是一个简单的实验:

def create _ dataset (n _ samples=1000,weights=(0. 01,0.01,0.98 ),n_classes=3,class_sep=0.8,n _ CCS

''''

创建虚拟数据集

''''

返回类型信息(n _示例=n _示例,n _功能=2,n _信息=2,n _冗余=0,n

n_classes=n_classes,n _ clusters _ per _ class=n _ clusters,weights=列表,class _ sep=classs

def dataset _ show (保存路径=' dataset _ show.png ' ) :

''''

数据和样本的可视化

原始样本数据被采样后约为1:1个数据集

''''

x,y=创建_数据集(n _示例=3000,权重=(0. 6,0.4 ),n _类=2) ) ) ) ) ) ) )。

打印(原始数据集形状(} .格式)轮廓(y ) )

startnum=221

PCA=PCA (n _组件=2)

# #将数据矩阵转换为二维矩阵

x _ vis=PCA.fit _转换(x )

应用SMOTE

sm=SMOTE ()

x _ re样本,y _ re样本_ smote=sm.fit _样本(x,y )。

打印(smotedatasetshape (} .格式)计数器) y _ re样本_ smote )

x _ RES _ vis _ smote=PCA.transform (x _ re示例) )

应用SMOTE ENN

sm=SMOTEENN ()

X_resampled,y _ re sampled _ smote enn=sm.fit _ sample (x,y ) () ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )。) ) )

打印(smoteenndatasetshape (} .格式)轮廓;y _ re样本_ smote enn ) )

x _ RES _ vis _ smote enn=PCA.transform (x _ re示例) )

应用SMOTE Tomek

smt=SMOTETomek ()

x _ re样本,y _ re样本_ smotetomek=SMT.fit _样本(x,y )。

打印(smotetomekdatasetshape (} .格式)计数器) y _ re样本_ smotetomek )

x _ RES _ vis _ smotetomek=PCA.transform (x _ re示例) )

plot_data_list=[[X_vis,y]、[X_res_vis_SMOTE,y _ re取样_ smote ]、[ x _ RES _ vis _ smotote ]、_ x _虚拟_虚拟、虚拟_虚拟、虚拟_虚拟_虚拟

出图_辅助(出图_数据列表,保存路径=保存路径) )。

我们使用sklearn库提供的make_classification方法,随机生成了符合要求的样本数据集。 dataset_show主要实现了数据集的可视化展示。 由于我们的样本数据都是多维的,为了便于展示,这里都用PCA方法将其降为二维进行处理,将3种不同的样本方法得到的样本数据的分布与原始样本进行了比较

实验1:2种样本数据,比例为3:2

数据统计结果如下

originaldatasetshapecounter ({ 0:1792,1:1208 } )

smotedatasetshapecounter ({ 0:1792,1:1792 } ) )

smoteenndatasetshapecounter ({ 1:1528,033601431 } )

smotetomekdatasetshapecounter ({ 0:1719,1:1719 } )

数据集显示如下

实验2:2种样本数据,数据比率为9:1

数据统计结果如下

originaldatasetshapecounter ({ 0:2686,1:314 } )

smotedatasetshapecounter ({ 0:2686,1:2686 } ) )

smoteenndatasetshapecounter ({ 1:2380,033602232 }

smotetomekdatasetshapecounter { 033602584,1:2584 }

数据集显示如下

从上面很容易发现:

在数据比率不均衡的情况下,采用抽样方法得到的数据集的分布和样本的局部密度不会有很大变化

随着数据样本比例的失衡增加,使用采样方法后样本的局部分布密度将发生明显变化,从而在整体分布轮廓上接近原始数据集

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