ভূমিকা
মেশিন লার্নিং বা ডাটা সায়েন্স প্রজেক্টের একটি অত্যন্ত গুরুত্বপূর্ণ ধাপ হলো 'ফিচার ইঞ্জিনিয়ারিং'। সহজ কথায়, আপনার কাছে থাকা ডাটাকে এমনভাবে সাজানো বা নতুন তথ্য যোগ করা যাতে মেশিন লার্নিং মডেল খুব সহজে প্যাটার্ন বুঝতে পারে। আজকের এই ভিডিওতে আমরা দেখব কিভাবে রিয়েল এস্টেট বা বাড়ির দামের ডাটাসেটে নতুন ফিচার তৈরি করতে হয় এবং কেন ডাটার আকার কমানো (Dimensionality Reduction) জরুরি।
১. নতুন ফিচার তৈরি: প্রাইস পার স্কয়ার ফিট (Price Per Square Feet)
ভিডিও রেফারেন্স: [00:00] থেকে [01:44]
আমরা বাড়ির মোট দাম এবং কত স্কয়ার ফিট জায়গা আছে তা জানি। কিন্তু বাড়ির দাম কেমন হবে তা বোঝার জন্য 'প্রতি স্কয়ার ফিট দাম' কত—সেটা জানা খুব জরুরি। এটি মডেলকে বুঝতে সাহায্য করে যে কোন এলাকা বা কোন ধরনের বাড়ির দাম তুলনামূলক বেশি বা কম।
কোড স্নিপেট:
Python
# নতুন কলাম তৈরি: 'price_per_sqft'
df5['price_per_sqft'] = df5['price'] * 100000 / df5['total_sqft']
- ব্যাখ্যা: এখানে আমরা বাড়ির দামকে (যা লাখে আছে, তাই ১ লাখ দিয়ে গুণ করা হয়েছে) মোট স্কয়ার ফিট দিয়ে ভাগ করছি। এতে আমরা নতুন একটি কলাম পাচ্ছি যা প্রতি স্কয়ার ফিটের দাম নির্দেশ করছে। এটি পরবর্তী ধাপে ভুল ডাটা (Outliers) শনাক্ত করতে সাহায্য করবে।
২. ডাইমেনশনালিটি রিডাকশন ও লোকেশন হ্যান্ডলিং
ভিডিও রেফারেন্স: [01:52] থেকে [08:26]
ডাটা সেটে 'লোকেশন' বা এলাকা অনেক থাকতে পারে। যদি খুব বেশি আলাদা আলাদা লোকেশন থাকে (যেমন ১৩০০টি এলাকা), তবে মডেলের পারফরম্যান্স কমে যায়। একে বলা হয় 'কার্স অফ ডাইমেনশনালিটি' (Curse of Dimensionality)।
- সহজ শব্দে: অনেক বেশি কলাম বা ফিচার থাকলে কম্পিউটার বুঝতে পারে না কোনটি আসল গুরুত্বপূর্ণ তথ্য। তাই অপ্রয়োজনীয় বা খুব কম ডাটা থাকা লোকেশনগুলোকে একটি ক্যাটাগরিতে নিয়ে আসতে হয়।
কাজ করার পদ্ধতি: ১. প্রথমে লোকেশনের অতিরিক্ত স্পেস পরিষ্কার করা। ২. যে লোকেশনগুলোতে ডাটা খুব কম (যেমন ১০টির কম), সেগুলোকে একটি কমন নাম 'Other' বা 'অন্যান্য' দিয়ে চিহ্নিত করা।
কোড স্নিপেট:
Python
# যেসব লোকেশনে ১০টির কম ডাটা আছে, তাদের 'other' করে দেওয়া
location_stats = df5.groupby('location')['location'].agg('count')
other_locations = location_stats[location_stats < 10]
df5.location = df5.location.apply(lambda x: 'other' if x in other_locations else x)
- ব্যাখ্যা: আমরা গ্রুপ করে দেখছি কোন লোকেশনে কতগুলো ডাটা আছে। এরপর যে লোকেশনগুলোতে ১০টির কম ডাটা পাওয়া গেছে, তাদের আমরা 'other' হিসেবে ঘোষণা করছি। এতে আমাদের লোকেশনের সংখ্যা অনেক কমে যায়, যা মডেলকে দ্রুত এবং নির্ভুল হতে সাহায্য করে।
বিশ্লেষণ ও আমার মতামত
এই ভিডিওটিতে খুব সুন্দরভাবে দেখানো হয়েছে কিভাবে ডাটা সায়েন্সের প্রজেক্টে বাস্তবসম্মত চিন্তা করতে হয়।
-
কেন এটি গুরুত্বপূর্ণ: আপনি যদি ১০০০টির বেশি আলাদা কলাম (One Hot Encoding এর মাধ্যমে) তৈরি করতেন, তবে মডেলটি অনেক ভারী হয়ে যেত এবং ভুল প্রেডিকশন দিত।
-
বাস্তবতা: বাস্তবে সব লোকেশনে সমান পরিমাণ তথ্য থাকে না। তাই এই 'Other' ক্যাটাগরি তৈরি করা একটি অত্যন্ত কার্যকর টেকনিক।
-
পরামর্শ: নতুনদের জন্য আমার পরামর্শ হলো, কোডিং করার সময় সবসময় ভাববেন—এই ফিচারটি মডেলকে কি নতুন কিছু শেখাচ্ছে? যদি না শেখায়, তবে সেটিকে বাদ দিন বা গ্রুপ করে ছোট করে ফেলুন।
আপনার জন্য টিপস: আপনি যদি পাইথন ব্যবহার করেন, তবে groupby এবং apply ফাংশনগুলো খুব ভালো করে আয়ত্ত করুন। এগুলো ডাটা ক্লিনিংয়ের সময় জাদুর মতো কাজ করে।
ভিডিও লিংক: Machine Learning & Data Science Project - 3 : Feature Engineering
[
Machine Learning & Data Science Project - 3 : Feature Engineering (Real Estate Price Prediction)
codebasics · 206K views
](http://www.youtube.com/watch?v=gMoJIH0prL4)

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