参数
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正则化参数
}