CatBoost মডেলকে ডিপ্লয় এবং API-তে ইন্টিগ্রেট করা একটি গুরুত্বপূর্ণ ধাপ, যা আপনাকে আপনার মডেলটিকে প্রোডাকশন এনভায়রনমেন্টে ব্যবহার করতে সক্ষম করে। এখানে আমরা CatBoost মডেল তৈরি করব এবং Flask ব্যবহার করে একটি RESTful API তৈরি করব যা এই মডেলকে কল করতে পারবে।
import pandas as pd
from catboost import CatBoostClassifier
# উদাহরণ ডেটা তৈরি
data = {
'feature1': [1, 2, 3, 4, 5],
'feature2': ['A', 'B', 'A', 'B', 'A'],
'label': [0, 1, 0, 1, 0] # 0 = Negative, 1 = Positive
}
df = pd.DataFrame(data)
df['feature2'] = df['feature2'].map({'A': 0, 'B': 1})
# ফিচার এবং লেবেল নির্ধারণ
X = df[['feature1', 'feature2']]
y = df['label']
# CatBoostClassifier তৈরি করা
model = CatBoostClassifier(iterations=100, depth=3, learning_rate=0.1, loss_function='Logloss', verbose=0)
# মডেল প্রশিক্ষণ
model.fit(X, y)
# মডেল সেভ করা
model.save_model('catboost_model.cbm')
এখন Flask ব্যবহার করে একটি API তৈরি করা হবে।
from flask import Flask, request, jsonify
from catboost import CatBoostClassifier
import pandas as pd
app = Flask(__name__)
# মডেল লোড করা
model = CatBoostClassifier()
model.load_model('catboost_model.cbm')
@app.route('/predict', methods=['POST'])
def predict():
# JSON ডেটা গ্রহণ করা
data = request.get_json(force=True)
df = pd.DataFrame(data)
# পূর্বাভাস করা
predictions = model.predict(df)
return jsonify(predictions.tolist())
if __name__ == '__main__':
app.run(debug=True)
API তৈরির পর, আপনি এই API-তে HTTP POST রিকোয়েস্ট পাঠিয়ে পূর্বাভাস নিতে পারেন। নিচে requests
লাইব্রেরি ব্যবহার করে API-কে কল করার একটি উদাহরণ দেওয়া হলো:
import requests
# API URL
url = 'http://127.0.0.1:5000/predict'
# নতুন ইনপুট ডেটা
data = {
'feature1': [3],
'feature2': [0] # 0 মানে 'A'
}
# POST রিকোয়েস্ট পাঠানো
response = requests.post(url, json=data)
print("Predicted class:", response.json())
এই প্রকল্পের মাধ্যমে, আপনি একটি CatBoost মডেল তৈরি করেছেন এবং সেটিকে Flask API এর মাধ্যমে ডিপ্লয় করেছেন। আপনি JSON ডেটা পাঠিয়ে API-তে পূর্বাভাস নিতে সক্ষম হয়েছেন। এই প্রক্রিয়াটি আপনার মডেলকে ব্যবহারযোগ্য এবং প্রবাহিত করতে সহায়ক।
আপনার প্রয়োজন অনুযায়ী API উন্নত করা, যেমন নিরাপত্তা, ব্যবহারকারীর অথেন্টিকেশন এবং ডাটাবেস সংযোগ, এই প্রকল্পের পরবর্তী স্তর হতে পারে।
আরও দেখুন...