LightGBM (Light Gradient Boosting Machine) একটি অত্যন্ত কার্যকরী এবং দ্রুত গ্রেডিয়েন্ট বুস্টিং ফ্রেমওয়ার্ক, যা বড় ডেটাসেট এবং বৈশিষ্ট্যগুলির সঙ্গে কাজ করার জন্য ডিজাইন করা হয়েছে। LightGBM ব্যবহার করার জন্য Python এবং R উভয় ভাষায় ইন্টিগ্রেশন করা সম্ভব। নিচে Python এবং R-এ LightGBM ইন্টিগ্রেশনের ধাপগুলি বিস্তারিতভাবে আলোচনা করা হলো।
Python-এর সাথে LightGBM ইন্টিগ্রেশন
১. লাইব্রেরি ইনস্টলেশন
Python-এ LightGBM ব্যবহার করতে হলে প্রথমে এটি ইনস্টল করতে হবে। আপনি pip ব্যবহার করে এটি ইনস্টল করতে পারেন।
pip install lightgbm
২. ডেটাসেট লোড করা
LightGBM মডেল তৈরি করার জন্য প্রথমে একটি ডেটাসেট লোড করুন।
import pandas as pd
# CSV ফাইল থেকে ডেটা লোড করা
data = pd.read_csv('path_to_your_dataset.csv')
# ডেটার তথ্য দেখা
print(data.head())
৩. ডেটা প্রস্তুতি
ডেটাকে প্রশিক্ষণ এবং পরীক্ষার সেটে বিভক্ত করুন এবং ফিচার ও টার্গেট ভেরিয়েবল আলাদা করুন।
from sklearn.model_selection import train_test_split
# ফিচার এবং টার্গেট ভেরিয়েবল আলাদা করা
X = data.drop('target_column', axis=1)
y = data['target_column']
# ডেটাকে প্রশিক্ষণ এবং পরীক্ষা সেটে বিভক্ত করা
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
৪. LightGBM মডেল ট্রেনিং
LightGBM মডেল তৈরি করুন এবং প্রশিক্ষণ দিন।
import lightgbm as lgb
# LightGBM Dataset তৈরি করা
train_data = lgb.Dataset(X_train, label=y_train)
test_data = lgb.Dataset(X_test, label=y_test)
# LightGBM এর জন্য প্যারামিটার সেট করা
params = {
'objective': 'binary', # বা 'multiclass' আপনার সমস্যা অনুযায়ী
'metric': 'binary_logloss', # বা 'multi_logloss'
'boosting_type': 'gbdt',
'learning_rate': 0.05,
'num_leaves': 31,
}
# মডেল প্রশিক্ষণ
model = lgb.train(params, train_data, num_boost_round=100, valid_sets=test_data, early_stopping_rounds=10)
৫. মডেল মূল্যায়ন
মডেলের কার্যকারিতা মূল্যায়ন করুন।
# পূর্বাভাস করা
y_pred = model.predict(X_test, num_iteration=model.best_iteration)
# বিন্যাস এবং ফলাফল দেখা
import numpy as np
y_pred_binary = np.where(y_pred > 0.5, 1, 0) # বাইনারি ক্লাসিফিকেশনের জন্য
from sklearn.metrics import accuracy_score
print("Accuracy:", accuracy_score(y_test, y_pred_binary))
R-এর সাথে LightGBM ইন্টিগ্রেশন
১. লাইব্রেরি ইনস্টলেশন
R-এ LightGBM ব্যবহার করতে হলে প্রথমে এটি ইনস্টল করতে হবে। আপনি install.packages ব্যবহার করে এটি ইনস্টল করতে পারেন।
# install.packages("lightgbm") # যদি CRAN থেকে ইনস্টল করতে চান
# OR
devtools::install_github("microsoft/LightGBM", subdir = "R-package")
২. ডেটাসেট লোড করা
R-এ ডেটাসেট লোড করুন।
data <- read.csv('path_to_your_dataset.csv')
head(data)
৩. ডেটা প্রস্তুতি
ডেটাকে প্রশিক্ষণ এবং পরীক্ষার সেটে বিভক্ত করুন এবং ফিচার ও টার্গেট ভেরিয়েবল আলাদা করুন।
library(caret)
# ডেটাকে প্রশিক্ষণ এবং পরীক্ষা সেটে বিভক্ত করা
set.seed(42)
trainIndex <- createDataPartition(data$target_column, p = .8,
list = FALSE,
times = 1)
dataTrain <- data[trainIndex, ]
dataTest <- data[-trainIndex, ]
# ফিচার এবং টার্গেট ভেরিয়েবল আলাদা করা
X_train <- dataTrain[, -which(names(dataTrain) == "target_column")]
y_train <- dataTrain$target_column
X_test <- dataTest[, -which(names(dataTest) == "target_column")]
y_test <- dataTest$target_column
৪. LightGBM মডেল ট্রেনিং
LightGBM মডেল তৈরি করুন এবং প্রশিক্ষণ দিন।
library(lightgbm)
# LightGBM Dataset তৈরি করা
dtrain <- lgb.Dataset(data = as.matrix(X_train), label = y_train)
dtest <- lgb.Dataset(data = as.matrix(X_test), label = y_test)
# LightGBM এর জন্য প্যারামিটার সেট করা
params <- list(
objective = "binary", # বা "multiclass"
metric = "binary_logloss", # বা "multi_logloss"
boosting = "gbdt",
learning_rate = 0.05,
num_leaves = 31
)
# মডেল প্রশিক্ষণ
model <- lgb.train(params, dtrain, 100, valids = list(test = dtest), early_stopping_rounds = 10)
৫. মডেল মূল্যায়ন
মডেলের কার্যকারিতা মূল্যায়ন করুন।
# পূর্বাভাস করা
y_pred <- predict(model, as.matrix(X_test))
# বাইনারি ক্লাসিফিকেশনের জন্য ফলাফল প্রক্রিয়াকরণ
y_pred_binary <- ifelse(y_pred > 0.5, 1, 0)
# সঠিকতা গণনা করা
library(caret)
confusionMatrix(as.factor(y_pred_binary), as.factor(y_test))
উপসংহার
Python এবং R-এর সাথে LightGBM ইন্টিগ্রেশন অত্যন্ত সহজ এবং কার্যকরী। এই প্রক্রিয়াগুলি আপনাকে একটি শক্তিশালী গ্রেডিয়েন্ট বুস্টিং মডেল তৈরি করতে সহায়তা করবে যা বৃহৎ ডেটাসেটের জন্য উপযুক্ত। আপনার প্রয়োজন অনুযায়ী কোডগুলিকে সামঞ্জস্য করুন এবং আলাদা আলাদা মডেলের কার্যকারিতা মূল্যায়ন করুন।
Read more