lgb参数

中文文档

参数
params = {
    # default=0.1, type=double, alias=shrinkage_rate
    'learning_rate': 0.2,   

    # default=regression,任务类型
    'application': 'binary',    
    # 叶子节点的数量
    'num_leaves': 31,
    # default=1, type=int, alias=verbose  |  日志冗长度,[详细信息]代表是否输出 < 0: Fatal, = 0: Error (Warn), > 0: Info            
    'verbosity': -1,    
     'data_random_seed': 2,
     'bagging_fraction': 0.8,# default=1.0, type=double, 0.0 < bagging_fraction < 1.0, alias=sub_row, subsample
    # 类似于 feature_fraction, 但是它将在不进行重采样的情况下随机选择部分数据
    # 可以用来加速训练
    # 可以用来处理过拟合
    # Note: 为了启用 bagging, bagging_freq 应该设置为非零值

     'feature_fraction': 0.6,   
     #default=1.0, type=double, 0.0 < feature_fraction < 1.0, alias=sub_feature,                                                                        #colsample_bytree
    # 如果 feature_fraction 小于 1.0, LightGBM 将会在每次迭代中随机选择部分特征. 例如, 如果设置为 0.8, 将会在每棵树训练之前选择 80% 的特征
    # 可以用来加速训练
    # 可以用来处理过拟合
    'nthread': 4,           
    #default=OpenMP_default, type=int, alias=num_thread, nthread
    # LightGBM 的线程数
    # 为了更快的速度, 将此设置为真正的 CPU 内核数, 而不是线程的数量 (大多数 CPU 使用超线程来使每个 CPU 内核生成 2 个线程)
    # 当你的数据集小的时候不要将它设置的过大 (比如, 当数据集有 10,000 行时不要使用 64 线程)
    # 请注意, 任务管理器或任何类似的 CPU 监视工具可能会报告未被充分利用的内核. 这是正常的
    # 对于并行学习, 不应该使用全部的 CPU 内核, 因为这会导致网络性能不佳

    'lambda_l1': 1,         #lambda_l1, default=0, type=double, alias=reg_alpha   L1 正则
    'lambda_l2': 1}         #lambda_l2, default=0, type=double, alias=reg_lambda   L2 正则

    rounds_lookup = {'toxic': 140,
                     'severe_toxic': 50,
                     'obscene': 80,
                     'threat': 80,
                     'insult': 70,
                     'identity_hate': 80}
    model = lgb.train(params,
                      train_set=d_train,
                      valid_sets=watchlist,
                      verbose_eval=10)
# num_iterations, default=100, type=int, alias=num_iteration, num_tree, num_trees, num_round, num_rounds, num_boost_round
# boosting 的迭代次数
# Note: 对于 Python/R 包, 这个参数是被忽略的, 使用 train and cv 的输入参数 num_boost_round (Python) or nrounds (R) 来代替
# Note: 在内部, LightGBM 对于 multiclass 问题设置 num_class * num_iterations 棵树

 另一个代码参数:
    params = {
        "objective": "binary",
        'metric': {'auc'},
        "boosting_type": "gbdt",    
    # boosting, default=gbdt, type=enum, options=gbdt, rf, dart, goss, alias=boost, boosting_type
    # gbdt, 传统的梯度提升决策树
        # rf, Random Forest (随机森林)
        # dart, Dropouts meet Multiple Additive Regression Trees
        # goss, Gradient-based One-Side Sampling (基于梯度的单侧采样)

        "verbosity": -1,
        "num_threads": 4,
        "bagging_fraction": 0.8,
        "feature_fraction": 0.8,
        "learning_rate": 0.1,
        "num_leaves": 31,
        "verbose": -1,
        "min_split_gain": .1,       #min_split_gain, default=0, type=double, alias=min_gain_to_split
                                    #执行切分的最小增益
        "reg_alpha": .1             ##l1正则化参数
    }

你可能感兴趣的:(python数据分析)