如何建立随机森林、自适应增强(AdaBoost)与梯度提升(Gradient Boost)算法模型

机器学习篇-集成学习-随机森林 Adaboost GBDT XGBoost 多个弱学习器组合成一个更强大的学习器,解决单一预测,进步一得到更好性能。# 导包​from sklearn.ensemble import RandomForestClassifier # 随即森丽分类​​# 定义随机森立函数# 数据读取# 数据基本处理# 确定特征和标签# print(x)# print(y)# 空值处理(填充)print(x)​# 处理字符类型 数据​# 数据划分x, y,stratify=y​# 模型训练# 决策树模型​。 阅读详情

在这个练习中,我们使用电信企业的客户流失数据集,Orange_Telecom_Churn_Data.csv。我们先读入数据集,做一些数据预处理,然后使用各种模型根据用户的特点来预测其是否会流失。

第一步:读入和处理数据

  • 读入数据集,并查看其基本信息。
  • 去除其中对预测无用的列,如“state",“area_code"和"phone_number”
  • 把’intl_plan’和’voice_mail_plan’两列的值转换成布尔类型:‘yes’替换成’True’,'no’替换成’False’
# 读入数据集,并查看其基本信息
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

data = pd.read_csv('Orange_Telecom_Churn_Data.csv')
data.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 5000 entries, 0 to 4999
Data columns (total 21 columns):
 #   Column                         Non-Null Count  Dtype  
---  ------                         --------------  -----  
 0   state                          5000 non-null   object 
 1   account_length                 5000 non-null   int64  
 2   area_code                      5000 non-null   int64  
 3   phone_number                   5000 non-null   object 
 4   intl_plan                      5000 non-null   object 
 5   voice_mail_plan                5000 non-null   object 
 6   number_vmail_messages          5000 non-null   int64  
 7   total_day_minutes              5000 non-null   float64
 8   total_day_calls                5000 non-null   int64  
 9   total_day_charge               5000 non-null   float64
 10  total_eve_minutes              5000 non-null   float64
 11  total_eve_calls                5000 non-null   int64  
 12  total_eve_charge               5000 non-null   float64
 13  total_night_minutes            5000 non-null   float64
 14  total_night_calls              5000 non-null   int64  
 15  total_night_charge             5000 non-null   float64
 16  total_intl_minutes             5000 non-null   float64
 17  total_intl_calls               5000 non-null   int64  
 18  total_intl_charge              5000 non-null   float64
 19  number_customer_service_calls  5000 non-null   int64  
 20  churned                        5000 non-null   bool   
dtypes: bool(1), float64(8), int64(8), object(4)
memory usage: 786.3+ KB
# 去除“state","area_code"和"phone_number"三列
data = data.drop(["state", "area_code", "phone_number"], axis = 1)
# 把'intl_plan'和'voice_mail_plan'两列的值转换成布尔类型
data["intl_plan"] = data.intl_plan.map(lambda x: True if x=='yes' else False)

data["voice_mail_plan"] = data.voice_mail_plan.map(lambda x: True if x=='yes' else False)

第二步:生成X和y

  • 将"churned"列之外的所有列作为X, "churned"列作为y
  • 检查y列中所有类别的个数
  • 划分成训练集和测试集
  • 分别检查训练集和测试集中所有类别的个数
# 生成X和y
X = data[data.columns[:-1]]

y = data.churned
# 检查y中所有类别的个数
print(y.value_counts())
False    4293
True      707
Name: churned, dtype: int64
# 划分成训练集和测试集
from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3, random_state = 101)
# 分别检查训练集和测试集中所有类别的个数
print
随机森林算法及贝叶斯优化调参Python实践 使用随机森林算法实验验证贝叶斯优化调参优于人工调参,代码使用Python实践。 阅读详情

相关推荐

数据分析(三)实战——分类模型随机森林 AdaBoost

数据分析(三)实战——分类模型随机森林 AdaBoost )基本信息数据预处理观察数据集特点数据集划分特征选择异常值检测离散化标准化模型训练分类器选择评估指标选择训练过程默认参数训练结果参数调整最优训练结果结语 前言:根据个人的学习经历,最无奈的就是前面学习了一大堆的零碎知识点,却压根不知道怎么去使用,更不清楚前面所学的哪个知识点可以在哪里派上用场。所以这第三篇文章笔者打算先拿一个简单的案例...

另一个三金的博客 8983

随机森林算法训练及调参-附代码

随机森林算法的理论知识   随机森林是一种有监督学习算法,是以决策树为基学习器的集成学习算法随机森林非常简单,易于实现,计算开销也很小,但是它在分类和回归上表现出非常惊人的性能,因此,随机森林被誉为“代表集成学习技术水平的方法”。 一,随机森林的随机性体现在哪几个方面? 1,数据集的随机选取   从原始的数据集中采取有放回的抽样(bagging),构造子数据集,子数据集的数据量是和原始数据集相同的。不同子数据集的元素可以重复,同一个子数据集中的元素也可以重复。 2,待选特征的随机选取   

weixin_43499818的博客 2万+

机器学习(七):集成方法(2)Boost

Boost(提升)方法不同于bagging,基分类器是顺序训练的,每个基分类器使⽤数据集的⼀个加权形式进⾏训练,其中每个数据点相关联的权系数依赖于前⼀个分类器的表现。特别地,被⼀个基分类器误分类的点在训练序列中的下⼀个分类器时会被赋予更⾼的权重。⼀旦所有的分类器都训练完毕,那么它们的预测就会通过加权投票的⽅法进⾏组合。 1. AdaBoost假设我们在对一组数据进行分类的时候, 确定一个分类模型

wangyanphp的专栏 3255

随机森林算法

将多个决策树结合在一起,每次数据集是随机有放回的选出,同时随机选出部分特征作为输入,所以该算法被称为随机森林算法。可以看到随机森林算法是以决策树为估计器的Bagging算法

crossoverpptx的博客 4886

干货 | 梯度提升决策树GBDT(gradient-boost decision tree)「AI基础」

关注:决策智能机器学习,深耕AI脱水干货作者 |机器学习炼丹术来源| 机器学习炼丹术先缕一缕几个关系:GBDT是gradient-boost decision treeGBDT的...

九三智能控 993

集成学习(三) 提升学习 adaboost、gbdt、xgboost

1、什么是梯度提升 假定当前已经得到了m-1颗决策树,能否通过现有样本对第m颗决策树产生影响呢?答案是可以的 一、BoostingAdaboost随机森林的构建过程中,由于各棵树之间是没有关系的,相对独立的;在构建 的过程中,构建第m棵子树的时候,不会考虑前面的m-1棵树。 如果在构建第m棵子树的时候,考虑到前m-1棵子树的结果,会不会对最终结果产生有益 的影响? 各个决策树组成随机森林后...

weixin_41611045的博客 813

一些关于bootstrap,bagging,Adaboost,random forest, gradient boost的基本理解

Bootstraping:  名字来自成语“pull up by your own bootstraps”,意思是依靠你自己的资源,称为自助法, 有放回的抽样方法,是非参数统计中一种重要的估计统计量方差进而进行区间估计的统计方法 bagging: bootstrap aggregating的缩写,套袋法。 每次使用bootstraping方法抽取k个样本,得到k个训练集,k个训练

fourierr的博客 1470

终极Boosting算法完全指南:从AdaBoost到LightGBM的进化之路

Machine-Learning-Tutorials是一个专注于机器学习和深度学习教程、文章及其他资源的开源项目,汇集了从基础到高级的各类学习资料,帮助学习者系统掌握机器学习知识。 ## 什么是Boosting?初学者必知的核心概念 🚀 Boosting是一种强大的集成学习技术,通过**组合多个弱学习器**(性能略优于随机猜测的模型)来构建一个强学习器。它的核心思想类似于"三个臭皮匠顶个诸葛

gitblog_00976的博客 506

机器学习集成学习全面解析:从理论到实战

本文全面解析机器学习中的集成学习方法,分为Bagging和Boosting两大类。主要内容包括: 集成学习概念:通过组合多个基学习器构建更强大的模型,核心思想是"三个臭皮匠顶个诸葛亮"。 Bagging方法: 并行训练多个独立模型,通过投票/平均组合结果 重点介绍随机森林(Random Forest)及其API使用 包含波士顿房价预测实战案例和OOB评估方法 Boosting方法: 串行训练模型,每个新模型专注于纠正前一个的错误 详细解析AdaBoost算法原理和数学公式 提供AdaBoost分类器和回归

m0_73593563的博客 2903

集成学习中的Boost方法:从AdaBoost到GBDT的核心原理实战

机器学习领域,集成学习是一种通过组合多个模型来提升预测性能的强大范式。其核心原理在于利用多个弱学习器的集体智慧,通过特定的组合策略,构建出泛化能力更强的强学习器。从技术价值看,集成学习能有效降低模型的偏差或方差,显著提升预测的准确性和稳定性。在众多应用场景中,如金融风控、推荐系统和医疗诊断等结构化数据分析任务,集成学习都展现出了卓越的性能。其中,Boost(提升)方法作为集成学习的重要分支,通过迭代纠错机制,让后续模型重点关注前序模型预测错误的样本,从而逐步提升整体性能。AdaBoost和GBDT是Boo

weixin_34159110的博客 389

从参数非参数模型梯度提升:集成学习实战解析

机器学习领域,理解模型的核心范式是掌握其应用的关键。参数模型,如线性回归,对数据分布做出强假设,结构固定,计算高效但可能欠拟合。非参数模型,如决策树和K近邻,则不做强假设,其复杂度随数据增长,灵活性强,能捕捉复杂模式,但也面临过拟合和高计算成本的风险。为了驾驭非参数模型的强大能力并规避其缺陷,集成学习应运而生。它通过结合多个基学习器(如决策树)来提升泛化性能,主要分为降低方差的Bagging(如随机森林)和降低偏差的Boosting(如Adaboost梯度提升)。梯度提升(GBDT)作为Boosting

weixin_34185320的博客 354

30、利用集成方法和最优超平面算法预测肾脏疾病的特征约简集

本文探讨了利用集成方法和最优超平面算法(如支持向量机、AdaBoost梯度提升)对肾脏疾病相关数据进行预测分析,并通过特征约简提高模型准确性。研究使用 UCI 存储库中的 24 个属性数据集,结合随机森林进行降维,并在 Google Colab 环境下测试多种算法的性能。实验结果表明,梯度提升算法达到了最高的预测准确率(98.33%),显示出集成学习在医疗诊断中的巨大潜力。

red88的博客 100

机器学习集成学习完全手册:从 Bagging 到 XGBoost 的 10 大算法实战(12000字·24 段代码·11 张图表)

集成学习因其卓越的性能,在各类机器学习竞赛(如Kaggle)和工业界应用中占据统治地位。金融风控:随机森林、XGBoost常用于信用评分和欺诈检测,因其能有效处理非线性关系且结果相对可解释。推荐系统:GBDT系列算法能够很好地学习用户和物品的复杂特征交互,用于CTR预估。计算机视觉:虽然深度学习是主流,但在某些特征明确的场景(如医疗图像分析),集成方法仍作为强基线或融合手段。结构化数据挖掘:对于表格型数据,XGBoost、LightGBM通常是首选模型。总结。

热爱技术与前沿创新,深耕科技领域,在科创中精进自我;探索技术乐趣,分享技术干货与成长心得,以技术为伴,热爱生活,在科创与生活中双向成长。 526

boosting增强学习

boost是通过组合多个弱基学习器,弱学习器定义是泛化性能弱,略优于随机猜测的学习器,通过组合多个若学习器来得到一个强泛化能力的学习器(三个臭皮匠赛过诸葛亮)。根据单个学习器之间是强依赖以及不能串行序列化的学习代表算法AdaBoost,另一种相反的方法是Bagging或者随机森林(Random Forest)adaboost讲解基本上上面讲解的非常详细,我这里说一点我的理解,boost首先跟决策树

大神养成中..... 1330

硬核长文预警!2026机器学习全栈通关指南:从KNN到XGBoost,手推公式+代码实战,这一篇就够了!

在2026年的AI浪潮中,你是否还在为复杂的算法原理头疼?是否只会调用sklearn却不懂背后的数学逻辑?本文耗时整理,深度复盘机器学习八大核心模块。从最基础的KNN距离度量,到线性回归的矩阵推导,再到决策树的信息熵计算,最后深入集成学习的BoostingBagging思想。图文并茂,手推公式,代码实战,带你构建完整的机器学习知识体系。建议收藏,反复研读!

专注AI与大模型技术,深耕NLP、RAG、Agent开发,分享Python机器学习与深度学习实战经验,助力技术成长。 688

Boosting学习笔记(Adboost、GBDT、Xgboost

http://www.cnblogs.com/willnote/p/6801496.html总结得不错 AdaBoost是最著名的Boosting族算法。开始时,所有样本的权重相同,训练得到第一个基分类器。从第二轮开始,每轮开始前都先根据上一轮基分类器的分类效果调整每个样本的权重,上一轮分错的样本权重提高,分对的样本权重降低。之后根据新得到样本的权重指导本轮中的基分类器训练,即在考虑...

amy_1217的博客 271

集成学习Boosting原理全解析:从AdaBoost到XGBoost实战指南

集成学习是机器学习中一种重要的元策略,其核心思想是通过组合多个弱学习器来构建一个强学习器,从而提升模型的整体预测性能。这一方法基于统计学习中的偏差-方差分解理论,通过降低方差或偏差来获得更稳健的模型。在工程实践中,集成学习展现出强大的技术价值,广泛应用于分类、回归等任务,尤其在数据竞赛和工业场景中表现突出。Boosting作为集成学习的主流方法之一,采用串行方式训练基学习器,每一轮都重点关注前一轮的预测错误,通过迭代优化不断提升模型精度。其代表性算法AdaBoost、GBDT、XGBoost和LightG

weixin_34203832的博客 370

如何建立、调整和评测K近邻分类预测模型

在这个练习中,我们使用电信企业的客户流失数据集,Orange_Telecom_Churn_Data.csv(存放在当前目录下)。我们先读入数据集,做一些数据预处理,然后使用K近邻模型根据用户的特点来预测其是否会流失。并观察不同的K值会对模型产生何种影响。

Chenshuo_Xu的博客 1924
上一篇: 如何利用决策树进行分类和回归预测
下一篇: 如何运用Numpy&Matplotlib&Pandas进行数据的分析和可视化
Chenshuo_Xu
博客等级 码龄4年 36粉丝 10原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值