lightgbm常用函数

1、lgb.Dataset()

    train_data = lgb.Dataset(data, label=label, feature_name=['c1', 'c2', 'c3'], categorical_feature=['c3'], weight=w )

    LightGBM 可以直接使用 categorical features(分类特征)作为 input(输入). 它不需要被转换成 one-hot coding(独热编码), 并且它比 one-hot coding(独热编码)更快(约快上 8 倍)

    注意: 在你构造 Dataset 之前, 你应该将分类特征转换为 int 类型的值.

    需要时可以设置权重weight,也可用函数train_data.set_weight(w)

2、交叉验证cv

num_round = 10

lgb.cv(param, train_data, num_round, nfold=5)

 

3、 

# 创建成lgb特征的数据集格式

lgb_train = lgb.Dataset(X_train, y_train) # 将数据保存到LightGBM二进制文件将使加载更快

lgb_eval = lgb.Dataset(X_test, y_test, reference=lgb_train)  # 创建验证数据

# 将参数写成字典下形式

params = {

    'task': 'train',

    'boosting_type': 'gbdt',  # 设置提升类型

    'objective': 'regression', # 目标函数

    'metric': {'l2', 'auc'},  # 评估函数

    'num_leaves': 31,   # 叶子节点数

    'learning_rate': 0.05,  # 学习速率

    'feature_fraction': 0.9, # 建树的特征选择比例

    'bagging_fraction': 0.8, # 建树的样本采样比例

    'bagging_freq': 5,  # k 意味着每 k 次迭代执行bagging

    'verbose': 1 # <0 显示致命的, =0 显示错误 (警告), >0 显示信息

}

print('Start training...')

# 训练 cv and train

gbm = lgb.train(params,lgb_train,num_boost_round=20,valid_sets=lgb_eval,early_stopping_rounds=5) # 训练数据需要参数列表和数据集

print('Save model...')

gbm.save_model('model.txt')   # 训练后保存模型到文件

print('Start predicting...')

# 预测数据集

y_pred = gbm.predict(X_test, num_iteration=gbm.best_iteration) #如果在训练期间启用了早期停止,可以通过best_iteration方式从最佳迭代中获得预测

# 评估模型

print('The rmse of prediction is:', mean_squared_error(y_test, y_pred) ** 0.5) # 计算真实值和预测值之间的均方根误差

 

你可能感兴趣的:(机器学习,lightgbm,lgb,机器学习,大数据分析)