lightgbm 学习笔记
首先是配置文件参数。参考自https://lightgbm.apachecn.org/#/docs/6
配置参数实在是太多了,大家还是去原文档查表吧orz
参数名 | 可选参数 | 作用 |
config= | 自填,string类型 | 配置文件的路径 |
task= | train , predict , convert_model |
训练;预测;转化为if-else 模型 |
|
回归 分类 交叉熵 lambdarank:标签是离散的整数,且数值越高品质越好。 |
|
boosting= | gbdt , rf , dart , goss |
提升器:梯度提升决策树;随机森林;dart;基于梯度的单面采样 |
data= | 自填 | 训练数据 |
valid= | 自填,支持多组测试数据一起输入,输入时用‘,’隔开 | 测试数据 |
num_iterations= | 自填,int类型,默认100 | 迭代次数 |
num_leaves= | 自填,double型,默认31 | 单棵树的叶子数 |
tree_learner= | serial , feature , data , voting |
决定是否并行学习:不并发;按特征并行学习;按数据并行学习;按投票并行学习。 |
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(禁用)。 |
如果一个验证集的度量在
|
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 (包括在稀疏矩阵里,没有显示的值)视为缺失。
最新文章
- 部署JProfiler监控tomcat
- Cocos2d-x 3.x游戏开发之旅
- 非对称加密算法-RSA
- UVa 12505 Searching in sqrt(n)
- wordpress+php+mysql 配置
- NSS_11 Server Error in '/' Application
- Delphi2010下的FillChar
- sqlserver2008中如何用右键可视化的设置外键
- 【solr专题之四】在Tomcat 中部署Solr4.x
- LibSVM笔记系列(3)——初学移植libsvm的C/C++版本
- Spring Boot 分布式Session状态保存Redis
- AOP学习笔记一
- Spring依赖注入原理
- [51nod Round 15 B ] 完美消除
- mysql命令行的导入导出sql,txt,excel(都在linux或windows命令行操作)(转自筑梦悠然)
- wstngfw中使用Viscosity连接OpenV-P-N服务器
- Monkey测试简介【转载】
- Xcode修改项目的Build Location
- English trip -- Review Unit3 Family 家人
- js中replace的用法