ভূমিকা
আমরা আমাদের মেশিন লার্নিং মডেল তৈরি এবং সেভ করার পর, এখন সময় হয়েছে এমন একটি মাধ্যম তৈরির যার মাধ্যমে ইউজাররা তাদের তথ্য (যেমন- কতটুকু জায়গা, কয়টি রুম ইত্যাদি) দিয়ে বাড়ির দাম কত হতে পারে তা জানতে পারবে। এই ভিডিওতে আমরা পাইথনের Flask (ফ্লাস্ক) ব্যবহার করে একটি সার্ভার বা ব্যাকএন্ড তৈরি করব। সহজ কথায়, এই সার্ভারটি ইউজারের কাছ থেকে তথ্য নেবে, আমাদের তৈরি করা মডেল ব্যবহার করে দাম হিসেব করবে এবং আবার ইউজারকে সেই দামটি জানিয়ে দেবে।
১. ফ্লাস্ক (Flask) সার্ভার সেটআপ
রেফারেন্স: [00:00] থেকে [04:00]
এখানে আমরা আমাদের প্রজেক্টের জন্য একটি পাইথন ফাইল (server.py) তৈরি করছি। ফ্লাস্ক হলো পাইথনের এমন একটি ছোট এবং শক্তিশালী ফ্রেমওয়ার্ক, যা দিয়ে খুব সহজেই ওয়েবসাইটের জন্য সার্ভার তৈরি করা যায়।
- কী করছি: প্রথমে
server.pyফাইলে ফ্লাস্ক ইম্পোর্ট করে একটি অ্যাপ তৈরি করছি।app.runদিয়ে আমাদের সার্ভারটি লোকাল মেশিনে চালু করা হয়। এটি একটি HTTP রেসপন্স তৈরি করে যা ব্রাউজারে দেখা যায়।
২. ইউটিলিটি (Utility) ফাইল তৈরি
রেফারেন্স: [06:05] থেকে [11:35]
কোড সাজানো রাখার জন্য আমরা util.py নামে আলাদা একটি ফাইল তৈরি করছি। এর কাজ হলো আমাদের সেভ করা মডেল (Model) এবং ডেটা ফাইল (columns.json) লোড করা এবং ইউজারের প্রয়োজনীয় তথ্যগুলো বের করে আনা।
-
সহজ ব্যাখ্যা:
-
Artifacts: এগুলো হলো আমাদের সেভ করা ফাইল—একটি মেশিন লার্নিং মডেল এবং একটি জেসন (JSON) ফাইল যাতে আমাদের বাড়ির লোকেশন বা এলাকাগুলোর নাম আছে।
-
Global Variable: এটি এমন একটি ভেরিয়েবল বা পাত্র, যার মান পুরো প্রোগ্রাম জুড়ে সব জায়গায় ব্যবহার করা যায়।
-
কোড স্নিপেট:
Python
# util.py এ লোকেশন লোড করার অংশ
def load_saved_artifacts():
global __data_columns
global __model
# JSON ফাইল পড়া
with open("./artifacts/columns.json", "r") as f:
__data_columns = json.load(f)['data_columns']
# সেভ করা মডেল লোড করা
with open("./artifacts/banglore_home_prices_model.pickle", "rb") as f:
__model = pickle.load(f)
- ব্যাখ্যা: এই কোডটি আমাদের ফাইলগুলো মেমোরিতে লোড করে নিচ্ছে যাতে মডেল দ্রুত কাজ করতে পারে।
৩. দাম প্রেডিকশন এবং টেস্টিং
রেফারেন্স: [11:35] থেকে [21:13]
এখন আমরা মূল ফাংশন get_estimated_price লিখব, যা আমাদের মডেল ব্যবহার করে দাম বলবে। এরপর পোস্টম্যান (Postman) নামক একটি টুল দিয়ে আমরা চেক করে দেখব আমাদের সার্ভার ঠিকমতো কাজ করছে কি না।
-
সহজ ব্যাখ্যা:
-
Postman: এটি এমন একটি সফটওয়্যার যা দিয়ে সার্ভারে রিকোয়েস্ট পাঠিয়ে দেখা যায় সার্ভার ঠিকমতো উত্তর দিচ্ছে কি না।
-
Dummy Encoding: আমাদের মডেলটি সংখ্যা বোঝে, তাই এলাকাগুলোকে '১' এবং '০' দিয়ে প্রকাশ করা হয়েছে।
-
কোড স্নিপেট:
Python
# সার্ভারের রাউট তৈরি
@app.route('/predict_home_price', methods=['POST'])
def predict_home_price():
total_sqft = float(request.form['total_sqft'])
location = request.form['location']
bhk = int(request.form['bhk'])
bath = int(request.form['bath'])
# দাম প্রেডিক্ট করা
response = jsonify({'estimated_price': util.get_estimated_price(location, total_sqft, bhk, bath)})
return response
- ব্যাখ্যা: এটি ইউজারের কাছ থেকে জায়গা, রুমের সংখ্যা ইত্যাদি ইনপুট হিসেবে নেয় এবং আমাদের তৈরি করা মডেল থেকে দাম বের করে পাঠিয়ে দেয়।
বিশ্লেষণ এবং টিপস
মূল লক্ষ্য: ভিডিওটির মূল লক্ষ্য ছিল একটি মেশিন লার্নিং প্রজেক্টকে শুধুমাত্র জপিটার নোটবুক থেকে বের করে একটি বাস্তব অ্যাপ্লিকেশন হিসেবে উপস্থাপন করা। ডেভেলপার খুব সুন্দরভাবে দেখিয়েছেন কীভাবে ব্যাকএন্ড এবং ফ্রন্টএন্ডের মধ্যে যোগসূত্র তৈরি করতে হয়।
বাস্তবতা ও পরামর্শ: ১. নিরাপত্তা: যখন আপনি এটি প্রোডাকশনে বা আসল সার্ভারে চালাবেন, তখন নিরাপত্তার জন্য Flask এর বদলে FastAPI ব্যবহার করা আরও ভালো হতে পারে, কারণ এটি অনেক আধুনিক এবং দ্রুত। ২. ত্রুটি হ্যান্ডলিং: ইউজারের দেওয়া ভুল ডেটার জন্য (যেমন কেউ ভুল লোকেশন লিখলে) এখানে আরও ভালো 'Error Handling' যোগ করা যেতে পারে। ৩. ভবিষ্যৎ সম্ভাবনা: এই সার্ভারটিকে এখন আপনি কোনো একটি ফ্রন্টএন্ড (যেমন- HTML/JavaScript বা React) এর সাথে যুক্ত করলেই একটি পূর্ণাঙ্গ ওয়েবসাইট তৈরি হয়ে যাবে।
রেফারেন্স লিঙ্ক: Machine Learning & Data Science Project - 6 : Python Flask Server
[
Machine Learning & Data Science Project - 6 : Python Flask Server (Real Estate Price Prediction)
codebasics · 211K views
](http://www.youtube.com/watch?v=Q5JyawS8f5Q)

মন্তব্যসমূহ
একটি মন্তব্য পোস্ট করুন
আপনার সমস্যাটি কমেন্ট করে আমাদের জানান :-d