文章目录

  • 1. lightgbm.train
  • 2.返回 lightgbm.Booster
    • methods
  • 代码

1. lightgbm.train

lightgbm.train(params, train_set, num_boost_round=100, valid_sets=None, valid_names=None, fobj=None, feval=None, init_model=None, feature_name='auto', categorical_feature='auto',keep_training_booster=False, callbacks=None)
  • params ( dict ) – 训练参数。# 超参数设置
  • train_set ( Dataset ) – 要训练的数据。# 训练数据
  • num_boost_round ( int , optional ( default=100 ) ) – 提升迭代次数。# 循环的轮数
  • valid_sets ( list of Dataset , or None , optional ( default=None ) ) – 训练期间要评估的数据列表。# 验证数据
  • valid_names(str 列表,或None ,可选(默认=None ))- 的名称valid_sets。# 验证集名称
  • early_stopping_rounds=200,# 如果200轮后没有提升,就停止循环

返回的是一个训练好的Booster模型

2.操作:
  用于训练你的模型,返回的是一个训练好的Booster模型

2.返回 lightgbm.Booster

classlightgbm.Booster(params=None, train_set=None, model_file=None, model_str=None)

params ( dict or None , optional ( default=None ) ) – Booster 的参数。

train_set ( Dataset or None , optional ( default=None ) ) – 训练数据集。

model_file ( str , pathlib.Path or None , optional ( default=None ) ) – 模型文件的路径。

model_str ( str or None , optional ( default=None ) ) – 模型将从该字符串加载

methods

1、

feature_importance(importance_type='split', iteration=None)

Get feature importances.(获取特征重要性)
Parameters

importance_type (str, optional (default=“split”)) – 如何计算重要性。如果“拆分”,则结果包含该特征在模型中使用的次数。如果“增益”,结果包含使用该特征的分割的总增益。

iteration (int or None, optional (default=None)) –限制特征重要性计算中的迭代次数。如果None,如果存在最好的迭代,则使用它;否则,将使用所有树。如果 <= 0,则使用所有树(无限制)。

Returns:result – Array with feature importances.(结果- 具有特征重要性的数组)
Return type:numpy 数组 (numpy array)

2、

predict(data, start_iteration=0, num_iteration=None, raw_score=False, pred_leaf=False, pred_contrib=False, data_has_header=False, is_reshape=True, **kwargs)

data:用于预测的数据源。如果是 str 或 pathlib.Path,它表示文本文件(CSV、TSV 或 LibSVM)的路径。
Returns:结果- 预测结果。对于特征贡献(何时),可以是稀疏对象或稀疏对象列表(每个元素代表一个类的预测pred_contrib=True)。
numpy 数组、scipy.sparse 或 scipy.sparse 列表

代码

# params 超参数设置params = {'num_leaves': 491, # 叶节点数量'min_data_in_leaf': 106, # 每个叶子节点中的数据'objective': 'binary', # 任务:二分类'max_depth': -1, # -1 : 不限制深度"boosting_type": "gbdt", # 'dart', 'goss', 'rf'"metric": 'auc', # 衡量标准"verbosity" : -1, # 不显示信息'random_state': 66, # 随机种子}
# params 超参数设置params = {'num_leaves': 491, # 叶节点数量'min_data_in_leaf': 106, # 每个叶子节点中的数据'objective': 'binary', # 任务:二分类'max_depth': -1, # -1 : 不限制深度"boosting_type": "gbdt", # 'dart', 'goss', 'rf'"metric": 'auc', # 衡量标准"verbosity" : -1, # 不显示信息'random_state': 66, # 随机种子}# 创建DataFrame保存特征重要性
feature_importances = pd.DataFrame(index=None)feature_importances['features'] = X.columns# 5折交叉验证#将原始数据随机分为两组,一组做为训练集,一组做为验证集,利用训练集训练分类器,
#然后利用验证集验证模型,记录最后的分类准确率为此分类器的性能指标。folds = KFold(n_splits=5)splits = folds.split(X, y) # 分割成5份,前4份是训练集索引,最后1份是验证集索引next(iter(splits)) # 输出的是索引
best_auc = 0
best_model = Nonefor k, (train_indices, val_indices) in enumerate(splits):print("第 %d 折\n" % k)# iloc:根据标签的所在位置,从0开始计数,先选取行再选取列X_train_data, X_val_data = X.iloc[train_indices], X.iloc[val_indices] # 训练集, 验证集y_train, y_val = y.iloc[train_indices], y.iloc[val_indices] # 训练标签,验证标签#print("X_train_data shape : \t", X_train_data.shape, "X_val_data shape : \t", X_val_data.shape)#这里调用了 lightGBM 算法 ,第一个是传入数据,第二个是数据的标签train_dataset = lgb.Dataset(X_train_data, label=y_train) # 训练集val_dataset = lgb.Dataset(X_val_data, label=y_val) # 验证集lgb_model = lgb.train(params=params, # 超参数设置train_set=train_dataset, # 训练数据num_boost_round=10000, # 循环的轮数valid_sets=val_dataset, # 验证数据valid_names='validation', # 验证集名称early_stopping_rounds=200,) # 如果200轮后没有提升,就停止循环# 保存特征重要性feature_importances[f'fold_{k+1}'] = lgb_model.feature_importance()#print("看一看有啥东西{}".format())# 对验证集进行预测y_val_pred = lgb_model.predict(X_val_data)# 计算roc_aucroc_auc = roc_auc_score(y_val, y_val_pred)print(f" Fold {k + 1} | AUC_ROC : { roc_auc * 100}%")# 判断是否是最优模型if roc_auc > best_auc:best_auc = roc_aucbest_model = lgb_model

lightGBM中的lightgbm.train相关推荐

  1. 在Python中使用lightgbm

    前言-lightgbm是什么? LightGBM 是一个梯度 boosting 框架, 使用基于学习算法的决策树. 它是分布式的, 高效的, 装逼的, 它具有以下优势: 速度和内存使用的优化 减少分割 ...

  2. lightgbm中的feval参数使用明细

    一.问题起源: 在Lightgbm中如何使用自定义函数呢,文档搜索中找到了feval,但不知道如何使用? 二.解决方案: 1.官方文档解释: 注意事项:1.自定义的损失函数接受两个参数:第一个是模型预 ...

  3. lightgbm java_如何在C++程序中调用lightgbm (How to use lightgbm in C++ program)

    本文作者为tieying zhang,有任何问题请联系zhangtiey@gmail.com Lightgbm以轻量著称,所以在实际的C++程序中,常常需要使用.但是官方文档并没有介绍如何在C++中调 ...

  4. LightGBM中GBDT的实现

    现在LightGBM开源了,这里将之前的一个文档发布出来供大家参考,帮助更快理解LightGBM的实现,整体思路应该是类似的. LightGBM优雅,快速,效果好,希望LightGBM越来越好:) L ...

  5. LightGBM 中文文档

    LightGBM 是一个梯度 boosting 框架, 使用基于学习算法的决策树. 它是分布式的, 高效的, 装逼的, 它具有以下优势: 速度和内存使用的优化 减少分割增益的计算量 通过直方图的相减来 ...

  6. notebook中安装lightgbm的gpu版本

    注意一定要打开kaggle notebook右侧的Internet和GPU链接,否则会安装失败的. %%time !rm -r /opt/conda/lib/python3.6/site-packag ...

  7. R中安装LightGBM(Windows 64位)

    1. 适用对象 1)Windows 64位操作系统: 2)R,64-bit.如果有R i386,卸载R重装一遍,安装R时注意去掉32-bit的选项. 2. 说明 安装前请务必先阅读LightGBM R ...

  8. python lightgbm中使用“early_stopping_rounds”和“verbose_eval”出现 UserWarning

    问题: 调用lightgbm库,设置了早停轮次"early_stopping_rounds"参数和打印log间隔"verbose_eval"参数后出现UserW ...

  9. kaggle中安装lightgbm的gpu版本

    代码如下: %%time # CPU times: user 928 ms, sys: 328 ms, total: 1.26 s # Wall time: 43.7 s !rm -r /kaggle ...

最新文章

  1. 字符串处理函数C语言实现(一)
  2. 《Java程序书面采访猿收藏》之 instanceof的作用是什么
  3. (转)rlwrap真是一个好东西
  4. 编译mysql4.0时候出现错误提示checking LinuxThreads... Not found
  5. 我的世界java版怎么装在u盘_我的世界选择器参数怎么使用?
  6. Charles - 接口抓包分析工具
  7. python变量标识符_python中的变量和标识符
  8. 【转】深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第四节 参数传递对堆栈的影响 1
  9. springboot项目后台运行关闭_springboot项目在服务器上部署过程(新手教程)
  10. php技术计算字符个数的函数是什么,php计算字符串中的单词数的函数str_word_count()...
  11. windows 安装mysql的时候最后执行一直停留在Write configuration file
  12. C#中的delegate和event (转)
  13. va_start和va_end的使用及原理
  14. 机器人程序设计——之如何正确入门ROS | 硬创公开课(附视频/PPT)【转】
  15. Nginx 解决 Tomcat 集群下的 Session共享
  16. 【转】Delphi7程序调用C#写的DLL解决办法
  17. 关于金仓数据库的java连接问题
  18. ET和LT的原理和区别
  19. 一年之计在于春,一日之计在于晨
  20. java 使用subList痛彻心扉的领悟

热门文章

  1. WPF 的内部世界(控件与布局)
  2. 点菜系统 毕设 服务器,安卓240点菜系统app+server
  3. sopc设计一个液晶模块
  4. 我和Java的爱恨情仇
  5. ae master速卖通_速卖通商品发布完整流程
  6. 科东软件与工信部电子五所达成战略合作,共同推动国产工业基础软件高质量发展
  7. Codeforces 892 B. Wrath (递推)(思维)
  8. SAP MM(物料管理)常用事务代码T-Code
  9. 实验3-6 计算个人所得税 (10 分)
  10. 算法--java字符串之金额转换