首页 > 其他分享 >数据不均衡处理四:集成学习

数据不均衡处理四:集成学习

时间:2024-03-20 19:59:19浏览次数:21  
标签:集成 采样 random 学习 state 均衡 test

集成学习是一种机器学习方法,通过结合多个基本分类器的预测结果来改善整体的预测性能。在面对数据不均衡问题时,集成学习可以帮助提高模型对少数类样本的识别能力,从而提高整体的分类性能。对于不均衡的数据处理,其常见的有两种模式:欠采样+集成学习和过采样+集成学习

目录

一、欠采样+集成学习

二、过采样+集成学习


一、欠采样+集成学习

先对数据进行欠采样处理,之后使用集成学习的方法进行模型的构建,关于欠采样常用方法的介绍可以参考这篇文章:欠采样部分

# 不均衡数据生成

import numpy as np  
from sklearn.datasets import make_classification  
from sklearn.model_selection import train_test_split  
  
# 生成一个分类问题的数据集  
X, y = make_classification(n_samples=1000, n_features=20, n_informative=2, n_redundant=10,  
                             random_state=42)  
# 划分训练集和测试集  
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)  
############1、欠采样+集成学习 ##############
# EasyEnsemble和BalanceCascade 变为不均衡数据预处理方法EasyEnsembleClassifier和BalancedBaggingClassifier
from imblearn.ensemble import BalancedBaggingClassifier,BalancedRandomForestClassifier,EasyEnsembleClassifier,RUSBoostClassifier
ee = EasyEnsembleClassifier(random_state=0)
model = ee.fit(X, y)

bc = BalancedBaggingClassifier(random_state=0)#可用BalancedRandomForestClassifier,RUSBoostClassifier代替
model = bc.fit(X, y)
# print(sorted(Counter(y_resampled[0]).items()))
二、过采样+集成学习

即使用过采样的方法对数据进行处理,之后使用集成学习的方法进行模型构建。过采样的常用方法可以参考这篇文章:过采样部分

############2、过采样+集成学习 #########
from imblearn.over_sampling import SMOTE
# 使用SMOTE进行过采样  
smote = SMOTE(random_state=42)  
X_res, y_res = smote.fit_resample(X_train, y_train)  
 
from sklearn.ensemble import AdaBoostClassifier, RandomForestClassifier
# 初始化集成学习模型  
ada_clf = AdaBoostClassifier(random_state=42)  
# 或者使用随机森林  
# rf_clf = RandomForestClassifier(random_state=42)  
# 训练模型  
ada_clf.fit(X_res, y_res)  

# 预测测试集  
y_pred_ada = ada_clf.predict(X_test)  
 
# 输出分类报告  
print("AdaBoost Classifier Report:")  
print(classification_report(y_test, y_pred_ada))  

在集成学习中,可以根据样本类别的权重来调整模型的训练过程,使得模型更关注少数类样本。也可以根据代价敏感学习的思想,给不同类别设置不同的代价权重,从而平衡不同类别的重要性。

因此集成学习方法在处理数据不均衡问题时通常能取得较好的效果,可以提高模型的泛化能力和对少数类样本的识别能力。在实际应用中,可以根据具体问题和数据特点选择适合的集成学习方法,并结合数据预处理技术来处理数据不均衡问题,从而提高模型的性能和稳定性。

标签:集成,采样,random,学习,state,均衡,test
From: https://blog.csdn.net/a2313179618/article/details/136886103

相关文章

  • 数据不均衡处理五:深度学习
    在处理数据不均衡问题时,迁移学习、自编码器和半监督学习是一些有效的方法。这些技术可以帮助模型更好地学习数据的分布特征,提高对少数类样本的识别能力,并改善整体的分类性能。目录一:迁移学习二:自编码器三:半监督学习一:迁移学习迁移学习通过利用源领域的知识来帮助目标领......
  • 决策树的学习及应用
    文章目录一、决策树是什么二、决策树的发展历史三、决策树的相关概念详解四、决策树的构建过程五、决策树的代码示例一、决策树是什么决策树是一种基本的分类与回归方法,它呈树形结构,用于表示基于特征对实例进行分类的过程。决策树可以被看作是if-then规则的集合,也......
  • 学习selenium
    importrequestsimportbs4fromselenium.webdriver.common.byimportByimportpandasaspddriverPath="C:\ProgramFiles(x86)\Microsoft\Edge\Application\msedgedriver.exe"url='https://so.gushiwen.cn/'url2='gushi/tangsh......
  • 芒果YOLOv5改进86:上采样Dysample:顶会ICCV2023,轻量级图像增采样器,通过学习采样来学习上
    ......
  • (day 13)JavaScript学习笔记(对象1)
    概述        这是我的学习笔记,记录了JavaScript的学习过程。在写博客的时候我会尽量详尽的记录每个知识点。如果你完全没接触过JavaScript,那么这一系列的学习笔记可能会对你有所帮助。    今天学习对象,主要是创建对象、对象属性、省略key、遍历对象属性、删......
  • Blazor学习记录三
    11.自定义组件与消费端变量之间实现双向绑定这也实现了从子组件到父组件的状态传递。1.定义一个数据类型为T的参数。2.再定义一个参数名+[Changed]为名称,EventCallback结构类型的参数。注意T类型要和第一步中的参数数据类型T相同。3.定义一个被用于元素中的C#事件触发的事件......
  • CCS5.5帮助文档Help学习
    技巧:纯英文文档,用微信扫一扫翻译。主要看以下三个,按下面顺序:C/C++DevelopmentUserGuide:新建一个项目并运行的demo界面流程,依据操作一遍。【建个小demo,从头到尾操作一遍。3h。】CodeComposerStudioHelp:界面图标认识,用到再查也行。【5分钟大概瞄一眼】C6000CompilerVers......
  • 【机器学习】科学库使用第2篇:机器学习概述,学习目标【附代码文档】
    机器学习(科学计算库)完整教程(附代码资料)主要内容讲述:机器学习(常用科学计算库的使用)基础定位、目标,机器学习概述定位,目标,学习目标,学习目标。机器学习概述,1.3人工智能主要分支学习目标,学习目标,1主要分支介绍,2小结。机器学习概述,1.5机器学习算法分类学习目标,学习目标,1监......
  • Vue学习笔记54--动画效果+过度效果
    动画效果示例一:Test.vue——主要代码文件<template><div><button@click="isShow=!isShow">显示.隐藏</button><!--方式一class=comeorgo--><!--<h2v-show="isShow"class="come">你......
  • 深度学习500问——Chapter03:深度学习基础(3)
    文章目录3.5BatchSize3.5.1为什么需要Batchsize3.5.2BatchSize值的选择3.5.3在合理范围内,增大BatchSize有何好处3.5.4盲目增大BatchSize有何坏处3.5.5调节BatchSize对训练效果影响到底如何3.6归一化3.6.1归一化含义3.6.2为什么要归一化3.6.3为什......