首先是配置文件参数。参考自https://lightgbm.apachecn.org/#/docs/6

配置参数实在是太多了,大家还是去原文档查表吧orz

参数名 可选参数 作用
config= 自填,string类型 配置文件的路径
task= trainpredictconvert_model 训练;预测;转化为if-else 模型
 

regressionregression_l1huberfairpoissonquantilequantile_l2;

binarymulticlassmulticlassova,;

xentropyxentlambda;

lambdarank

回归

分类

交叉熵

lambdarank:标签是离散的整数,且数值越高品质越好。

boosting= gbdtrfdartgoss 提升器:梯度提升决策树;随机森林;dart;基于梯度的单面采样
data= 自填 训练数据
valid= 自填,支持多组测试数据一起输入,输入时用‘,’隔开 测试数据
num_iterations= 自填,int类型,默认100 迭代次数
num_leaves= 自填,double型,默认31 单棵树的叶子数
tree_learner= serialfeaturedatavoting 决定是否并行学习:不并发;按特征并行学习;按数据并行学习;按投票并行学习。
num_threads= 自填,整数,默认OpenMP_default

LightGBM 的线程数,按cpu的核数填。4核就填4.

device= cpu,gpu

选择使用哪种设备训练模型

learning_rate= 自填,double型,默认0.1 学习率
max_depth= 自填,整数,默认-1(无限制)

单棵树的最大深度限制,用于处理过拟合。数值越大拟合能力越强

min_data_in_leaf= 自填,整数,默认20

一个叶子中的最小数据量。用于处理过拟合。数值越小拟合能力越强

min_sum_hessian_in_leaf 自填,duoble型,默认1e-3

和叶子的纯度有关,用于处理过拟合,越小拟合能力越强

feature_fraction= 自填,double型,默认1,数值范围(0,1]

训练前随机保留的特征比例。每次迭代都会重新选择。类似dropout.数值越大拟合能力越强,可以防止过拟合

feature_fraction_seed= 自填,整型,默认2。

feature_fraction的随机种子

bagging_fraction=  自填,double型,默认1,数值范围(0,1]

每次从训练随机抽取的样本比例(不放回抽样)

数值越大拟合能力越强。可以用来处理过拟合

bagging_freq=  自填,double型,默认0(禁用)

每次bagging_freq次迭代重新抽样,生成新的训练集。

bagging_seed= 自填,整型,默认3。

bagging 随机数种子

early_stopping_round= 自填,整型,默认0(禁用)。

如果一个验证集的度量在

early_stopping_round 次循环中没有提升, 将提前停止训练

min_split_gain=  自填,double型,默认0(禁用)

执行切分的最小增益

 min_data_per_group=  default=100, type=int 

每个categorical_feature组的最小数据量。

max_cat_threshold= default=32, type=int

categorical_feature的足底啊类别数

cat_smooth= default=10, type=double

这可以降低噪声categorical_feature中的影响, 尤其是对数据很少的类别

input_model= 自填,string类型

要导入模型的路径

is_unbalance= default=false, type=bool

只适用于二分问题,推荐在样本不平衡时使用。

度量函数metric:太多了不列了 参考

定义标签,特征名和类别特征:

train_data = lgb.Dataset(data, label=label, feature_name=['c1', 'c2', 'c3'], categorical_feature=['c3'])
label 要学习的类别标签,feature_name按列赋特征名,
指定哪些列为categorical_feature(如职业:学生,教师。这样的特征是categorical_feature)。
categorical_featured的隔室
  • 用数字做索引, e.g. categorical_feature=0,1,2 意味着 column_0, column_1 和 column_2 是分类特征
  • 为列名添加前缀 name:, e.g. categorical_feature=name:c1,c2,c3 意味着 c1, c2 和 c3 是分类特征
  • Note: 只支持分类与 int type. 索引从 0 开始. 同时它不包括标签栏
  • Note: 负值的值将被视为 missing values

数据接口

LightGBM Python 模块能够使用以下几种方式来加载数据:

  • libsvm/tsv/csv txt format file(libsvm/tsv/csv 文本文件格式)
  • Numpy 2D array, pandas object(Numpy 2维数组, pandas 对象)
  • LightGBM binary file(LightGBM 二进制文件)

指定权重

train_data = lgb.Dataset(data, label=label, weight=w) 或者 train_data = lgb.Dataset(data, label=label) train_data.set_weight(w)

train_data = lgb.Dataset(data, label=label, weight=w)

每行数据的训练权重?

参数的设置

参数可以通过字典设置

param = {'num_leaves':31, 'num_trees':100, 'objective':'binary'}
param['metric'] = 'auc'

调参说明

https://lightgbm.apachecn.org/#/docs/7

缺失值的处理

  • LightGBM 通过默认的方式来处理缺失值,你可以通过设置 use_missing=false 来使其无效。
  • LightGBM 通过默认的的方式用 NA (NaN) 去表示缺失值,你可以通过设置 zero_as_missing=true 将其变为零。
  • 当设置 zero_as_missing=false (默认)时,在稀疏矩阵里 (和LightSVM) ,没有显示的值视为零。
  • 当设置 zero_as_missing=true 时, NA 和 0 (包括在稀疏矩阵里,没有显示的值)视为缺失。

最新文章

  1. 部署JProfiler监控tomcat
  2. Cocos2d-x 3.x游戏开发之旅
  3. 非对称加密算法-RSA
  4. UVa 12505 Searching in sqrt(n)
  5. wordpress+php+mysql 配置
  6. NSS_11 Server Error in '/' Application
  7. Delphi2010下的FillChar
  8. sqlserver2008中如何用右键可视化的设置外键
  9. 【solr专题之四】在Tomcat 中部署Solr4.x
  10. LibSVM笔记系列(3)——初学移植libsvm的C/C++版本
  11. Spring Boot 分布式Session状态保存Redis
  12. AOP学习笔记一
  13. Spring依赖注入原理
  14. [51nod Round 15 B ] 完美消除
  15. mysql命令行的导入导出sql,txt,excel(都在linux或windows命令行操作)(转自筑梦悠然)
  16. wstngfw中使用Viscosity连接OpenV-P-N服务器
  17. Monkey测试简介【转载】
  18. Xcode修改项目的Build Location
  19. English trip -- Review Unit3 Family 家人
  20. js中replace的用法

热门文章

  1. 怎样通过互联网ssh访问家里电脑
  2. Spring.net Ioc 依赖注入
  3. 1 Mongodb安装
  4. Thread-local storage (TLS)
  5. web开发学习之路是否有尽头
  6. oracle集群部署相关文章
  7. 《Cracking the Coding Interview》——第18章:难题——题目5
  8. Caliburn Micro Binding KeyDown Event
  9. activiti并发多实例子流程任务处理
  10. 斐波那契数列的三种C++实现及时间复杂度分析