সরাসরি প্রধান সামগ্রীতে চলে যান

রিয়েল এস্টেট প্রাইস প্রেডিকশন: ফিচার ইঞ্জিনিয়ারিং ও ডাইমেনশনালিটি রিডাকশন

পরিচিতি

মেশিন লার্নিং প্রজেক্টে ডেটা ক্লিনিংয়ের পরের ধাপ হলো ফিচার ইঞ্জিনিয়ারিং (Feature Engineering)। এর মাধ্যমে আমরা আমাদের হাতে থাকা ডেটাকে আরও কার্যকর করে তুলি যাতে মেশিন লার্নিং মডেল ভালো ফলাফল দিতে পারে। এই ভিডিওতে আমরা রিয়েল এস্টেট বা আবাসন খাতের ডেটা নিয়ে কাজ করেছি, যেখানে নতুন ফিচার তৈরি করা এবং অপ্রয়োজনীয় ডেটার সংখ্যা কমানোর (Dimensionality Reduction) কৌশল দেখানো হয়েছে।


১. নতুন ফিচার তৈরি: প্রাইস পার স্কয়ার ফিট (Price per Square Feet)

ভিডিও রেফারেন্স: [00:00] থেকে [01:44]

রিয়েল এস্টেট মার্কেটে একটি বাড়ির দাম বোঝার জন্য 'প্রতি স্কয়ার ফিট দাম' খুবই গুরুত্বপূর্ণ। আমরা এখানে Price এবং Total Square Feet কলাম দুটি ব্যবহার করে একটি নতুন কলাম তৈরি করেছি।

কোড স্নিপেট:

Python

df5['price_per_sqft'] = df5['price'] * 100000 / df5['total_sqft'] 
  • ব্যাখ্যা: এখানে আমরা দামকে (লাখ রুপিতে থাকা) ১ লাখ দিয়ে গুণ করে টাকায় রূপান্তর করেছি এবং তাকে মোট এরিয়া (স্কয়ার ফিট) দিয়ে ভাগ করেছি। এর ফলে আমরা প্রতি স্কয়ার ফিটের দাম পেয়েছি।

সহজ ভাষায়: ধরুন, একটি বাড়ির দাম ৫০ লাখ টাকা এবং এরিয়া ১০০০ স্কয়ার ফিট। তাহলে প্রতি স্কয়ার ফিটের দাম ৫০,০০০ টাকা। এটি মেশিনকে বুঝতে সাহায্য করবে যে, বাড়িটির সাইজ অনুযায়ী দাম ঠিক আছে কি না।


২. ডাইমেনশনালিটি রিডাকশন ও লোকেশন হ্যান্ডলিং

ভিডিও রেফারেন্স: [01:52] থেকে [08:20]

আমাদের ডেটাতে ১৩০০টিরও বেশি লোকেশন আছে। যদি আমরা এই প্রতিটি লোকেশনকে আলাদা কলাম হিসেবে যোগ করি (যাকে বলা হয় One Hot Encoding), তবে আমাদের ডেটাফ্রেমে ১৩০০টি কলাম তৈরি হয়ে যাবে। একে বলা হয় 'ডাইমেনশনালিটি কার্স' (Curse of Dimensionality)—অর্থাৎ কলামের সংখ্যা এত বেশি বেড়ে যাওয়া যে মডেলের কাজ করা কঠিন হয়ে পড়ে।

সহজ ভাষায়: ধরুন, আপনার কাছে ১০০০টি ভিন্ন রঙের বক্স আছে, আপনি যদি প্রতিটি বক্সকে আলাদাভাবে গুনতে যান, তবে হিসাব করতে অনেক সময় লাগবে। এর চেয়ে যদি কম ব্যবহার হওয়া বক্সগুলোকে একটি 'অন্যান্য' বা 'Others' গ্রুপে ফেলে দেন, তবে হিসাব সহজ হবে।

কিভাবে সমাধান করা হয়েছে: ১. আমরা প্রথমে প্রতিটি লোকেশনে কতগুলো ডেটা পয়েন্ট আছে তা চেক করেছি। ২. যে লোকেশনগুলোতে ১০টির কম ডেটা পয়েন্ট আছে, সেগুলোকে আমরা একটি নতুন ক্যাটাগরি 'Other'-এর মধ্যে ঢুকিয়ে দিয়েছি।

কোড স্নিপেট:

Python

location_stats = df5.groupby('location')['location'].agg('count')
df5.location = df5.location.apply(lambda x: 'other' if x in location_stats[location_stats < 10] else x) 
  • ব্যাখ্যা: এখানে groupby দিয়ে প্রতিটি লোকেশন কয়বার এসেছে তার সংখ্যা বের করা হয়েছে। এরপর applylambda ফাংশন ব্যবহার করে ১০টির কম ডেটা থাকা লোকেশনগুলোকে 'other' নামে পরিবর্তন করা হয়েছে। এর ফলে কলাম সংখ্যা ১৩০০ থেকে কমে ২৪২-এ নেমে এসেছে।

বিশ্লেষণ ও পরামর্শ

ক্রিয়েটরের লক্ষ্য: কন্টেন্ট ক্রিয়েটর এখানে মূলত দেখিয়েছেন কিভাবে ডেটা সেটকে ছোট এবং সহজ করে তোলা যায়। বেশি কলাম থাকলে মডেল স্লো হয়ে যায় এবং অনেক ক্ষেত্রে ভুল ফলাফল দিতে পারে। এই টেকনিকগুলো বড় প্রজেক্টে ডেটা প্রসেসিং দ্রুত করতে দারুণ কার্যকর।

বাস্তবতা ও পরামর্শ:

  • অ্যাপ্রোচ: ১০টির কম ডেটা পয়েন্ট থাকলে 'Other' করা একটি ভালো নিয়ম, তবে এটি প্রজেক্টের ওপর নির্ভর করে। অনেক সময় গুরুত্বপূর্ণ লোকেশন থাকলেও ডেটা কম থাকতে পারে, সেক্ষেত্রে সেগুলোকে ফিল্টার করার সময় সতর্ক থাকা উচিত।

  • বিকল্প: আপনি যদি আরও উন্নত কিছু করতে চান, তবে লোকেশনের সাথে বাড়ির দামের সম্পর্ক খুঁজতে 'Mean Encoding' বা 'Target Encoding' পদ্ধতিগুলোও দেখতে পারেন।

  • পরবর্তী ধাপ: ডেটা ক্লিনিং এবং ফিচার ইঞ্জিনিয়ারিংয়ের পর আসল কাজ হলো আউটলায়ার (অস্বাভাবিক ডেটা) খুঁজে বের করে তা মুছে ফেলা, যা পরবর্তী ভিডিওতে আলোচনা করা হবে।

এটি একটি চমৎকার প্র্যাকটিক্যাল উদাহরণ যা একজন বিগিনারকে ডেটা সায়েন্সের প্রসেস বুঝতে সাহায্য করবে।

[

Machine Learning & Data Science Project - 3 : Feature Engineering (Real Estate Price Prediction)

codebasics · 206K views

](http://www.youtube.com/watch?v=gMoJIH0prL4)

মন্তব্যসমূহ

এই ব্লগটি থেকে জনপ্রিয় পোস্টগুলি

সিজ্জিন (Sijjin) vs ইল্লিয়িন (Illiyin) পার্থক্য Difference

Sijjin (سِجِّين) এবং Illiyin (عِلِّيِّين) —এ দুটি শব্দ কুরআনে এসেছে এবং দুটোই মানুষের আমলনামা সংরক্ষণ সম্পর্কিত স্থানকে নির্দেশ করে। ১. সিজ্জিন (Sijjin) সিজ্জিন হলো পাপীদের (কাফের, মুনাফিক ও দুরাচারীদের) আমলনামা সংরক্ষণের স্থান। এটি সাত তলদেশের নীচে এক কারাগার বা অন্ধকার জগতে অবস্থিত বলে উল্লেখ রয়েছে। সূরা আল-মুতাফফিফীন (৮৩:৭-৯) তে বলা হয়েছে: "كَلَّا إِنَّ كِتَابَ الْفُجَّارِ لَفِي سِجِّينٍ ۝ وَمَا أَدْرَاكَ مَا سِجِّينٌ ۝ كِتَابٌ مَرْقُومٌ" অর্থ: "না, পাপীদের আমলনামা সিজ্জিনে সংরক্ষিত। তুমি কি জানো, সিজ্জিন কী? এটি এক লিখিত দলিল।" সিজ্জিনকে একটি কারাগার, সংকীর্ণ স্থান, বা নিচের স্তরে অবস্থিত এক অন্ধকার দুনিয়া হিসেবে ব্যাখ্যা করা হয়। ২. ইল্লিয়িন (Illiyin) ইল্লিয়িন হলো সৎকর্মশীলদের (মুমিন ও নেককারদের) আমলনামা সংরক্ষণের স্থান । এটি সপ্তম আসমানের ওপরে সংরক্ষিত এক সম্মানিত স্থান। সূরা আল-মুতাফফিফীন (৮৩:১৮-২১) তে বলা হয়েছে: "كَلَّا إِنَّ كِتَابَ الْأَبْرَارِ لَفِي عِلِّيِّينَ ۝ وَمَا أَدْرَاكَ مَا عِلِّيُّونَ ۝ كِتَابٌ مَرْقُومٌ ۝ يَش...

তারাবিহ সমগ্র - প্রথম আলো

রামাদান ২০২৪ উপলক্ষে প্রথম আলোর নিয়মিত আয়োজন - খতমে তারাবিহ'র সূরা গুলো নিয়ে সংক্ষিপ্ত আলোচনা'র লিংক  নিচে দেওয়া হলো।  লিংকে ক্লিক করলেই আপনাকে আলোচনা তে নিয়ে যাবে। তারাবিহ: ১ | একটি খুন ও গাভি নিয়ে বনি ইসরাইলের বাড়াবাড়ি তারাবিহ: ২ | নারীর মর্যাদা ও অধিকার এবং অলৌকিক তিন ঘটনা তারাবিহ: ৩ | যে ১৪ নারীকে বিয়ে করা হারাম তারাবিতে: ১২ | মহানবী (সা.)–এর আকাশভ্রমণ এবং আসহাবে কাহাফের কাহিনি

রেডমি নোট ৯ এর বিস্তারিত | Redmi Note 9 in Bangla

৩০ এপ্রিল, ২০২০ এ শাওমির ঘোষনা আসে এই ফোনটি নিয়ে। কিন্তু ফোনটি মার্কেটে আসে মে মাসের শেষের দিকে৷ করোনার কারনে ফোনটি বাংলাদেশে আসতে আরো সময় নেয়। বর্তমানে বাংলাদেশে আন অফিশিয়াল ভাবে ফোনটি পাওয়া যাচ্ছে৷ বাংলাদেশে অফিশিয়াল ভাবে এখনো ফোনটি আসার তথ্য নেয়৷ চলুন ফোনটি নিয়ে বিস্তারিত আলোচনা করা যাক। শাওমি নোট সিরিজের ফোন বের করে এদের রেডমি নামে সাব ব্যান্ড৷ এদের কাজ হল এই নোট সিরিজ নিয়ে কাজ করা৷ প্রতিবছর নোট সিরিজের ১/২ টা ফোন বাজারে আসে। সাথে সেই ফোন গুলার বিভিন্ন ভার্সন (যেমন - র‍্যাম ও রমের ভিত্তিতে) বাজারে আসে। এই বছরও তারা রেডমি সিরিজের নোট ৯ বাজারে আনে। এই বছর হয়তো এই সিরিজের আরো ফোন বাজারে আসবে। ডিস্পলেঃ ফোনটির ডিসপ্লে সাইজ ৬.৫৩ ইঞ্চি। এতে আইপিএস এলসিডি ডিসপ্লে ব্যবহার করা হয়েছে। এই ফোনের ডিসপ্লে প্রটেকশন হিসেবে আছে গরিলা গ্লাস ফাইভ। স্ক্রিন আর ফোনের বডির অনুপাত প্রায় ৮৩.৫%। এই ফোনের ডিসপ্লে ফুলএইচডি মানে ১০৮০পি। এই ডিস্পলের দৈর্ঘ্য ১৯.৫ একক এবং প্রস্থ হল ৯ একক। এত বড় ফোনের কারনে এই ফোনের পিপি আই ডেনসিটি ৩৯৫। যা একটু কম। প্লাটফর্মঃ এই ফোনের অপারেটিং সিস্টেম এন্ড্রয়েড ১০ এবং এর...