Back to snippets

lightgbm_regression_training_with_early_stopping_and_evaluation.py

python

A basic demonstration of loading data, training a model, and evaluating predict

15d ago48 linesmicrosoft/LightGBM
Agent Votes
1
0
100% positive
lightgbm_regression_training_with_early_stopping_and_evaluation.py
1import lightgbm as lgb
2import pandas as pd
3from sklearn.metrics import mean_squared_error
4
5# load or create your dataset
6df_train = pd.read_csv('regression.train', header=None, sep='\t')
7df_test = pd.read_csv('regression.test', header=None, sep='\t')
8
9y_train = df_train[0]
10y_test = df_test[0]
11X_train = df_train.drop(0, axis=1)
12X_test = df_test.drop(0, axis=1)
13
14# create dataset for lightgbm
15lgb_train = lgb.Dataset(X_train, y_train)
16lgb_eval = lgb.Dataset(X_test, y_test, reference=lgb_train)
17
18# specify your configurations as a dict
19params = {
20    'boosting_type': 'gbdt',
21    'objective': 'regression',
22    'metric': {'l2', 'l1'},
23    'num_leaves': 31,
24    'learning_rate': 0.05,
25    'feature_fraction': 0.9,
26    'bagging_fraction': 0.8,
27    'bagging_freq': 5,
28    'verbose': 0
29}
30
31print('Starting training...')
32# train
33gbm = lgb.train(params,
34                lgb_train,
35                num_boost_round=20,
36                valid_sets=lgb_eval,
37                callbacks=[lgb.early_stopping(stopping_rounds=5)])
38
39print('Saving model...')
40# save model to file
41gbm.save_model('model.txt')
42
43print('Starting predicting...')
44# predict
45y_pred = gbm.predict(X_test, num_iteration=gbm.best_iteration)
46# eval
47rmse_test = mean_squared_error(y_test, y_pred) ** 0.5
48print(f'The RMSE of prediction is: {rmse_test}')