lightgbm的sklearn接口和原生接口参数详细说明及调参指点
class lightgbm.LGBMClassifier(boosting_type='gbdt', num_leaves=31, max_depth=-1, learning_rate=0.1, n_estimators=10, max_bin=255, subsample_for_bin=200000, objective=None, min_split_gain=0.0, min_child_weight=0.001, min_child_samples=20, subsample=1.0, subsample_freq=1, colsample_bytree=1.0, reg_alpha=0.0, reg_lambda=0.0, random_state=None, n_jobs=-1, silent=True, **kwargs)
boosting_type |
default="gbdt" |
"gbdt":Gradient Boosting Decision Tree "dart":Dropouts meet Multiple Additive Regression Trees "goss":Gradient-based One-Side Sampling "rf": Random Forest |
|
| num_leaves | (int, optional (default=31)) | 每个基学习器的最大叶子节点 | <=2^max_depth |
| max_depth | (int, optional (default=-1)) | 每个基学习器的最大深度, -1 means no limit | 当模型过拟合,首先降低max_depth |
| learning_rate | (float, optional (default=0.1)) | Boosting learning rate | |
| n_estimators | (int, optional (default=10)) | 基学习器的数量 | |
| max_bin | (int, optional (default=255)) | feature将存入的bin的最大数量,应该是直方图的k值 | |
| subsample_for_bin | (int, optional (default=50000)) | Number of samples for constructing bins | |
| objective | (string, callable or None, optional (default=None)) |
default: ‘regression’ for LGBMRegressor, ‘binary’ or ‘multiclass’ for LGBMClassifier, ‘lambdarank’ for LGBMRanker. |
|
| min_split_gain | (float, optional (default=0.)) | 树的叶子节点上进行进一步划分所需的最小损失减少 | |
| min_child_weight | (float, optional (default=1e-3)) |
Minimum sum of instance weight(hessian) needed in a child(leaf) |
|
| min_child_samples |
(int, optional (default=20)) | 叶子节点具有的最小记录数 | |
| subsample |
(float, optional (default=1.)) | 训练时采样一定比例的数据 | |
| subsample_freq | (int, optional (default=1)) | Frequence of subsample, <=0 means no enable | |
| colsample_bytree |
(float, optional (default=1.)) | Subsample ratio of columns when constructing each tree | |
| reg_alpha |
(float, optional (default=0.)) | L1 regularization term on weights | |
|
reg_lambda |
(float, optional (default=0.)) | L2 regularization term on weights | |
|
random_state |
(int or None, optional (default=None)) | ||
| silent | (bool, optional (default=True)) | ||
| n_jobs | (int, optional (default=-1)) |
######################################################################################################
下表对应了Faster Spread,better accuracy,over-fitting三种目的时,可以调整的参数:

###########################################################################################
类的属性:
| n_features_ | int | 特征的数量 |
| classes_ | rray of shape = [n_classes] | 类标签数组(只针对分类问题) |
| n_classes_ | int | 类别数量 (只针对分类问题) |
| best_score_ | dict or None | 最佳拟合模型得分 |
| best_iteration_ | int or None | 如果已经指定了early_stopping_rounds,则拟合模型的最佳迭代次数 |
| objective_ | string or callable | 拟合模型时的具体目标 |
| booster_ | Booster | 这个模型的Booster |
| evals_result_ | dict or None | 如果已经指定了early_stopping_rounds,则评估结果 |
| feature_importances_ | array of shape = [n_features] | 特征的重要性 |
###########################################################################################
类的方法:
fit(X, y, sample_weight=None, init_score=None, eval_set=None, eval_names=None, eval_sample_weight=None, eval_init_score=None, eval_metric='logloss', early_stopping_rounds=None, verbose=True, feature_name='auto', categorical_feature='auto', callbacks=None)
| X | array-like or sparse matrix of shape = [n_samples, n_features] | 特征矩阵 |
| y | array-like of shape = [n_samples] | The target values (class labels in classification, real numbers in regression) |
| sample_weight | array-like of shape = [n_samples] or None, optional (default=None)) | 样本权重,可以采用np.where设置 |
| init_score | array-like of shape = [n_samples] or None, optional (default=None)) | Init score of training data |
| group | array-like of shape = [n_samples] or None, optional (default=None) | Group data of training data. |
| eval_set | list or None, optional (default=None) | A list of (X, y) tuple pairs to use as a validation sets for early-stopping |
| eval_names | list of strings or None, optional (default=None) | Names of eval_set |
| eval_sample_weight | list of arrays or None, optional (default=None) | Weights of eval data |
| eval_init_score | list of arrays or None, optional (default=None) | Init score of eval data |
| eval_group | list of arrays or None, optional (default=None) | Group data of eval data |
| eval_metric | string, list of strings, callable or None, optional (default="logloss") | "mae","mse",... |
| early_stopping_rounds | int or None, optional (default=None) | 一定rounds,即停止迭代 |
| verbose | bool, optional (default=True) | |
| feature_name | list of strings or 'auto', optional (default="auto") | If ‘auto’ and data is pandas DataFrame, data columns names are used |
| categorical_feature | list of strings or int, or 'auto', optional (default="auto") | If ‘auto’ and data is pandas DataFrame, pandas categorical columns are used |
| callbacks | list of callback functions or None, optional (default=None) |
###############################################################################################
| X | array-like or sparse matrix of shape = [n_samples, n_features] | Input features matrix |
| raw_score | bool, optional (default=False) | Whether to predict raw scores |
| num_iteration | int, optional (default=0) | Limit number of iterations in the prediction; defaults to 0 (use all trees). |
| Returns | predicted_probability | The predicted probability for each class for each sample. |
| Return type | array-like of shape = [n_samples, n_classes] |
不平衡处理的参数:
1.一个简单的方法是设置is_unbalance参数为True或者设置scale_pos_weight,二者只能选一个。 设置is_unbalance参数为True时会把负样本的权重设为:正样本数/负样本数。这个参数只能用于二分类。
2.自定义评价函数:
https://cloud.tencent.com/developer/article/1357671
lightGBM的原理总结:
http://www.cnblogs.com/gczr/p/9024730.html
论文翻译:https://blog.csdn.net/u010242233/article/details/79769950,https://zhuanlan.zhihu.com/p/42939089
处理分类变量的原理:https://blog.csdn.net/anshuai_aw1/article/details/83275299
CatBoost、LightGBM、XGBoost的对比
https://blog.csdn.net/LrS62520kV/article/details/79620615
lightgbm的sklearn接口和原生接口参数详细说明及调参指点的更多相关文章
- xgboost的sklearn接口和原生接口参数详细说明及调参指点
from xgboost import XGBClassifier XGBClassifier(max_depth=3,learning_rate=0.1,n_estimators=100,silen ...
- word2vec参数调整 及lda调参
一.word2vec调参 ./word2vec -train resultbig.txt -output vectors.bin -cbow 0 -size 200 -window 5 -neg ...
- DeepMind提出新型超参数最优化方法:性能超越手动调参和贝叶斯优化
DeepMind提出新型超参数最优化方法:性能超越手动调参和贝叶斯优化 2017年11月29日 06:40:37 机器之心V 阅读数 2183 版权声明:本文为博主原创文章,遵循CC 4.0 BY ...
- python+pytest接口自动化(6)-请求参数格式的确定
我们在做接口测试之前,先需要根据接口文档或抓包接口数据,搞清楚被测接口的详细内容,其中就包含请求参数的编码格式,从而使用对应的参数格式发送请求.例如某个接口规定的请求主体的编码方式为 applicat ...
- android 学习随笔二十七(JNI:Java Native Interface,JAVA原生接口 )
JNI(Java Native Interface,JAVA原生接口) 使用JNI可以使Java代码和其他语言写的代码(如C/C++代码)进行交互. 问:为什么要进行交互? 首先,Java语言提供的类 ...
- 接口作为方法的参数或返回值——List接口
接口作为方法的参数或返回值,源码可知,List为一个接口,ArraryList是的它的实现类: 其中,addNames方法中,入参和返回值都List接口,入参是多态的,编译看左,运行看右(访问成员方法 ...
- 编写高质量代码改善C#程序的157个建议——建议43:让接口中的泛型参数支持协变
建议43:让接口中的泛型参数支持协变 除了上一建议中提到的使用泛型参数兼容接口不可变性外,还有一种办法是为接口中的泛型声明加上out关键字来支持协变,如下所示: interface ISalary&l ...
- Python+request 分模块存放接口,多接口共用参数URL、headers的抽离,添加日志打印等《三》
主要介绍内容如下: 1.分模块存放接口 2.多接口共用参数URL.headers的抽离为配置文件 3.添加日志打印 4.一个py文件运行所有所测的接口 如上介绍内容的作用: 1.分模块存放接口:方便多 ...
- 对接接口时,组织参数json出现的问题
在进行对接第三方接口时,进行参数组装成json的过程中出现参数传递格式错误以及json格式化错误. 在拼接json时,如果json中有对象,则以map的方式组装好所有参数.最后map转成json,不然 ...
随机推荐
- linux 变量定义
本地变量:用户自定义的变量. 环境变量:用于所有用户变量,用于用户进程前,必须用export命令导出. 位置变量:$0(脚本名),$1-$9:脚本参数. 特定变量:脚本运行时的一些相关信息. $# 传 ...
- Java开发培训基础知识解析之反射机制
Java是老牌编程语言,是当前应用最广泛的编程语言之一.想要学习Java你就一定要掌握Java基础知识,而反射对于初学Java的人来说绝对是非常重要的知识点.什么是反射?如何理解反射机制?如何使用反射 ...
- mongo之 ReadConcern 与 Read Preference
一.读取关注(readConcern) 官方文档 3.2版本以后支持读取关注 读取关注允许您控制从副本集和副本集分片读取的数据的实时性,一致性和隔离性. 通过有效使用写入关注和读取关注,可以适当调整一 ...
- jsp中如何清除缓存(转)
<% response.setHeader("Cache-Control","no-cache"); //HTTP 1.1 response.setHea ...
- bzoj 4349 最小树形图——朱刘算法
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4349. 学习博客:http://www.cnblogs.com/xzxl/p/7243466 ...
- C#中四种常用集合的运用(非常重要)【转】
1.ArrayList ArrayList类似于数组,有人也称它为数组列表.ArrayList可以动态维护,而数组的容量是固定的. 它的索引会根据程序的扩展而重新进行分配和调整.和数组类似,它所存储的 ...
- Go语言加解密--AES简单实践
AES加解密的简单实现,代码如下. package main import ( "crypto/aes" "crypto/cipher" "encod ...
- 浅析Hyperledger Fabric共识算法 摘自http://www.cocoachina.com/blockchain/20180829/24728.html
Hyperledger Fabric共识算法 区块链系统是一个分布式架构,交易账本信息由各个节点管理,组成一个庞大的分布式账本.在分布式系统中,各个节点收到的交易信息的顺序可能存在差异(例如,网络延迟 ...
- Android的路径信息[转]
Delphi早就把IO相关的都提取到System.IoUtils单元中了. 路径操作就使用TPath的方法都很方便.usesSystem.IoUtilsTPath.GetTempPath//临时目录T ...
- XE5 Android 开发数据访问手机端 解决乱码的办法 [转]
经过测试,将sqlserver里的字段由varchar 或者char 改为 nvarchar 或者nchar 然后在手机端的clientdataset 增加字段的时候数据类型选择widestrin ...