机器学习实验---调用sklearn库实现GBM

本文介绍了如何使用sklearn库中的GradientBoostingClassifier进行机器学习实践,包括数据准备、模型训练及评估,并详细解释了关键参数的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导语

一直在纠结GBM这个方法到底是怎么调用的,因为貌似sklearn中并没有一个专门的方法叫做GBM。emmm,后来好像其实一般就说gradient boosting。根据官方文档我们迅速来学习它的使用方式吧~

简单步骤

1、导入分类器和make_hastie_10_2
from sklearn.datasets import make_hastie_10_2
from sklearn.ensemble import GradientBoostingClassifier

第一句话是导入make_hastie_10_2这个东西,我看到这里的时候也不知道是个啥,等下用到的时候我们再来解释吧

然后下一句就是导入的GBM中分类器的语句了

2、导入数据

X,y = make_hastie_10_2(random_state=0)
X_train,X_test = X[:2000],X[2000:]
y_train,y_test = y[:2000],y[2000:]

这里就用到了我们之前导入的make_hastie_10_2,貌似这是一个生成训练集和测试集的方法吗?猴赛雷的样子~
该方法的详情

所以,回看我们这句话,应该就是从这12000个数据中取前2000行作为训练集,2000行之后的作为测试集

3、开始训练

>>>clf = GradientBoostingClassifier(n_estimators = 100,learning_rate = 1.0,max_depth = 1,random_state = 0).fit(X_train,y_train)
>>>clf.score(X_test,y_test)

这段代码的第一句就已经在使用fit方法吃数据了,然后第二句话,clf.score则是在使用吃饱了的分类器对测试集进行测试,看看准确率。

补充:预测

以上所说的确实能够让我们知道这个算法的准确率,但是,我是要运用这个算法的呀,我光知道你准不准确有什么用啊?

还记得我们之前所用的机器学习算法的时候,是用:

pre2 = clf.predict(X2)

这样的语句来将对X2特征的判断赋值给pre2,在这里我们同样这样操作:
这里写图片描述
其中的输出就是分类的向量了。

参数说明

学会怎么样一步一步去实现还不够,我们接下来侃侃在训练的时候的一些参数的含义和意义:

>>>clf = GradientBoostingClassifier(n_estimators = 100,learning_rate = 1.0,max_depth = 1,random_state = 0).fit(X_train,y_train)

n_estimators:定义了需要使用到的决策树的数量,虽然GBM有较多决策树的时候还可以保持稳健,但是还是有可能会发生过度拟合,所以要用交叉验证进行检验

learning_rate:控制权重更新的幅度,通常来说这个值不应该设得太大,默认值是0.1,较小的学习速度更有稳健性

max_depth:定义了输的最大深度,可以控制过拟合

random_state:int,RandomState实例或无,可选(默认=无)
如果int,random_state是随机数生成器使用的种子; 如果RandomState的实例,random_state是随机数生成器; 如果没有,随机数生成器是由np.random使用的RandomState实例。这个地方想来搞懂GBM的原理之后再来理解会更加容易吧~

那么关于GBM的介绍就到这里,进一步的理解如果有机会以后再补充

### LightGBM与Scikit-Learn的集成 LightGBM能够无缝地与Scikit-Learn接口集成,这意味着可以利用Scikit-Learn中的许多工具和功能来处理数据集、评估模型以及优化参数。为了实现这一点,只需使用`lgb.LGBMRegressor`类或其他相应的分类器类来定义模型,并调用标准的`.fit()`方法来进行训练,之后再通过`.predict()`方法完成预测操作[^1]。 #### 安装依赖 在开始之前,确保已经安装了必要的软件包: ```bash pip install lightgbm scikit-learn pandas numpy ``` 对于那些偏好于Anaconda环境下的开发人员来说,可以通过Conda命令轻松创建并管理所需的Python环境,从而更方便地开展基于Scikit-Learn的各种机器学习项目[^2]。 #### 数据准备 这里假设已经有了适当的数据集;如果没有的话,则可以从公开资源下载或自动生成一些用于测试目的的小型数据集。接下来展示的是如何加载CSV文件作为输入源之一的方法: ```python import pandas as pd data = pd.read_csv('path/to/your/dataset.csv') X = data.drop(columns=['target_column']) y = data['target_column'] ``` #### 训练模型 一旦准备好数据后就可以构建LightGBM回归模型实例,并将其适配到训练样本上了: ```python from lightgbm.sklearn import LGBMRegressor model = LGBMRegressor() model.fit(X, y) ``` 这段代码片段说明了怎样快速简便地初始化一个LGBMRegressor对象并将它应用于给定特征矩阵\( X \)及其对应标签向量 \( y \)。 #### 预测新数据 当完成了模型训练过程以后,便可以用该模型去对未来未知情况做出预估: ```python predictions = model.predict(new_data_points) print(predictions) ``` 以上就是关于如何将LightGBM成功融入至Scikit-Learn框架内的一般流程概述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值