Boost Your Predictive Modeling Skills with Light GBM: A Step-by-Step Guide with Code

Ankush Mulkar
4 min readFeb 26, 2023

--

Image source: self-made

Contents:

History of Light GBM

What is LightGBM?

Steps to use Light GBM with Code

Benefits

Application

Conclusion

History of Light GBM

LightGBM was designed to address some of the limitations of existing gradient boosting frameworks, such as XGBoost and H2O. One of the key challenges with these frameworks is the scalability of training and memory usage. LightGBM addressed this by using a leaf-wise approach to build decision trees, which reduces the number of leaf nodes and can significantly reduce memory usage.

In addition to the leaf-wise approach, LightGBM uses a gradient-based One-Side Sampling (OSS) strategy during the training process. This strategy focuses on the instances with larger gradients, which helps to improve the accuracy of the model.

Since its initial release, LightGBM has become increasingly popular in the data science and machine learning communities. It has been adopted by many organizations and has been used to solve a wide range of real-world problems, such as image classification, object detection, natural language processing, and recommendation systems.

LightGBM is an open-source framework and is available on GitHub. It is actively maintained by a team of developers and has a large and active community of users. The framework is continuously updated with new features and improvements, making it a valuable tool for data scientists and machine learning practitioners.

What is LightGBM?

LightGBM (Light Gradient Boosting Machine) is a high-performance gradient boosting framework that uses tree-based learning algorithms. It is an open-source machine learning library developed by Microsoft and is designed to be efficient, scalable, and accurate.

LightGBM is particularly useful for dealing with large datasets and high-dimensional feature spaces, as it is able to process large amounts of data quickly and with relatively low memory usage. It achieves this by using a novel technique called Gradient-based One-Side Sampling (GOSS), which selectively samples only the larger gradient instances during the training process. This significantly reduces the computational cost and makes LightGBM faster than other popular gradient boosting frameworks.

In addition to its speed, LightGBM also offers several advanced features, including support for categorical features, custom loss functions, and early stopping. It also provides several parameters that can be tuned to improve its performance on specific tasks. Overall, LightGBM is a powerful tool for a wide range of machine learning applications, including classification, regression, and ranking.

Steps to use LightGBM with code:

Step 1: Install LightGBM

First, you need to install LightGBM on your machine. You can use pip to install the library:

pip install lightgbm

Step 2: Load the Data

Next, you need to load the data into a pandas Data Frame. For this example, we will use the iris dataset, which is included in scikit-learn. You can load the dataset as follows:

from sklearn.datasets import load_iris
import pandas as pd

data = load_iris()
X = pd.DataFrame(data.data, columns=data.feature_names)
y = pd.Series(data.target)

Step 3: Split the Data

Now that we have loaded the data, we need to split it into training and testing sets. We can use the train_test_split function from scikit-learn to do this:

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

Step 4: Train the Model

We can now train the LightGBM model on the training data. We first need to create a LightGBM Dataset object from the training data:

import lightgbm as lgb

train_data = lgb.Dataset(X_train, label=y_train)

Step 5: we can specify the hyperparameters for the model. For this example, we will use the following hyperparameters:

params = {
"objective": "multiclass",
"num_classes": 3,
"metric": "multi_logloss",
"num_leaves": 31,
"learning_rate": 0.05,
"feature_fraction": 0.9,
"bagging_fraction": 0.8,
"bagging_freq": 5,
"verbose": -1
}

Steps 6: we can train the model using the train function:

model = lgb.train(params, train_data, 100)

Step 7: Evaluate the Model

We can now evaluate the model on the testing data. We first need to create a LightGBM Dataset object from the testing data:

test_data = lgb.Dataset(X_test, label=y_test)

Step 8: we can use the predict function to generate predictions on the testing data

y_pred = model.predict(X_test)

Step 9: we can calculate the accuracy of the model

import numpy as np

y_pred_class = np.argmax(y_pred, axis=1)
accuracy = (y_pred_class == y_test).mean()
print("Accuracy:", accuracy)

Benefits of LightGBM

Speed:

LightGBM is one of the fastest gradient boosting frameworks available, making it ideal for large datasets and real-time applications.

Efficiency:

LightGBM uses a leaf-wise approach to build decision trees, which reduces the number of leaf nodes and can significantly reduce memory usage.

Accuracy:

LightGBM uses a gradient-based One-Side Sampling (OSS) strategy, which focuses on the instances with larger gradients during the training process, resulting in higher accuracy.

Flexibility:

LightGBM can be used for both regression and classification tasks, as well as for ranking and recommendation systems.

LightGBM can be used in a variety of applications, including:

Predictive modeling:

LightGBM can be used to build models for predicting outcomes, such as sales, customer churn, or fraud detection.

Recommendation systems:

LightGBM can be used to build recommendation systems that suggest products or services based on user behavior.

Ranking:

LightGBM can be used to rank search results or advertisements based on relevance.

Natural language processing:

LightGBM can be used to build models for sentiment analysis, text classification, and named entity recognition.

Computer vision:

LightGBM can be used to build models for image classification, object detection, and semantic segmentation.

Conclusion

LightGBM is a powerful gradient boosting framework that offers fast and efficient training, high accuracy, and low memory usage. It can be used in a variety of applications, including predictive modeling, recommendation systems, ranking, natural language processing, and computer vision. With its many benefits, LightGBM is a valuable tool for any data scientist or machine learning practitioner.

--

--

Ankush Mulkar
Ankush Mulkar

Written by Ankush Mulkar

AI Engineer I US-based startup I Sharing AI insights on Medium visit: https://ankushmulkar.github.io/Portfolio/

No responses yet