LGBM的sklearn API简单调用

文章介绍了如何使用Python的sklearnAPI来训练LightGBM(LGBM)模型,包括数据预处理、模型实例化、超参数、模型训练和预测。以鸢尾花数据集为例,展示了数据导入、划分训练集和测试集,以及模型的fit和predict方法的使用,最后评估了模型的准确率。
摘要由CSDN通过智能技术生成

       

# 科学计算模块
import numpy as np
import pandas as pd

# 绘图模块
import matplotlib as mpl
import matplotlib.pyplot as plt

# Scikit-Learn相关模块
# 评估器类
from sklearn.preprocessing import StandardScaler
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import make_pipeline
from sklearn.model_selection import GridSearchCV

# 实用函数
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# 数据准备
from sklearn.datasets import load_iris

# 导入LGBM
import lightgbm as lgb

       接下来我们尝试训练LGBM模型。对于LGBM来说,支持多种不同类型的数据输入以及多种不同类型的训练方式,这里我们先从最简单的应用情况开始介绍,即围绕CSV格式数据进行DATaFrame数据格式读取,并采用类sklearn的建模风格进行模型的训练。这里我们先采用鸢尾花数据集进行简单模型测试,数据导入和数据集划分如下:

# 读取数据
iris = load_iris()
data = pd.DataFrame(data= np.c_[iris['data'], iris['target']], columns= iris['feature_names'] + ['target'])
# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(data.drop("target", axis=1), data["target"], test_size=0.2)

        然后是模型实例化过程。和XGB类似,LGBM不同类型的模型(及功能)可以直接通过导入子模块的方式来调用,也可以直接通过父模块.子模块的方式直接进行调用,例如我们可以通过如下方式调用LGBM的分类模型:

gbm = lgb.LGBMClassifier()
gbm

        也可以先导入,再调用:

from lightgbm import LGBMClassifier
gbm = LGBMClassifier()
gbm

        在sklearn API中,模型已经设置好了默认超参数取值,可以完全不认识任何模型超参数的情况下进行建模。sklearn API中LGBM的超参数情况如下:

LGBMClassifier?

        具体的模型训练过程和sklearn中其他模型一样,通过fit进行训练,并利用predict进行结果输出:

# 训练模型
gbm.fit(X_train, y_train)

        然后输出预测结果,同样可以输出类别结果和概率预测结果:

gbm.predict(X_test)
gbm.predict_proba(X_test)

        我们可以借助argmax方法将概率预测结果转化为类别预测结果:

np.argmax(gbm.predict_proba(X_test), 1)

        这段代码使用了Python中的NumPy库中的argmax函数,用于返回沿轴的最大值的索引。gbm是一个机器学习模型,predict_proba()方法会返回输入数据X_test在所有可能标签上的概率值,然后argmax()函数会返回具有最高概率值的标签。总体来说,这行代码的作用是对测试数据进行预测,并返回预测结果的标签。

        调用accuracy_score函数快速查看最终模型在训练集和测试集上的准确率:

accuracy_score(y_train, gbm.predict(X_train)), accuracy_score(y_test, gbm.predict(X_test))

至此,我们就完成了一次简单的LGBM算法的sklearn API调用。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值