zoukankan      html  css  js  c++  java
  • 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``, 每个样本的特征贡献。
     
  • 相关阅读:
    C#和C实现通过CRC-16 (Modbus)获取CRC值并校验数据(代码)
    c#串口通信类代码可以直接调用
    栈的理解以及如何计算程序所需栈的大小并在IAR中设置栈
    Heap堆的理解以及在IAR中如何设置堆的大小
    ARM Cortex-M0权威指南高清中文版pdf免费分享下载
    如何重新划分linux分区大小
    Using Internal EEPROM of PIC Microcontroller
    树莓派Odroid等卡片式电脑上搭建NAS教程系列6-miniDLNA
    './mysql-bin.index' not found (Errcode: 13) 的解决方法
    移植mysql到嵌入式ARM平台
  • 原文地址:https://www.cnblogs.com/dzqdzq/p/14055567.html
Copyright © 2011-2022 走看看