20分钟
scikit-learn API
LGBMModel实现了lightgbm类似于scikit-learn的接口
class lightgbm.LGBMModel(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,class_weight=None, **kwargs)参数:
boosting_type: 一个字符串,指定了基学习器的算法。默认为'gbdt'。 可以为:'gbdt': 表示传统的梯度提升决策树。默认值为'gbdt''rf': 表示随机森林。'dart': 表示带dropout的gbdtgoss:表示Gradient-based One-Side Sampling的gbdt
num_leaves:一个整数,给出了一棵树上的叶子数。默认为31max_depth:一个整数,限制了树模型的最大深度,默认值为-1。- 如果小于0,则表示没有限制。
learning_rate: 一个浮点数,给出了学习率。默认为0.1n_estimators:一个整数,给出了boosted trees的数量。默认为10max_bin: 一个整数, 指定每个特征的最大分桶数量。默认为255。class_weight:给出了每个类别的权重占比。- 可以为字符串
'balanced',此时类别权重反比与类别的频率。 - 可以为字典,此时人工给出了每个类别的权重。
- 如果为
None,则认为每个类别的比例一样。
该参数仅用于多类分类问题。对于二类分类问题,可以使用
is_unbalance参数。- 可以为字符串
subsample_for_bin:一个整数,表示用来构建直方图的样本的数量。默认为200000。objective: 一个字符串、可调用对象或者为None,表示问题类型以及对应的目标函数。参考2.2.1 核心参数->objective。 默认为None,此时对于LGBMRegressor为'regression';对于LGBMClassifier为'binary'或者'multiclass';对于LGBMRanker为'lambdarank'。 如果为自定义的可调用对象,则它的签名为:objective(y_true, y_pred) -> grad, hess;或者签名为:objective(y_true, y_pred, group) -> grad, hess。其中:y_true: 一个形状为(n_samples,)(对于多类分类问题,则是(n_samples,n_classes)) 的array-like对象,给出了真实的标签值。y_pred: 一个形状为(n_samples,)(对于多类分类问题,则是(n_samples,n_classes))的array-like对象,给出了预测的标签值。group: 一个array-like对象,给出了数据的分组信息。它用于ranking任务grad:一个形状为(n_samples,)(对于多类分类问题,则是(n_samples,n_classes)) 的array-like对象,给出了每个样本的梯度值。hess:一个形状为(n_samples,)(对于多类分类问题,则是(n_samples,n_classes)) 的array-like对象,给出了每个样本的二阶导数值。
min_split_gain:一个浮点数,表示执行切分的最小增益,默认为0min_child_weight:一个浮点数,表示一个叶子节点上的最小hessian之和。(也就是叶节点样本权重之和的最小值) 默认为1e-3。min_child_samples: 一个整数,表示一个叶子节点上包含的最少样本数量。默认值为 20subsample: 一个浮点数,表示训练样本的采样比例。参考2.2.2 学习控制参数->subsample。subsample_freq:一个浮点数,表示训练样本的采样频率。参考2.2.2 学习控制参数->subsample_freq。colsample_bytree:一个浮点数,表示特征的采样比例。参考2.2.2 学习控制参数->colsample_bytree。reg_alpha: 一个浮点数,表示L1正则化系数。默认为0reg_lambda:一个浮点数,表示L2正则化系数。默认为0random_state:一个整数或者None,表示随机数种子。如果为None,则使用默认的种子。默认为Nonen_jobs:一个整数,指定并行的线程数量。如果为-1,则表示使用所有的CPU。默认为-1silent:一个布尔值,指示是否在训练过程中屏蔽输出。默认为True。kwargs:其它的参数。
学员评价