sklearn中的lgb

 
LGBMModel 模型创建:
参数
----------
boosting_type : string, optional (default='gbdt')
'gbdt', 传统的梯度提升决策树。
'dart', Dropouts meet Multiple Additive Regression Trees.
'goss', 基于梯度的单边采样。
'rf', 随机森林.
 
num_leaves : int, optional (default=31)
一棵树的最大叶子数
 
max_depth : int, optional (default=-1)
基本学习的最大深度, <=0 表示不限制
 
learning_rate : float, optional (default=0.1)
学习率
可以使用在fit方法的callbacks参数中的reset_parameter回调函数来缩小和调整学习率。 如果使用了回调函数,那么将忽略learning_rate参数。
 
n_estimators : int, optional (default=100)
训练次数-也是树的个数
 
subsample_for_bin : int, optional (default=200000)
用于构造垃圾箱的样本数- 对输入特征分成多少份
 
objective : string, callable or None, optional (default=None)
指定目标函数,- 是回归 还是 分类 亦或是 排名
 
如果是字符串,则用内置的,
如果是callabel, 则目标函数是自定义的
如果是None.    对于回归模型LGBMRegressor, 那么就是'regression'。 对于分类模型LGBMClassifier,那么就是'binary' or 'multiclass' 。 对于排行模型LGBMRanker, 那么就是'lambdarank'
 
class_weight : dict, 'balanced' or None, optional (default=None)
指定类别的权重,通过这样的方式 ``{class_label: weight}``.
dict方式这个参数只对多分类任务有效。
对于二分类任务,可以使用 ``is_unbalance`` 或 ``scale_pos_weight`` 参数
注意, 所有这些参数的使用将导致对各个类别概率的估计不足。
您可能要考虑对你的模型执行概率校准,参考地址:https://scikit-learn.org/stable/modules/calibration.html
如果值为“balanced”。 模式将使用y的值自动调整权重。 与输入数据中类别频率成反比例。``n_samples / (n_classes * np.bincount(y))``.
如果值为None。 那么所有类别的权重是1
注意, 这些权重会与 ``sample_weight`` 相乘 (如果通过fit方法指定了sample_weight的话)
 
min_split_gain : float, optional (default=0.)
在树的叶节点上进行切分的最小增益
 
min_child_weight : float, optional (default=1e-3)
叶节点样本权重之和的最小值
 
min_child_samples : int, optional (default=20)
一个叶子节点上包含的最少样本数量
 
subsample : float, optional (default=1.)
训练实例的子样本比率。
 
subsample_freq : int, optional (default=0)
子样本的频率, <=0 表示禁用
 
colsample_bytree : float, optional (default=1.)
构造每棵树时,列的子采样率
 
reg_alpha : float, optional (default=0.)
L1 正则化权重
 
reg_lambda : float, optional (default=0.)
L2 正则化权重
 
random_state : int or None, optional (default=None)
随机种子
如果None,默认使用在c++代码的种子
 
n_jobs : int, optional (default=-1)
并行线程数
 
silent : bool, optional (default=True)
运行增强时是否打印消息。
 
importance_type : string, optional (default='split')
特征重要性类型

如果为“ split”,则结果包含该特征在模型中使用的次数。
如果为“ gain”,则结果包含使用该功能的分割的总增益。

 
**kwargs
模型的其他参数
更多参数查看地址: http://lightgbm.readthedocs.io/en/latest/Parameters.html
警告:sklearn 不支持**kwargs.    因为可能引发异常。 
 
 
==================================================================
训练fit
 
 
参数
----------
X : 数组类型矩阵  形状 = [n_samples, n_features]
输入特征矩阵
 
y : 数组类型  形状 = [n_samples]
目标值 (分类模型中是类标签, 回归模型是真实值).
 
sample_weight : 数组类型 形状 = [n_samples]  optional (default=None)
训练数据的权重
 
init_score : 数组类型 形状 = [n_samples]  optional (default=None)
训练数据的初始分数
 
group : 数组类型 或者 None, optional (default=None)
训练数据的组数据
 
eval_set : list or None, optional (default=None)
使用(X,y) 元组作为验证集
 
eval_names : list of strings or None, optional (default=None)
验证集的名称
 
eval_sample_weight : list of arrays or None, optional (default=None)
验证集的权重(回归模型)
 
eval_class_weight : list or None, optional (default=None)
验证集标签的权重 (分类模型)
 
eval_init_score : list of arrays or None, optional (default=None)
验证集初始分数
 
eval_group : list of arrays or None, optional (default=None)
验证集组数据
 
eval_metric : string, list of strings, callable or None, optional (default=None)
如果为字符串,则应使用内置评估指标。
如何为 可执行对象, 则是自定义评估指标
其他情况, 字符串和可执行对象的列表
默认情况: LGBMRegressor使用L2, LGBMClassifier使用logloss, LGBMRanker使用ndcg
 
early_stopping_rounds : int or None, optional (default=None)
如果验证的分数不再下降,达到 early_stopping_rounds 次了,依旧没有下降,那么终止训练
至少需要一个验证数据和一个指标。
如果有多个指标(eval_metric是list,且长度大于1), 那么将检查所有。
如果只想检查第一个指标,那么需要设置first_metric_only = True
 
verbose : bool or int, optional (default=True)
至少需要一个验证数据
如果为True, 评估集上的评估指标会在每个提升阶段打印出来。
如果为 int,  每隔多少次打印
如果训练提前停止了,也会打印。 这个提前停止是通过early_stopping_rounds设置的

feature_name : list of strings or 'auto', optional (default='auto')
特征名称。 字符串列表 或者 auto
 
如果为 'auto' 且 数据是 pandas DataFrame, 那么则使用数据列名
 
categorical_feature : list of strings or int, or 'auto', optional (default='auto')
分类特征
如果是整数列表,则使用索引
如果是字符串列表, 则像指定 feature_name 一样
如果为 'auto' 且 数据是 pandas DataFrame, 则使用无序分类列
所有的类别特征值应该小于 2147483647
较大的值会占用内存。 考虑使用从零开始的连续整数。
分类特征中的所有负值都将被视为缺失值
不能相对于分类特征单调约束输出
 
callbacks : list of callback functions or None, optional (default=None)
回调函数列表。 每次迭代都会调用
 
返回值: 模型self
 
============================================================
预测predict
 
参数
----------
X : 数组类型矩阵 形状 = [n_samples, n_features]
输入特征矩阵
 
raw_score : bool, optional (default=False)
是否预测原始分数
 
num_iteration : int or None, optional (default=None)
限制预测中的迭代次数。
如果为 None, 如果存在最好的迭代次数,则使用最好的迭代次数; 其他情况, 所有的树被使用
如果 <= 0, 所有的树被使用 (不限制).
 
pred_leaf : bool, optional (default=False)
是否预测叶指数
 
pred_contrib : bool, optional (default=False)
是否预测特征贡献。

提示::

如果您想使用SHAP值获得有关模型预测的更多解释,
像SHAP互动值一样,
您可以安装shap软件包(https://github.com/slundberg/shap)。
请注意,与shap包不同,使用pred_contrib,我们将返回带有额外内容的矩阵。
列,最后一列是期望值。


**kwargs
Other parameters for the prediction.
 
返回值
-------
predicted_result : 数组类型 形状 = [n_samples] 或者 形状 = [n_samples, n_classes]
预测值
 
X_leaves : 数组类型 形状 = [n_samples, n_trees] 或 形状 = [n_samples, n_trees * n_classes]
如果 ``pred_leaf=True``, 预测每个样本的每棵树的叶子。
 
X_SHAP_values : 数组类型 形状 = [n_samples, n_features + 1] 或 形状 = [n_samples, (n_features + 1) * n_classes]
如果 ``pred_contrib=True``, 每个样本的特征贡献。
 
posted @ 2020-11-29 10:38  Please Call me 小强  阅读(1825)  评论(0编辑  收藏  举报