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

IQR ব্যবহার করে ডেটা থেকে অসংলগ্ন বা আউটলায়ার দূর করা

ভূমিকা

ডেটা সায়েন্স বা ডেটা অ্যানালিসিসে কাজ করার সময় আমরা প্রায়ই এমন কিছু ডেটা দেখি যা অন্য সব ডেটার তুলনায় অদ্ভুত বা অস্বাভাবিক। এই অস্বাভাবিক ডেটাগুলোকে বলা হয় 'আউটলায়ার' (Outlier)। যেমন ধরুন, ১০ জন মানুষের উচ্চতা পরিমাপ করছেন, হঠাৎ দেখলেন একজনের উচ্চতা ৪০ ফুট! এটা অসম্ভব, তাই না? এই ধরনের ভুল বা অস্বাভাবিক ডেটা মডেলে বড় সমস্যা তৈরি করতে পারে। আইকিউআর (IQR) পদ্ধতি ব্যবহার করে খুব সহজেই এই ধরণের আউটলায়ারগুলো খুঁজে বের করে বাদ দেওয়া যায়।


আউটলায়ার (Outlier) কী এবং কেন এটি সমস্যার?

ভিডিও লিঙ্ক: https://www.youtube.com/watch?v=A3gClkblXK8

সহজ কথায়, আপনার ডেটাসেটের বাকি সব ডেটা যে সীমার মধ্যে থাকে, তার চেয়ে অনেক বেশি বা অনেক কম ভ্যালু থাকলে তাকে আউটলায়ার বলে।

  • উদাহরণ: মানুষের উচ্চতার ডেটাসেটে ১.২ ফুট বা ৪০ ফুট উচ্চতা অসম্ভব। এই ডেটাগুলো আমাদের গড় বা স্ট্যাটিস্টিক্যাল হিসাবকে ভুল করে দেয়। তাই এনালাইসিস করার আগে এগুলোকে বাদ দেওয়া জরুরি।

পার্সেন্টাইল (Percentile) ও IQR বোঝার সহজ উপায়

আউটলায়ার বের করার জন্য আমাদের কিছু বেসিক কনসেপ্ট জানতে হবে:

  • পার্সেন্টাইল (Percentile): ধরুন আপনার কাছে ১০০টি ডেটা আছে। ২৫তম পার্সেন্টাইল (Q1) মানে হলো, এমন একটি সংখ্যা যার চেয়ে ছোট মোট ডেটার ২৫% সংখ্যা আছে। তেমনি ৭৫তম পার্সেন্টাইল (Q3) মানে হলো, এমন একটি সংখ্যা যার চেয়ে ছোট ডেটার ৭৫% সংখ্যা আছে।

  • IQR (Interquartile Range): এটি হলো Q3 - Q1। অর্থাৎ ডেটার মাঝখানের ৫০% অংশ কোন সীমার মধ্যে আছে, তা এই IQR থেকে বোঝা যায়।

কিভাবে সীমা ঠিক করবেন?

  • লোয়ার লিমিট (Lower Limit): Q1 - (1.5 * IQR)

  • আপার লিমিট (Upper Limit): Q3 + (1.5 * IQR)

এই লিমিটের বাইরের যেকোনো ভ্যালুকেই আমরা আউটলায়ার হিসেবে ধরে নিতে পারি।


পাইথন কোডিং ও বাস্তব প্রয়োগ

নিচে পাইথন কোড ব্যবহার করে কীভাবে আউটলায়ার দূর করা হয় তা দেওয়া হলো:

Python

import pandas as pd

# ডেটা লোড করা
df = pd.read_csv("heights.csv")

# Q1 এবং Q3 বের করা
Q1 = df['height'].quantile(0.25)
Q3 = df['height'].quantile(0.75)

# IQR বের করা
IQR = Q3 - Q1

# লোয়ার ও আপার লিমিট সেট করা
lower_limit = Q1 - 1.5 * IQR
upper_limit = Q3 + 1.5 * IQR

# আউটলায়ার ফিল্টার করে নতুন ডেটাসেট তৈরি
df_no_outlier = df[(df['height'] > lower_limit) & (df['height'] < upper_limit)] 

কোড ব্যাখ্যা: ১. প্রথমে quantile() ফাংশন ব্যবহার করে Q1 এবং Q3 বের করা হয়েছে। ২. তারপর IQR এর সূত্র (Q3 - Q1) প্রয়োগ করা হয়েছে। ৩. শেষে কন্ডিশন দিয়ে আমরা শুধু সেই ডেটাগুলো রেখেছি যা লোয়ার এবং আপার লিমিটের মধ্যে আছে। এতে করে অস্বাভাবিক ভ্যালুগুলো স্বয়ংক্রিয়ভাবে বাদ পড়ে গেছে।


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

আমার বিশ্লেষণ: আইকিউআর পদ্ধতিটি ডেটা ক্লিনিং বা 'ফিচার ইঞ্জিনিয়ারিং' (Feature Engineering)-এর জন্য দারুণ একটি পদ্ধতি। এটি খুব দ্রুত কাজ করে এবং গাণিতিকভাবে সঠিক ফলাফল দেয়। তবে মনে রাখবেন, সব ক্ষেত্রেই যে ১.৫ মাল্টিপ্লায়ার কাজ করবে তা কিন্তু নয়। কখনো কখনো আপনার ডেটার ধরনের উপর ভিত্তি করে এই ১.৫ সংখ্যাটিকে পরিবর্তন করতে হতে পারে।

সাজেশন:

  • বাস্তবতা: যদি ডেটা অনেক বেশি থাকে, তবে শুধু এই পদ্ধতিই যথেষ্ট নয়। অনেক সময় ডেটা ভিজুয়ালাইজেশন (যেমন: Box Plot বা Histogram) ব্যবহার করে আগে চেক করা উচিত যে আউটলায়ারগুলো সত্যিই ভুল নাকি বাস্তব কিন্তু বিরল ডেটা।

  • বিকল্প: Z-score পদ্ধতিও আউটলায়ার খোঁজার জন্য খুব জনপ্রিয়। যদি আপনার ডেটা 'নরমাল ডিস্ট্রিবিউশন' (Normal Distribution) বা ঘণ্টার মতো আকৃতির হয়, তবে Z-score ব্যবহার করা বেশি যুক্তিযুক্ত।

এই ভিডিওটি আপনাকে ডেটা সায়েন্সের একটি মৌলিক কিন্তু অত্যন্ত গুরুত্বপূর্ণ ধাপ শেখালো। নিয়মিত অনুশীলনের জন্য ভিডিওতে দেওয়া এক্সারসাইজটি সমাধান করতে পারেন।

[

Outlier detection and removal using IQR | Feature engineering tutorial python # 4

codebasics · 118K views

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

মন্তব্যসমূহ

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

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

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

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

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

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

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