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

IQR ব্যবহার করে আউটলায়ার শনাক্তকরণ ও দূরীকরণ

ভূমিকা

ডেটা সায়েন্স বা ডেটা অ্যানালাইসিসে কাজ করার সময় আমরা প্রায়ই এমন কিছু ডেটা বা তথ্য পাই, যা সাধারণ মানের চেয়ে অনেক বেশি বা অনেক কম হয়। এগুলোকে আমরা 'আউটলায়ার' (Outlier) বলি। এই আউটলায়ারগুলো আমাদের পুরো ডেটাসেটের ফলাফলকে ভুল দিকে নিয়ে যেতে পারে। এই টিউটোরিয়ালটিতে আমরা IQR (Interquartile Range) পদ্ধতি ব্যবহার করে কীভাবে খুব সহজে এই আউটলায়ারগুলোকে শনাক্ত করে বাদ দেওয়া যায়, তা শিখব।


১. আউটলায়ার কী?

ভিডিও রেফারেন্স: [00:14]

সহজ কথায়, একটি ডেটাসেটে যে মানগুলো বাকিদের থেকে অস্বাভাবিকভাবে আলাদা, সেগুলোই হলো আউটলায়ার। যেমন, কোনো মানুষের উচ্চতার তথ্যে যদি কারো উচ্চতা ১৪ ফুট বা ১.২ ফুট লেখা থাকে, তবে সেগুলো অবশ্যই ভুল বা অস্বাভাবিক ডেটা। সাধারণ মানুষের উচ্চতা সাধারণত নির্দিষ্ট একটি সীমার মধ্যে থাকে।

  • সহজ ব্যাখ্যা: ধরুন, ক্লাসের সব শিক্ষার্থীর উচ্চতা ৫ থেকে ৬ ফুটের মধ্যে। কিন্তু হঠাৎ একজনের উচ্চতা যদি ১০ ফুট বলা হয়, তবে সেটিই আউটলায়ার কারণ এটি বাস্তবসম্মত নয়।

২. IQR বা Interquartile Range কী?

ভিডিও রেফারেন্স: [00:43]

IQR বিষয়টি বোঝার আগে আমাদের 'পার্সেন্টাইল' (Percentile) বুঝতে হবে।

  • পার্সেন্টাইল (Percentile): এটি একটি নির্দিষ্ট মান যা বোঝায় যে কত শতাংশ ডেটা ওই মানটির নিচে আছে। যেমন, ২৫তম পার্সেন্টাইল (Q1) মানে হলো, ডেটাসেটের ২৫% ডেটা এই মানের নিচে। একইভাবে, ৭৫তম পার্সেন্টাইল (Q3) মানে হলো ৭৫% ডেটা ওই মানের নিচে।

  • IQR: এটি হলো Q3 এবং Q1 এর মধ্যবর্তী পার্থক্য। অর্থাৎ, IQR = Q3 - Q1। এই সীমার মাধ্যমেই আমরা নির্ধারণ করি ডেটা স্বাভাবিক নাকি অস্বাভাবিক।


৩. পাইথনে কোডিং ও বাস্তবায়ন

ভিডিও রেফারেন্স: [04:11]

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

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

# আউটলায়ার শনাক্ত করা
outliers = df[(df.height < lower_limit) | (df.height > upper_limit)]

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

কোড ব্যাখ্যা: ১. quantile(0.25) এবং 0.75 দিয়ে আমরা যথাক্রমে ২৫% এবং ৭৫% এর মান বের করেছি। ২. এরপর IQR বের করে আমরা একটি সীমা (Range) নির্ধারণ করেছি। ৩. lower_limit এবং upper_limit এর বাইরে যা আছে, সেগুলোকে আউটলায়ার হিসেবে চিহ্নিত করা হয়েছে এবং সবশেষে সেগুলোকে বাদ দিয়ে আমরা পরিচ্ছন্ন ডেটা পেয়েছি।


৪. বিশ্লেষণ ও আমার মতামত

ভিডিওটি একজন ডেটা অ্যানালিস্টের জন্য খুব কার্যকর। এখানে লেখক '1.5 IQR' রুল ব্যবহার করেছেন, যা পরিসংখ্যানের একটি স্ট্যান্ডার্ড পদ্ধতি।

  • বাস্তবতা: বাস্তবে অনেক সময় আউটলায়ারগুলো ভুল ডেটা হয় না, বরং গুরুত্বপূর্ণ কোনো ঘটনা নির্দেশ করতে পারে (যেমন, অস্বাভাবিক উচ্চ মূল্যের শেয়ার বা কোনো বিরল রোগ)। তাই ডিলিট করার আগে সবসময় যাচাই করা জরুরি।

  • বিকল্প পরামর্শ: যদি আপনার ডেটা নরমাল ডিস্ট্রিবিউশনে (Normal Distribution) না থাকে, তবে শুধুমাত্র IQR-এর ওপর নির্ভর না করে Z-score পদ্ধতি বা ডেটা ভিজুয়ালাইজেশনের (যেমন: Boxplot) সাহায্য নেওয়া ভালো।

উপসংহার: এই টিউটোরিয়ালটি বিশেষ করে যারা বিগিনার, তাদের জন্য ফিচার ইঞ্জিনিয়ারিং শুরু করার দারুণ একটি ধাপ। কোডিং অংশটি অত্যন্ত সহজ এবং কার্যকরী। নিয়মিত অনুশীলনের জন্য ভিডিওতে দেওয়া এক্সারসাইজগুলো অবশ্যই সমাধান করা উচিত।

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

[

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

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