Training এবং Validation Data তৈরি করা

XGBoost এর বেসিক ধারণা - এক্সজিবুস্ট (XGBoost) - Latest Technologies

319

মেশিন লার্নিং মডেল ট্রেনিংয়ের ক্ষেত্রে Training এবং Validation Data তৈরি করা অত্যন্ত গুরুত্বপূর্ণ। Training Data মডেল শিখতে এবং তার প্যারামিটারগুলো অপ্টিমাইজ করতে ব্যবহৃত হয়, আর Validation Data মডেলের কার্যকারিতা মূল্যায়ন করতে এবং হাইপারপ্যারামিটার টিউনিং করতে ব্যবহৃত হয়। ZeroMQ এর XGBoost লাইব্রেরি ব্যবহার করে এই ডেটাসেট তৈরি করা যায়। নিচে XGBoost-এ Training এবং Validation Data তৈরি করার ধাপগুলো আলোচনা করা হলো:

Training এবং Validation Data তৈরি করার ধাপসমূহ:

১. ডেটাসেট লোড করা:

  • প্রথমে আপনার ডেটাসেট লোড করতে হবে। এটি সাধারণত CSV ফাইল, প্যান্ডাস ডেটাফ্রেম, বা Numpy অ্যারে হতে পারে।

২. ফিচার এবং লেবেল আলাদা করা:

  • ডেটাসেট থেকে ফিচার এবং লেবেল (টার্গেট ভেরিয়েবল) আলাদা করতে হবে।

৩. Training এবং Validation Data ভাগ করা:

  • ট্রেনিং এবং ভ্যালিডেশন ডেটাসেট সাধারণত ৭০:৩০, ৮০:২০ বা ৯০:১০ অনুপাতে ভাগ করা হয়।

৪. DMatrix তৈরি করা:

  • XGBoost এর মডেল ট্রেনিং এবং মূল্যায়নের জন্য ডেটাসেটকে DMatrix নামে একটি ডেটা স্ট্রাকচারে রূপান্তর করতে হবে, যা দ্রুত ট্রেনিং এবং প্রসেসিং নিশ্চিত করে।

Python কোড উদাহরণ:

import xgboost as xgb
import pandas as pd
from sklearn.model_selection import train_test_split

# উদাহরণ ডেটাসেট লোড করা (CSV ফাইল থেকে)
data = pd.read_csv('dataset.csv')

# ফিচার এবং লেবেল আলাদা করা
X = data.drop('target', axis=1)  # ফিচারগুলো
y = data['target']  # লেবেল

# Training এবং Validation Data ভাগ করা (80% ট্রেনিং এবং 20% ভ্যালিডেশন)
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=42)

# DMatrix তৈরি করা (XGBoost মডেল ট্রেনিংয়ের জন্য)
dtrain = xgb.DMatrix(X_train, label=y_train)
dval = xgb.DMatrix(X_val, label=y_val)

কোডের ব্যাখ্যা:

ডেটাসেট লোড করা:

  • এখানে pandas লাইব্রেরি ব্যবহার করে একটি CSV ফাইল থেকে ডেটা লোড করা হয়েছে।
  • data ভেরিয়েবলে লোড করা ডেটাসেট রয়েছে।

ফিচার এবং লেবেল আলাদা করা:

  • X ভেরিয়েবলে ডেটাসেটের সব ফিচার এবং y ভেরিয়েবলে টার্গেট ভেরিয়েবল বা লেবেল রাখা হয়েছে।

Training এবং Validation Data ভাগ করা:

  • train_test_split ফাংশনের মাধ্যমে ডেটাসেটকে ৮০% Training Data এবং ২০% Validation Data তে ভাগ করা হয়েছে।
  • random_state=42 ব্যবহার করে র্যান্ডম সিড সেট করা হয়েছে, যাতে প্রতিবার একই ভাগ তৈরি হয়।

DMatrix তৈরি করা:

  • XGBoost-এর DMatrix স্ট্রাকচারে Training এবং Validation Data রূপান্তর করা হয়েছে। এটি ডেটাকে আরও দ্রুত প্রসেস করতে এবং মেমোরি অপ্টিমাইজ করতে সাহায্য করে।

DMatrix কেন ব্যবহার করা হয়:

  • দ্রুত ট্রেনিং এবং প্রসেসিং: DMatrix একটি অপ্টিমাইজড ডেটা ফর্ম্যাট, যা XGBoost ট্রেনিং এবং প্রসেসিংয়ে দ্রুততা বাড়ায়।
  • মেমোরি ব্যবহারের কার্যকারিতা: এটি মেমোরি ব্যবহারের ক্ষেত্রে কার্যকর, ফলে বড় ডেটাসেট নিয়ে কাজ করাও সহজ হয়।
  • মেটাডেটা সমর্থন: DMatrix ডেটার সাথে মেটাডেটা (যেমন লেবেল, ওয়েট) সংযুক্ত করতে পারে, যা ট্রেনিং এবং মূল্যায়নের সময় দরকার হয়।

Training এবং Validation Data ব্যবহার করে মডেল ট্রেনিং:

Training এবং Validation Data তৈরি করার পর, আপনি এই ডেটা ব্যবহার করে XGBoost মডেল ট্রেন করতে পারবেন। নিচে একটি উদাহরণ দেখানো হলো:

# মডেল প্যারামিটার নির্ধারণ
param = {
    'max_depth': 3,
    'eta': 0.1,
    'objective': 'binary:logistic'
}
num_round = 50

# মডেল ট্রেনিং এবং ভ্যালিডেশন সেট ব্যবহার করে মূল্যায়ন
watchlist = [(dtrain, 'train'), (dval, 'eval')]
bst = xgb.train(param, dtrain, num_round, watchlist, early_stopping_rounds=10)

কোডের ব্যাখ্যা:

মডেল প্যারামিটার নির্ধারণ:

  • param ডিকশনারিতে মডেলের বিভিন্ন প্যারামিটার সেট করা হয়েছে, যেমন max_depth, eta (learning rate), এবং objective

watchlist তৈরি করা:

  • watchlist হলো একটি তালিকা, যেখানে Training এবং Validation Data যুক্ত করা হয়েছে। এটি ট্রেনিংয়ের সময় মডেলের কার্যকারিতা ট্র্যাক করতে সাহায্য করে।

Early Stopping:

  • early_stopping_rounds প্যারামিটারটি মডেল ট্রেনিংয়ের সময় ব্যবহার করা হয়েছে, যা যদি নির্দিষ্ট সংখ্যক ইটারেশনের পরে উন্নতি না ঘটে, তাহলে ট্রেনিং বন্ধ করে দেয়।

সংক্ষেপে:

Training এবং Validation Data তৈরি করা মডেল ট্রেনিংয়ের একটি গুরুত্বপূর্ণ ধাপ, যা মডেলের কার্যকারিতা এবং জেনারেলাইজেশন নিশ্চিত করতে সহায়ক। XGBoost-এর সাথে, ডেটাসেটকে train_test_split ফাংশন ব্যবহার করে ভাগ করা হয় এবং DMatrix এ রূপান্তরিত করে ট্রেনিং কার্যকর করা হয়। XGBoost এর এই সুবিধাগুলি মডেল ট্রেনিংকে আরও দ্রুত এবং কার্যকরী করে তোলে, বিশেষ করে বড় ডেটাসেট এবং জটিল মডেল নিয়ে কাজ করার সময়।

Promotion

Are you sure to start over?

Loading...