mars.learn.contrib.lightgbm.LGBMClassifier#

class mars.learn.contrib.lightgbm.LGBMClassifier(*args, **kwargs)[来源]#
__init__(*args, **kwargs)#

构建一个梯度提升模型。

Parameters
  • boosting_type (str, 可选 (默认='gbdt')) – ‘gbdt’,传统的梯度提升决策树。 ‘dart’,Dropouts meets Multiple Additive Regression Trees(DART)。 ‘rf’,随机森林。

  • num_leaves (int, 可选 (默认=31)) – 基学习器的最大树叶数量。

  • max_depth (int, 可选 (默认=-1)) – 基学习者的最大树深度, <=0 表示没有限制。

  • learning_rate (float, 可选 (默认=0.1)) – 提升学习率。 您可以使用 callbacks 参数的 fit 方法在训练中使用 reset_parameter 回调来缩小/调整学习率。 注意,这将忽略训练中的 learning_rate 参数。

  • n_estimators (int, 可选 (默认=100)) – 要拟合的增强树的数量。

  • subsample_for_bin (int, 可选的 (默认=200000)) – 用于构建桶的样本数量。

  • 目标 (str, 可调用None, 可选 (默认=None)) – 指定学习任务及相应的学习目标或要使用的自定义目标函数(见下文说明)。默认值:LGBMRegressor 的 ‘回归’,LGBMClassifier 的 ‘二分类’ 或 ‘多分类’,LGBMRanker 的 ‘lambdarank’。

  • class_weight (dict, 'balanced'None, 可选 (默认=None)) – 与类别相关的权重形式 {class_label: weight}。仅在多类分类任务中使用此参数;对于二元分类任务,您可以使用 is_unbalancescale_pos_weight 参数。请注意,使用所有这些参数将导致个别类别概率的估计不准确。您可能希望考虑对您的模型进行概率校准 (https://scikit-learn.org/stable/modules/calibration.html)。‘balanced’模式使用 y 的值自动调整权重,与输入数据中的类别频率成反比,如 n_samples / (n_classes * np.bincount(y))。如果为 None,则所有类别的权重都假定为一。请注意,如果指定了 sample_weight(通过 fit 方法传递),则这些权重将与 sample_weight 相乘。

  • min_split_gain (float, 可选 (默认=0.)) – 进行进一步分割树的叶子节点所需的最小损失减少。

  • min_child_weight (float, 可选 (默认=1e-3)) – 子节点(叶子)的实例权重(Hessian)所需的最小总和。

  • min_child_samples (int, 可选 (默认=20)) – 一个子节点(叶子)中所需的最小数据数量。

  • subsample (float, 可选 (默认=1.)) – 训练实例的子采样比例.

  • subsample_freq (int, 可选 (默认=0)) – 子样本的频率, <=0 表示不启用。

  • colsample_bytree (float, 可选 (默认=1.)) – 在构建每棵树时的列子采样比例。

  • reg_alpha (float, 可选 (默认=0.)) – 权重的L1正则化项。

  • reg_lambda (float, 可选 (默认=0.)) – 权重的L2正则化项。

  • random_state (int, RandomState 对象None, 可选默认=None) – 随机数种子。
    如果是整数,该数字用于初始化 C++ 代码。
    如果是 RandomState 对象(numpy),则根据其状态选择一个随机整数用于初始化 C++ 代码。
    如果 None,则使用 C++ 代码中的默认种子。

  • n_jobs (intNone, 可选 (默认=None)) –

    用于训练的并行线程数(可以在预测时通过将其作为额外关键字参数传递进行更改)。

    为了更好的性能,建议将其设置为CPU中的物理核心数。

    负整数被解释为遵循joblib的公式(n_cpus + 1 + n_jobs),就像scikit-learn一样(例如,-1表示使用所有线程)。值零对应于系统中为OpenMP配置的默认线程数。值为None(默认)对应于使用系统中的物理核心数(其正确检测需要安装joblibpsutil实用程序库)。

    此版本在4.0.0中更改。

  • importance_type (str, 可选 (默认='split')) – 要填充到 feature_importances_ 的特征重要性的类型。 如果是‘split’,结果包含特征在模型中使用的次数。 如果是‘gain’,结果包含使用该特征的分裂的总增益。

  • **kwargs

    模型的其他参数。 查看 http://lightgbm.readthedocs.io/en/latest/Parameters.html 以获取更多参数。

    警告

    **kwargs 在 sklearn 中不受支持,可能导致意外问题。

注意

可以为 objective 参数提供自定义目标函数。在这种情况下,它应该具有以下签名 objective(y_true, y_pred) -> grad, hess, objective(y_true, y_pred, weight) -> grad, hessobjective(y_true, y_pred, weight, group) -> grad, hess:

y_truenumpy 1-D array of shape = [n_samples]

目标值。

y_prednumpy 1-D array of shape = [n_samples] or numpy 2-D array of shape = [n_samples, n_classes] (for multi-class task)

预测值。 预测值是在任何转换之前返回的, 例如,它们是原始边际而不是二元任务的正类概率。

weightnumpy 1-D array of shape = [n_samples]

样本的权重。权重应为非负值。

groupnumpy 1-D array

组/查询数据。 仅在学习排序任务中使用。 sum(group) = n_samples。 例如,如果您有一个包含100个文档的数据集,group = [10, 20, 40, 10, 10, 10],这意味着您有6个组, 第一个组包含前10条记录,第二个组包含第11-30条记录,第三个组包含第31-70条记录,等等。

gradnumpy 1-D array of shape = [n_samples] or numpy 2-D array of shape = [n_samples, n_classes] (for multi-class task)

损失相对于每个样本点的y_pred元素的一阶导数(梯度)的值。

hessnumpy 1-D array of shape = [n_samples] or numpy 2-D array of shape = [n_samples, n_classes] (for multi-class task)

每个样本点的损失关于y_pred元素的二阶导数(Hessian)的值。

对于多类任务,y_pred 是一个形状为 [n_samples, n_classes] 的 numpy 2-D 数组,grad 和 hess 应以相同的格式返回。

方法

__init__(*args, **kwargs)

构建一个梯度提升模型。

fit(X, y[, sample_weight, init_score, ...])

根据训练集 (X, y) 构建一个梯度提升模型。

get_params([deep])

获取该估计器的参数。

load_model(model)

predict(X, **kwargs)

返回每个样本的预测值。

predict_proba(X, **kwargs)

返回每个样本每个类别的预测概率。

score(X, y[, sample_weight])

返回给定测试数据和标签的平均准确性。

set_params(**params)

设置此估计器的参数。

to_local()

属性

best_iteration_

如果指定了 early_stopping() 回调,则这是拟合模型的最佳迭代。

best_score_

拟合模型的最佳分数。

booster_

该模型的基础增强器。

classes_

类别标签数组。

evals_result_

如果指定了验证集,则评估结果。

feature_importances_

特征的重要性(越高越重要)。

feature_name_

功能的名称。

n_classes_

类的数量。

n_estimators_

执行的增强迭代的真实数量。

n_features_

拟合模型的特征数量。

n_features_in_

拟合模型的特征数量。

n_iter_

执行的增强迭代的真实数量。

objective_

在拟合该模型时使用的具体目标。