LightGBM 实战:大规模数据高效训练

📅 2026/7/8 14:05:52
LightGBM 实战:大规模数据高效训练
LightGBM 实战大规模数据高效训练1. LightGBM 优势LightGBM vs XGBoost ├── 训练速度快 10-20x ├── 内存占用低 50% ├── 支持类别特征直接输入 ├── 支持并行学习特征并行/数据并行 └── 适用场景大数据/高维特征2. 核心参数importlightgbmaslgb params{objective:binary,metric:binary_logloss,boosting_type:gbdt,num_leaves:31,max_depth:-1,learning_rate:0.05,n_estimators:1000,subsample:0.8,colsample_bytree:0.8,reg_alpha:0.1,reg_lambda:1.0,min_child_samples:20,min_child_weight:1e-3,random_state:42,n_jobs:-1,verbose:-1,}modellgb.LGBMClassifier(**params)model.fit(X_train,y_train,eval_set[(X_val,y_val)],callbacks[lgb.early_stopping(50),lgb.log_evaluation(100)])3. 类别特征处理# LightGBM 原生支持类别特征categorical_features[city,category,brand]forcolincategorical_features:X_train[col]X_train[col].astype(category)model.fit(X_train,y_train,categorical_featurecategorical_features,eval_set[(X_val,y_val)])4. 大数据训练# 分块加载大数据importpandasaspd chunkspd.read_csv(large_data.csv,chunksize100000)forchunkinchunks:model.fit(chunk[features],chunk[target],init_modelmodel)# GPU 加速params[device]gpuparams[gpu_platform_id]0params[gpu_device_id]05. 特征重要性importmatplotlib.pyplotasplt lgb.plot_importance(model,max_num_features20,figsize(10,8))plt.title(Feature Importance)plt.tight_layout()plt.show()总结特性LightGBMXGBoost训练速度快中内存低中类别特征原生支持需编码GPU 支持好好