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

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

ভূমিকা

আমাদের প্রতিদিনের কাজে বা রিসার্চের সময় অনেক ধরনের ডাটা নিয়ে কাজ করতে হয়। কিন্তু সব ডাটা সবসময় ঠিকঠাক থাকে না। মাঝে মাঝে কিছু ডাটা এমন থাকে যা বাকি সবার থেকে একদম আলাদা। এই আলাদা ডাটাগুলোকে বলা হয় আউটলিয়ার (Outlier)। সহজ কথায়, একটা লাইনে সব মানুষ যখন ১ থেকে ১০ এর মধ্যে স্কোর করছে, সেখানে কেউ যদি হঠাৎ ১০০০ স্কোর করে, তবে সেই ১০০০ হলো আউটলিয়ার। এই ভিডিওতে আমরা শিখব কীভাবে পাইথন (Python) কোড ব্যবহার করে এই ঝামেলাপূর্ণ আউটলিয়ার ডাটাগুলোকে খুঁজে বের করা যায় এবং ডিলিট করা যায়।


আউটলিয়ার কী?

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

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

সহজ ভাষায়: আউটলিয়ার মানে হলো ডাটার মধ্যে থাকা 'ভুল বা অস্বাভাবিক' কিছু সংখ্যা যা পুরো হিসাবকে নষ্ট করে দিতে পারে।


পার্সেন্টাইল (Percentile) কী?

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

আউটলিয়ার খোঁজার জন্য আমরা 'পার্সেন্টাইল' পদ্ধতি ব্যবহার করব।

  • সহজ ব্যাখ্যা: পার্সেন্টাইল আপনাকে জানায় যে আপনার ডাটার কতটুকু অংশ একটি নির্দিষ্ট মানের নিচে আছে। যেমন, যদি বলা হয় ৫০তম পার্সেন্টাইল বা ৫০%, তার মানে হলো আপনার ডাটার ৫০% মান এই নির্দিষ্ট মানের নিচে আছে।

  • কেন দরকার: আমরা যখন খুব বড় ডাটা সেট নিয়ে কাজ করি, তখন খালি চোখে আউটলিয়ার চেনা সম্ভব হয় না। তখন আমরা পার্সেন্টাইল বা কোয়ান্টাইল (Quantile) ফাংশন দিয়ে নির্দিষ্ট রেঞ্জ (যেমন ৯৫% বা ৫%) সেট করে দিই। এর বাইরের ডাটাগুলোকে আমরা আউটলিয়ার হিসেবে ধরে ডিলিট করে দিতে পারি।


পাইথন কোডের মাধ্যমে আউটলিয়ার রিমুভ করা

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

পাইথনের pandas লাইব্রেরি ব্যবহার করে আমরা খুব সহজে এটি করতে পারি। নিচে একটি সাধারণ কোড স্ট্রাকচার দেওয়া হলো:

Python

import pandas as pd

# ডাটা লোড করা
df = pd.read_csv('your_data.csv')

# ৯৫% এর বেশি এবং ৫% এর কম মানগুলোকে আউটলিয়ার ধরা
max_threshold = df['height'].quantile(0.95)
min_threshold = df['height'].quantile(0.05)

# আউটলিয়ার ছাড়া ডাটা ফিল্টার করা
new_df = df[(df['height'] < max_threshold) & (df['height'] > min_threshold)] 

কোড ব্যাখ্যা: ১. quantile(0.95): এটি ৯৫% পার্সেন্টাইল ভ্যালু বের করে। আমরা চাচ্ছি এর উপরের সব ডাটা বাদ দিতে। ২. min_threshold: এটি ৫% পার্সেন্টাইল ভ্যালু বের করে, যা খুব ছোট বা অস্বাভাবিক মানগুলোকে চিহ্নিত করতে সাহায্য করে। ৩. new_df = ...: এখানে আমরা শুধু সেই ডাটাগুলো রাখছি যা আমাদের সেট করা সীমার (threshold) ভেতরে আছে।


রিয়েল লাইফ ডাটা সেটে প্রয়োগ

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

বাস্তব জীবনে যেমন প্রপার্টি প্রাইস বা হাউজিং ডাটা নিয়ে কাজ করার সময় অনেক সময় এমন ডাটা থাকে যা অবিশ্বাস্য। যেমন, ব্যাঙ্গালোরে ১ বর্গফুট জায়গার দাম খুব কম বা আকাশচুম্বী হতে পারে না। এই ধরনের ক্ষেত্রে শুধু ডোমেইন নলেজ (যে বিষয়ের ডাটা নিয়ে কাজ করছেন সে সম্পর্কে জ্ঞান) অথবা স্ট্যাটিস্টিক্যাল মেথড ব্যবহার করে আউটলিয়ার চিহ্নিত করতে হয়।

আপনার যদি ডোমেইন নলেজ থাকে, তবে সরাসরি সীমানা সেট করতে পারেন (যেমন: ৭.৫ ফুটের উপরের উচ্চতা আউটলিয়ার)। কিন্তু ডোমেইন নলেজ না থাকলে 'পার্সেন্টাইল' পদ্ধতিই সবচেয়ে কার্যকর।


বিশ্লেষণ এবং আমার মতামত

ভিডিওটির ক্রিয়েটর অত্যন্ত কার্যকরভাবে দেখিয়েছেন কীভাবে একটি ডাটা ক্লিনিং প্রসেস সম্পন্ন করা যায়।

  • কেন এটি গুরুত্বপূর্ণ: কোনো মেশিন লার্নিং মডেল বা ডাটা অ্যানালাইসিস মডেল যদি ভুল বা আউটলিয়ার ডাটা দিয়ে ট্রেন (Train) করা হয়, তবে তার ফলাফল কখনোই সঠিক আসবে না। তাই ডাটা প্রি-প্রসেসিংয়ের সময় এটি একটি অপরিহার্য ধাপ।

  • বাস্তবতা: সব সময় যে আউটলিয়ার ডিলিট করতে হবে তা কিন্তু নয়। কখনও কখনও সেই আউটলিয়ার ডাটাই হতে পারে কোনো বড় সমস্যার লক্ষণ (যেমন ব্যাংকিং ফ্রড ডিটেকশন)। তবে সাধারণ অ্যানালাইসিসের ক্ষেত্রে এটি সরিয়ে ফেলাই বুদ্ধিমানের কাজ।

  • পরামর্শ: আপনার হাতে যদি সময়ের অভাব থাকে এবং ডাটা সেট খুব বড় হয়, তবে quantile() ফাংশন ব্যবহার করা সবচেয়ে সহজ উপায়। ভবিষ্যতে আপনি জেন্ডার, বয়স বা প্রপার্টি প্রাইস অনুযায়ী আলাদা গ্রুপ করে কাজ করার অভ্যাস করতে পারেন।

এই পদ্ধতিটি শিখলে আপনি যেকোনো ডাটা সেটকে আরও নিখুঁত এবং কার্যকরভাবে বিশ্লেষণ করতে পারবেন। বিষয়টি বুঝতে কোনো সমস্যা হলে আবারো জানান!

[

Outlier detection and removal using percentile | Feature engineering tutorial python # 2

codebasics · 149K views

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

মন্তব্যসমূহ

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

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

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

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

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

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

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