একটি Classification প্রজেক্ট তৈরি করা XGBoost ব্যবহার করে

প্র্যাকটিস প্রোজেক্টস - এক্সজিবুস্ট (XGBoost) - Latest Technologies

288

XGBoost ব্যবহার করে একটি Classification প্রজেক্ট তৈরি করতে হলে ধাপে ধাপে কিছু কাজ করতে হবে। নিচে একটি সাধারণ Classification প্রজেক্টের ধাপগুলো বিশদভাবে ব্যাখ্যা করা হলো:

প্রয়োজনীয় লাইব্রেরি ইন্সটলেশন

প্রথমেই Python এর প্রয়োজনীয় লাইব্রেরিগুলো ইন্সটল করা দরকার:

pip install xgboost pandas numpy scikit-learn

ধাপ ১: ডেটাসেট নির্বাচন এবং লোড

প্রথমে একটি ডেটাসেট নির্বাচন করতে হবে। আমরা উদাহরণস্বরূপ স্কাইলার্নের বিল্ট-ইন "Iris" ডেটাসেট ব্যবহার করবো, যেটি একটি বহুল ব্যবহৃত Classification ডেটাসেট।

from sklearn.datasets import load_iris
import pandas as pd

# ডেটাসেট লোড
data = load_iris()
X = pd.DataFrame(data.data, columns=data.feature_names)
y = data.target

ধাপ ২: ডেটা প্রস্তুতি

ডেটাকে Training এবং Testing সেটে ভাগ করতে হবে, সাধারণত ৮০:২০ অনুপাতে।

from sklearn.model_selection import train_test_split

# Training এবং Testing সেটে ভাগ
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

ধাপ ৩: মডেল তৈরি করা

XGBoost লাইব্রেরির XGBClassifier ক্লাস ব্যবহার করে একটি Classification মডেল তৈরি করা হবে।

from xgboost import XGBClassifier

# মডেল তৈরি
model = XGBClassifier(n_estimators=100, learning_rate=0.1, max_depth=3, random_state=42)

ধাপ ৪: মডেল ট্রেইন করা

Training ডেটা দিয়ে মডেল ট্রেইন করা হবে।

# মডেল ট্রেইন করা
model.fit(X_train, y_train)

ধাপ ৫: প্রেডিকশন এবং মডেল মূল্যায়ন

মডেল ট্রেইন করার পর, আমরা Testing ডেটার উপর প্রেডিকশন করবো এবং মডেলের কার্যক্ষমতা মূল্যায়ন করবো।

from sklearn.metrics import accuracy_score, classification_report

# প্রেডিকশন
y_pred = model.predict(X_test)

# মডেল মূল্যায়ন
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)

# বিস্তারিত রিপোর্ট
print(classification_report(y_test, y_pred))

ধাপ ৬: মডেলের Hyperparameter Tuning (ঐচ্ছিক)

Hyperparameter Tuning এর মাধ্যমে মডেলের পারফরম্যান্স উন্নত করা যায়। আমরা GridSearchCV ব্যবহার করে হাইপারপ্যারামিটার টিউন করতে পারি।

from sklearn.model_selection import GridSearchCV

# হাইপারপ্যারামিটার সেট আপ
param_grid = {
    'n_estimators': [50, 100, 150],
    'learning_rate': [0.01, 0.1, 0.2],
    'max_depth': [3, 4, 5]
}

# GridSearchCV দিয়ে মডেল টিউনিং
grid_search = GridSearchCV(estimator=model, param_grid=param_grid, cv=3, scoring='accuracy', n_jobs=-1)
grid_search.fit(X_train, y_train)

# সেরা প্যারামিটার এবং একিউরেসি
print("Best Parameters:", grid_search.best_params_)
print("Best Score:", grid_search.best_score_)

ধাপ ৭: মডেল সেভ এবং লোড (Model Serialization)

প্রোডাকশনে ব্যবহারের জন্য মডেল সেভ করতে হলে joblib বা pickle ব্যবহার করা যেতে পারে।

import joblib

# মডেল সেভ করা
joblib.dump(model, 'xgb_model.pkl')

# মডেল লোড করা
loaded_model = joblib.load('xgb_model.pkl')

ধাপ ৮: মডেল ডিপ্লয়মেন্ট (ঐচ্ছিক)

মডেল ডিপ্লয়মেন্টের জন্য একটি API তৈরি করতে হবে। আমরা Flask ব্যবহার করে একটি সহজ REST API তৈরি করতে পারি।

pip install flask
from flask import Flask, request, jsonify
import joblib
import numpy as np

app = Flask(__name__)

# মডেল লোড করা
model = joblib.load('xgb_model.pkl')

@app.route('/predict', methods=['POST'])
def predict():
    data = request.json
    input_data = np.array(data['input']).reshape(1, -1)
    prediction = model.predict(input_data)
    return jsonify({'prediction': int(prediction[0])})

if __name__ == '__main__':
    app.run(debug=True)

ধাপ ৯: API টেস্টিং

API টেস্ট করার জন্য Postman বা curl ব্যবহার করতে পারেন:

curl -X POST http://127.0.0.1:5000/predict -H "Content-Type: application/json" -d '{"input": [5.1, 3.5, 1.4, 0.2]}'

সারসংক্ষেপ

এটি ছিল XGBoost ব্যবহার করে একটি সাধারণ Classification প্রজেক্টের পূর্ণাঙ্গ ধাপ। আপনি যদি কোন নির্দিষ্ট ধাপে আরও বিস্তারিত জানতে চান বা অন্য কোন Classification প্রজেক্ট নিয়ে কাজ করতে চান, জানাতে পারেন!

Promotion

Are you sure to start over?

Loading...