首页 > 其他分享 >lightgbm的学习笔记

lightgbm的学习笔记

时间:2022-10-21 11:12:48浏览次数:52  
标签:lightgbm gbm 笔记 学习 train test import pickle accuracy

from sklearn.datasets import load_iris
from matplotlib import pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
import lightgbm as lgb
from lightgbm import LGBMClassifier
import numpy as np
import pandas as pd
from sklearn import metrics
import warnings
warnings.filterwarnings("ignore")

iris = load_iris()
X,y = iris.data,iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=2022)


gbm = lgb.LGBMClassifier(max_depth=10,
learning_rate=0.01,
n_estimators=2000,#提升迭代次数
objective='multi:softmax',#默认regression,用于设置损失函数
num_class=3 ,
nthread=-1,#LightGBM 的线程数
min_child_weight=1,
max_delta_step=0,
subsample=0.85,
colsample_bytree=0.7,
reg_alpha=0,#L1正则化系数
reg_lambda=1,#L2正则化系数
scale_pos_weight=1,
seed=0,
missing=None)
gbm.fit(X_train, y_train)

y_pred = gbm.predict(X_test)
# 计算准确率
accuracy = accuracy_score(y_test,y_pred)
print("accuarcy: %.2f%%" % (accuracy*100.0))

 

这里引入了鸢尾花的样本集,前四列为特征,最后一列为分类的标签,这个训练的模型就是用gbm去分类鸢尾花的。

其中比较好用的方法,accuracy_score(y_test,y_pred)  这个函数可以比较两个数组里面元素相同的个数比 配合第二步的print直接转成百分数 好用 。

from sklearn.model_selection import train_test_split   可以直接将数据集分成训练和测试两部分

具体的模型里面的参数我们现在看看:

gbm = lgb.LGBMClassifier(max_depth=10,
learning_rate=0.01,
n_estimators=2000,#提升迭代次数
objective='multi:softmax',#默认regression,用于设置损失函数
num_class=3 , 
nthread=-1,#LightGBM 的线程数
min_child_weight=1,
max_delta_step=0,
subsample=0.85,
colsample_bytree=0.7,
reg_alpha=0,#L1正则化系数
reg_lambda=1,#L2正则化系数
scale_pos_weight=1,
seed=0,
missing=None)
gbm.fit(X_train, y_train)

#使用pickle来保存模型
import pickle

with open('model.pkl', 'wb') as fout:
pickle.dump(gbm, fout)
# load model with pickle to predict
with open('model.pkl', 'rb') as fin:
pkl_bst = pickle.load(fin)
# can predict with any iteration when loaded in pickle way
y_pred = pkl_bst.predict(X_test)
accuracy = accuracy_score(y_test,y_pred)
print("accuarcy: %.2f%%" % (accuracy*100.0))

 

标签:lightgbm,gbm,笔记,学习,train,test,import,pickle,accuracy
From: https://www.cnblogs.com/GY-Zhu/p/16812798.html

相关文章

  • 机器学习—分类模型的评价指标
    1.准确率准确率是指在分类中,用模型对测试集进行分类,分类正确的样本数占总数的比例:$accuracy=\frac{n_{correct}}{n_{total}}$sklearny库中提供了一个专门对模型进行评......
  • 深度学习中batch_size的作用
    在CV中,batch_size即一次读取多少张图片,迭代次数ite=训练样本总数//batch_size,而epoch说的是所有样本循环多少次,注意区分epoch、batch_size和ite更详细的解释可参考:ht......
  • 机器学习—决策树—决策树的剪枝
    1决策树的剪枝当输入的原始数据有较多的变量时,通过决策树算法生成的决策树可能会非常的庞大。这样的一颗决策树在训练集上有很好的表现,但是在测试集上的表现往往不甚理想......
  • 美女口罩要戴好哟-深度学习口罩检测系统
     bilibili传送门:点我......
  • 设计模式—关于提高可扩展性(方法层面)的学习(更加从容的应对需求变更)
    上一节主要学习了提高复用性的几种设计模式,本节学习方法的可扩展性以及怎么更好的扩展方法。方法是组成程序的基础单元,基础单元的可扩展性是整个程序的可扩展性保障,可扩展......
  • RedHawk学习
    RedHawk学习1:RedHawk的流程和文件配置RedHawk在数字后端流程中使用的位置 RedHwakFlowRedHwark支持的几种功率分析:.平均循环电流的静态(IR)电压降.最坏情况下开关电......
  • 设计模式—关于提高可扩展性(模块层面)的学习(更加从容的应对需求变更)
    上一节主要学习了方法的可扩展性以及怎么更好的扩展方法,本节主要学习模块的可扩展性以及怎么更好的扩展模块。我们可以把任何一个程序看成是模块+组织模块沟通,模块是组成......
  • 2022-2023-1 20221424 《计算机基础与程序设计》第8周学习总结
    2022-2023-120221424《计算机基础与程序设计》第8周学习总结作业信息这个作业属于哪个课程2022-2023-1-计算机基础与程序设计这个作业要求在哪里2022-2023-1......
  • Markdown 学习
    Markdown学习标题几个#加空格就是几级标题字体两边都加上两个星号,变粗体:hello,world!两边都加上一个星号,变斜体:hello,world!两边都加上三个星号,斜体加粗:hello,world......
  • mardown简化笔记
    井号为标题语法,一个为一级标题五个为五级标题段落语法最好不要用空格(spaces)或制表符(tabs)缩进段落在一行的末尾添加两个或多个空格,然后按回车键,即可创建一个换行由于......