মেশিন লার্নিং (machine learning) এবং ডেটা সায়েন্সের (data science) জগতে scikit-learn একটি অত্যন্ত জনপ্রিয় এবং শক্তিশালী পাইথন (Python) লাইব্রেরি। এটি বিভিন্ন ধরনের অ্যালগরিদম এবং টুলস সরবরাহ করে যা ডেটা বিশ্লেষণ (data analysis) এবং মডেল তৈরির (model building) কাজকে অনেক সহজ করে তোলে। এই লাইব্রেরির মূল শক্তি হলো এর অ্যালগরিদম ক্যাটাগরিগুলো, যা সুসংগঠিতভাবে শ্রেণিবদ্ধ করা হয়েছে।
একটি ব্লগ পোস্টের জন্য, এই ক্যাটাগরিগুলোর একটি বিস্তারিত ব্যাখ্যা এআই ইঞ্জিনিয়ার, ডেটা সায়েন্স enthusiasts-দের জন্য অত্যন্ত সহায়ক হবে।
১) Linear & Logistic (রৈখিক ও লজিস্টিক মডেল)
এগুলো এমন মডেল যেখানে আউটপুট ইনপুটের রৈখিক সমীকরণের উপর নির্ভরশীল। এটি সবচেয়ে সাধারণ মডেল। এখানে আমরা ধরে নেই, ইনপুট ভ্যারিয়েবল (X) আর আউটপুট ভ্যারিয়েবল (Y)-এর মধ্যে একটি সরলরেখা (straight line) সম্পর্ক আছে। গাণিতিকভাবে: Y=mX+c. ডেটা পয়েন্টের উপর একটা রেখা আঁকা হয়, যেটি সবগুলো পয়েন্টের যত কাছাকাছি যায়, সেটাই আমাদের মডেল।
Multiple Linear Regression (একাধিক ইনপুটসহ লিনিয়ার রিগ্রেশন): এ একটার বদলে একাধিক ইনপুট ভ্যারিয়েবল ব্যবহার হয়। যেমন: বাড়ির দাম = আকার + লোকেশন + কক্ষের সংখ্যা + এলাকার মান। অথবা গাড়ির দাম অনুমান = মডেল + বয়স + কিলোমিটার রান + কন্ডিশন।
Logistic Regression (লজিস্টিক রিগ্রেশন): যদিও নাম “Regression”, আসলে এটি একটি Classification Algorithm। আউটপুট সবসময় 0 বা 1 (Yes/No, True/False, Pass/Fail) হয়ে থাকে। কোনো ঘটনার সম্ভাবনা নির্ধারণ করতে, Binary (হ্যাঁ/না) এবং Multiclass (বহু ক্যাটাগরি) সমস্যার জন্য ব্যবহার করা যায়।
কেন দরকার:
- সহজ, দ্রুত এবং ছোট ডেটার জন্য ভালো কাজ করে।
- প্রথম ধাপে মেশিন লার্নিং শিখতে Linear/Logistic Regression খুবই জনপ্রিয়।
উদাহরণ:
- Linear Regression → বাড়ির আকার, অবস্থান দেখে তার দাম অনুমান করা।
- Logistic Regression → কোনো গ্রাহক ঋণ ফেরত দেবে কি না (Yes/No)।
২) Discriminant Analysis (পার্থক্য বিশ্লেষণ)
ডেটার ভেতরে আলাদা গ্রুপ/ক্লাস থাকলে কোন ফিচারগুলো সেই ক্লাসকে সবচেয়ে ভালোভাবে আলাদা করে সেটি খুঁজে বের করে। ধরো, আমাদের কাছে অনেক ডেটা আছে, যেগুলো দুই বা ততোধিক গ্রুপ (class) এ ভাগ করা। আমাদের কাজ হলো নতুন কোনো ডেটা এলে সেটা কোন গ্রুপে পড়বে সেটা নির্ধারণ করা। Discriminant Analysis ডেটার ভেতরে এমন সীমানা (boundary) খোঁজে, যা এক ক্লাসকে অন্য ক্লাস থেকে আলাদা করে।
Linear Discriminant Analysis (LDA): ধরে নেয় প্রতিটি ক্লাসের ডেটা একই covariance structure (ডেটার ছড়ানো একরকম)। তাই আলাদা করার boundary হয় সোজা লাইন (linear boundary)। একইসাথে ডাইমেনশন কমাতেও (dimensionality reduction) LDA ব্যবহার হয়। যেমন, মুখ চিনতে ব্যবহার → ছবির ডেটা অনেক বড় (high-dimensional), LDA ফিচার কমিয়ে দেয় এবং মানুষ চেনার জন্য boundary তৈরি করে।
Quadratic Discriminant Analysis (QDA): ধরে নেয় প্রতিটি ক্লাসের ডেটার covariance আলাদা হতে পারে। তাই boundary হয় বাঁকানো (curved) বা quadratic আকারের। যেমন, যখন রোগীর টেস্ট রিপোর্টে ভিন্ন ভিন্ন গ্রুপে আলাদা আলাদা variance দেখা যায়।
ব্যাখ্যা:
- ডেটা আলাদা আলাদা গ্রুপে ভাগ হয়, যেমন – রোগী অসুস্থ বা সুস্থ।
- LDA (Linear Discriminant Analysis) ডেটার মধ্যে সোজা লাইন দিয়ে আলাদা করে।
- QDA (Quadratic Discriminant Analysis) বাঁকানো সীমারেখা ব্যবহার করে আলাদা করে।
কেন দরকার: যখন ডেটা দুই বা ততোধিক ক্লাসে ভাগ করা দরকার হয়।
উদাহরণ:
- শিক্ষার্থীদের পড়ার ঘন্টা দেখে → “ভালো” ও “দুর্বল” ক্যাটাগরি বানানো।
- মেডিকেল টেস্ট রিপোর্ট দেখে রোগীকে “সুস্থ” বা “রোগী” বলা।
৩) Kernel Methods (কার্নেল পদ্ধতি)
Kernel Method হলো এক ধরনের কৌশল যেখানে আমরা ডেটাকে উচ্চ মাত্রিক জায়গায় (higher dimensional space) পাঠাই, যাতে সহজে আলাদা করা বা pattern খুঁজে পাওয়া যায়। ধরো, 2D প্লেনে দুটি ডেটা ক্লাসকে আলাদা করা যাচ্ছে না (কারণ boundary সোজা রেখা দিয়ে আঁকা সম্ভব না)। Kernel Method ডেটাকে 3D বা আরো বড় স্পেসে নিয়ে যায়, যেখানে boundary টানা সহজ হয়ে যায়। মূলত ডেটাকে রূপান্তর (transform) না করেই, শুধু similarity measure (kernel function) ব্যবহার করে কাজটা করা হয়। সবচেয়ে জনপ্রিয় হলো Support Vector Machine (SVM)।
- Linear Kernel → সরল similarity (dot product): দুইটি ভেক্টরের মধ্যে কোণ কতটা কাছাকাছি।
- Polynomial Kernel → similarity হিসাব polynomial আকারে। উদাহরণ: relation nonlinear হলে।
- RBF (Radial Basis Function / Gaussian Kernel): সব থেকে বেশি ব্যবহৃত। কাছাকাছি পয়েন্টের similarity বেশি, দূরে গেলে similarity কমে যায়। উদাহরণ: clustering বা জটিল boundary টানার ক্ষেত্রে।
- Sigmoid Kernel: Neural network এর activation এর মত।
ব্যাখ্যা:
- সব ডেটা সোজা লাইনে আলাদা হয় না। Kernel ডেটাকে অন্য dimension-এ নিয়ে গিয়ে আলাদা করে।
- Support Vector Machine (SVM) এখানে সবচেয়ে জনপ্রিয়।
কেন দরকার: জটিল প্যাটার্ন ধরা যায় যেটা সাধারণ লিনিয়ার মডেল পারে না।
উদাহরণ:
- ইমেইল স্প্যাম/নন-স্প্যাম আলাদা করা।
- ক্রেডিট কার্ড লেনদেনে ফ্রড সনাক্তকরণ।
৪) Nearest Neighbors (নিকটতম প্রতিবেশী)
Nearest Neighbors হলো distance-based learning method। এখানে কোনো গাণিতিক মডেল বানানো হয় না, বরং যখন নতুন ডেটা আসে তখন সেটা training data এর কাছাকাছি পয়েন্টগুলোর (neighbors) সাথে তুলনা করে সিদ্ধান্ত নেওয়া হয়। যদি তুমি নতুন কাউকে দেখো, তুমি মিল খুঁজবে – “এটা দেখতে কাদের মত?” যে দিকের মানুষ বেশি মিলে যায়, তুমি সিদ্ধান্ত নেবে সে কোন গ্রুপে পড়বে।
“K” মানে হলো কতজন প্রতিবেশী (neighbor) দেখা হবে। নতুন ডেটাকে শ্রেণীকরণ (classification) বা সংখ্যা অনুমান (regression) করার সময়, K সংখ্যক কাছের neighbor গুলো দেখা হয়। তারপর সংখ্যাগরিষ্ঠ ভোট (majority vote) বা গড় (average) নিয়ে সিদ্ধান্ত নেওয়া হয়।
ব্যাখ্যা:
- নতুন কোনো ডেটা এলে সেটার কাছে যে ডেটাগুলো আছে সেগুলো দেখে সিদ্ধান্ত নেয়।
- যেমন – নতুন ছাত্রের নাম্বার কাছাকাছি ছাত্রদের দেখে অনুমান করা।
কেন দরকার: ডেটা কম হলে এবং সোজা সহজ পদ্ধতি চাইলে KNN বেশ কার্যকর।
উদাহরণ:
- একজন ইউজার কোন বই পছন্দ করবে তা অনুমান করা, একই ধরণের মানুষের বই পড়ার ইতিহাস দেখে।
- রোগীর উপসর্গ দেখে রোগ অনুমান করা, আগের রোগীদের মিল খুঁজে।
৫) Gaussian Processes (গাউসিয়ান প্রসেস)
Gaussian Process (GP) হলো একটি probabilistic ও non-parametric মেশিন লার্নিং মেথড। Probabilistic এর মানে হলো প্রতিটি প্রেডিকশনের জন্য শুধু একটি মান দেয় না, বরং “অনিশ্চয়তার” (uncertainty) তথ্যও দেয়। Non-parametric এর মানে নির্দিষ্ট কোনো স্থির ফর্মুলা ধরে কাজ করে না। ডেটা যত বাড়ে, মডেলও সেই অনুযায়ী জটিল হতে পারে। এটি অনেক সময় বেশি জটিল ডেটার জন্য কাজে লাগে।
Gaussian Process (GP) এর মূল দুটি উপাদান হলোঃ Mean function – ডেটার গড় ফাংশন কেমন হতে পারে। Covariance function (Kernel function) – এক পয়েন্ট আরেক পয়েন্ট কতটা সম্পর্কিত। Kernel এর মাধ্যমে GP শিখে নেয় → ডেটার মধ্যে smoothness, periodicity, similarity ইত্যাদি সম্পর্ক।
ব্যাখ্যা:
- প্রতিটি পূর্বাভাসের সাথে অনিশ্চয়তা (uncertainty) হিসেব করে।
- শুধু আউটপুট নয়, সেই আউটপুট কতটা বিশ্বাসযোগ্য সেটাও বলে।
কেন দরকার: যখন ডেটা কম থাকে এবং মডেলের অনিশ্চয়তা বোঝা দরকার হয়।
উদাহরণ:
- আবহাওয়ার পূর্বাভাস → আগামীকাল বৃষ্টি হওয়ার সম্ভাবনা 70%।
- স্বয়ংক্রিয় গাড়ি চালানো → সেন্সরের ডেটা সবসময় সঠিক না হলে।
৬) Cross-decomposition (ক্রস-ডিকম্পোজিশন)
Cross-decomposition হলো একটি dimension reduction এবং relationship খোঁজার পদ্ধতি। এর মূল উদ্দেশ্য হলো দুটি আলাদা ডেটাসেটের মধ্যে লুকানো সম্পর্ক বের করা। তুমি যদি একে সাধারণভাবে বোঝো:
PCA (Principal Component Analysis) হলো শুধু এক ডেটাসেটের ভেতরের variance/structure কমিয়ে সহজ করে। Cross-decomposition হলো একসাথে দুটি ডেটাসেট নিয়ে কাজ করে এবং দেখে, কোন অংশ একে অপরের সাথে বেশি সম্পর্কিত। এর জনপ্রিয় method → PLS ও CCA।
PLS (Partial Least Squares): দুটো ডেটাসেটের মধ্যে strong relation বের করে। উদাহরণ: জিন এক্সপ্রেশন ডেটা (X) আর রোগের ধরণ (Y) → কোন জিন বেশি প্রভাব ফেলছে তা বের করা।
CCA (Canonical Correlation Analysis): দুটো ডেটাসেটের ভেতরে linear combination বের করে, যেগুলো একে অপরের সাথে সবচেয়ে বেশি সম্পর্কিত। উদাহরণ: X = মানুষের স্বাস্থ্য সংক্রান্ত ডেটা (BMI, Blood Pressure, Sugar Level) এবং Y = ব্যায়ামের অভ্যাস (Exercise hours, Steps per day) হলে কোন ফিচারগুলো একে অপরের সাথে strongly correlated সেটা বের করা।
ব্যাখ্যা:
- দুই বা তার বেশি ডেটাসেটের মধ্যে সম্পর্ক বের করে।
কেন দরকার: যখন একসাথে একাধিক ভেরিয়েবলের প্রভাব বোঝা দরকার।
উদাহরণ:
- খাবারাভ্যাস বনাম স্বাস্থ্যের সম্পর্ক।
- ওষুধের ধরণ বনাম জিন এক্সপ্রেশনের সম্পর্ক।
৭) Naive Bayes (সরল বায়েস)
Naive Bayes হলো একটি probabilistic মেশিন লার্নিং অ্যালগরিদম। “Naive” কেন বলা হয়? কারণ, এটি ধরে নেয় যে সব ফিচার একে অপরের থেকে স্বাধীন (independent)। বাস্তবে সবসময় ফিচারগুলো পুরোপুরি independent নয়। তবুও এই সরল অনুমান অনেক ক্ষেত্রে ভালো কাজ করে।
ডেটাসেটের প্রতিটি ক্লাস (যেমন: Positive/Negative, Spam/Not Spam) এর জন্য prior probability বের করা হয়। নতুন ইনপুটের প্রতিটি ফিচারের probability হিসাব করা হয় (condition based)। সব probability গুণ করে সবচেয়ে বেশি মান যেটার হয়, সেই ক্লাস predict করা হয়।
ব্যাখ্যা:
- সম্ভাবনার ভিত্তিতে ডেটাকে শ্রেণীবদ্ধ করে।
- ধরে নেয় প্রতিটি ফিচার স্বাধীন (যদিও বাস্তবে সবসময় না)।
কেন দরকার: দ্রুত, সহজ এবং টেক্সট ডেটায় ভালো কাজ করে।
উদাহরণ:
- ইমেইল স্প্যাম ডিটেকশন।
- সংবাদপত্রের খবরকে “খেলা”, “রাজনীতি”, “বিজ্ঞান” এ ভাগ করা।
৮) Trees & Ensembles (গাছ ও সমষ্টি পদ্ধতি)
গাছের মতো করে সিদ্ধান্ত নেয়। Ensemble মানে একাধিক মডেল একসাথে ব্যবহার করা। Decision Tree হলো একটি ট্রি-স্ট্রাকচার্ড মডেল যেখানে প্রতিটি নোডে একটি শর্ত (rule) থাকে এবং শাখা (branch) অনুসরণ করে অবশেষে একটি সিদ্ধান্ত (prediction) এ পৌঁছানো হয়। এই ধরণের if-else decision নিয়মগুলো দিয়ে তৈরি কাঠামোকে বলা হয় Decision Tree।
উদাহরণ: ধরা যাক, তুমি একটা প্রশ্ন করছো — “আজকে আমি ছাতা নিয়ে বের হবো কি না?”
- প্রথম শর্ত: আজকে কি বৃষ্টি হবে?
- যদি হ্যাঁ, তাহলে ছাতা নাও।
- যদি না, তবে আরেকটা শর্ত: রোদ বেশি কি?
- যদি হ্যাঁ, তাহলে ছাতা নাও (রোদ থেকে বাঁচতে)।
- যদি না, তাহলে ছাতা লাগবে না।
Ensemble হলো মানে একসাথে অনেকগুলো মডেলের সিদ্ধান্ত মিশিয়ে (combine করে) একটি final decision তৈরি করা। মেশিন লার্নিংয়েও একাধিক weak model একসাথে মিলে একটি strong model তৈরি করে। একই ডেটার বিভিন্ন স্যাম্পল নিয়ে একাধিক মডেল ট্রেন করা হয়। পরে তাদের prediction গড়ে (average) বা ভোটে (majority vote) final prediction করা হয়। Random Forest হলো Bagging এর সবচেয়ে জনপ্রিয় উদাহরণ।
উদাহরণ: ধরো, তুমি একটি কঠিন প্রশ্নের উত্তর খুঁজছো।
- তুমি একজন বন্ধুকে জিজ্ঞেস করলে → সে একটা উত্তর দিল।
- তুমি আরও ৪-৫ জনকে জিজ্ঞেস করলে → সবাই আলাদা উত্তর দিল।
- এখন তুমি সবাইয়ের উত্তর একত্রিত করে ভোটে যে উত্তর বেশি, সেটি নিলে সেটা অনেক সময় সঠিক হওয়ার সম্ভাবনা বেশি।
কেন দরকার: জটিল ডেটায় ভালো কাজ করে, সহজে ব্যাখ্যা করা যায়।
উদাহরণ:
- ব্যাংক ঋণ অনুমোদন → আয়, বয়স, চাকরি ইত্যাদি দেখে।
- Random Forest → একসাথে অনেকগুলো ট্রি দিয়ে শক্তিশালী সিদ্ধান্ত নেয়।
৯) Clustering (ক্লাস্টারিং)
Clustering হলো Unsupervised Learning Technique – যেখানে আমাদের কাছে label নেই। অর্থাৎ ডেটাকে আলাদা আলাদা গ্রুপে ভাগ করা যেখানে আগে থেকে লেবেল নেই। অ্যালগরিদম নিজে থেকে ডেটাগুলোকে similarity (সাদৃশ্য) অনুযায়ী ভাগ করে দল বা cluster বানায়। উদাহরণ: একটা ক্লাসে অনেক ছাত্র আছে। তাদের result, height, hobby, dress style এগুলো দেখে যদি আমরা একই ধরনের ছাত্রদের এক গ্রুপে রাখি, সেটাই clustering।
- Hierarchical Clustering: ধাপে ধাপে cluster তৈরি হয়। একে dendrogram নামের একটি গাছের মতো diagram দিয়ে visualize করা হয়। ভালো যখন cluster সংখ্যা আগে থেকে জানা থাকে না। উদাহরণ: পরিবার গাছ (family tree)-এর মতো — বড় cluster কে ছোট ছোট sub-cluster এ ভাগ করা।
- DBSCAN (Density-Based Spatial Clustering of Applications with Noise): এটি density ভিত্তিক clustering। যে ডেটা বেশি ঘন হয়ে আছে, তাকে cluster বানায়। Outliers / Noise কে আলাদা করে। উদাহরণ: একটা শহরে জনসংখ্যার density দেখে – “বসতিপূর্ণ এলাকা” আর “খালি এলাকা” আলাদা করা।
- Mean Shift Clustering: Sliding window দিয়ে high-density region খুঁজে cluster বানায়। Cluster সংখ্যা আগে থেকে জানার দরকার হয় না।
কেন দরকার: লুকানো প্যাটার্ন বের করতে।
উদাহরণ:
- Market Segmentation: ক্রেতাদের কেনাকাটার অভ্যাস অনুযায়ী গ্রাহকদের দলে ভাগ করা (যেমন – যারা কেবল সস্তা জিনিস কেনে, যারা premium জিনিস কেনে)।
- Spam Detection: মেইলগুলিকে দুই গ্রুপে ভাগ করা – spam বনাম non-spam (শুরুতে unsupervised clustering করে grouping করা যায়)।
- Biology / Genetics: DNA sequence এর similarity দেখে species group বানানো।
- Image Segmentation: ছবিকে একাধিক অংশে (sky, building, road, human) ভাগ করা।
- News Article Grouping: একসাথে সম্পর্কিত খবরকে একটি cluster-এ ফেলা।
১০) Biclustering (দ্বিমাত্রিক ক্লাস্টারিং)
সাধারণ Clustering শুধু rows (নমুনা) বা columns (ফিচার) এর ওপর গ্রুপ বানায়। কিন্তু Biclustering একই সাথে rows আর columns দুটোতেই subgroup খুঁজে বের করে। তাই একে দ্বিমাত্রিক ক্লাস্টারিং বলা হয়। অর্থাৎ, biclustering খোঁজে ডেটার ভেতরে থাকা ছোট ছোট সাব-ম্যাট্রিক্স যেখানে row গুলো আর column গুলো দুজনেই একসাথে সাদৃশ্যপূর্ণ।
জনপ্রিয় অ্যালগরিদম (Algorithms)
- Spectral Biclustering → ডেটার eigenvalue/eigenvector ব্যবহার করে subgroup খোঁজা।
- Spectral Co-clustering → row-column একসাথে similarity matrix তৈরি করে group করা।
- Cheng & Church Algorithm → সবচেয়ে প্রাচীন biclustering algorithm, noise সহ্য করতে পারে।
কেন দরকার: যখন দুই দিকেই সম্পর্ক খুঁজে বের করতে হয়।
উদাহরণ:
- জিন এক্সপ্রেশন ডেটায় (gene expression data) biclustering অনেক ব্যবহৃত হয়। কিছু জিন (rows) হয়তো কিছু condition (columns)-এ সক্রিয়, আবার অন্য condition-এ নয়। ফলে কোন জিন কোন condition এর সাথে সম্পর্কিত তা ধরা যায়।
- কিছু ডকুমেন্ট (rows) হয়তো কিছু নির্দিষ্ট শব্দ (columns)-এর সাথে সম্পর্কিত। এতে ডকুমেন্ট গ্রুপ আর শব্দ গ্রুপ একই সাথে ধরা যায়।
- কিছু গ্রাহক (rows) হয়তো কেবল নির্দিষ্ট কিছু পণ্য (columns) কেনেন। এতে customer group + product group একই সাথে ধরা যায়।
১১) Decomposition (বিভাজন/মাত্রা হ্রাস)
Decomposition মানে হলো কোনো জটিল ম্যাট্রিক্স বা ডেটাকে ছোট ছোট অংশে বা সহজ ফর্মে ভাগ করা। ধরুন, আমাদের কাছে একটি বড় ম্যাট্রিক্স আছে। সরাসরি এই ম্যাট্রিক্স দিয়ে কাজ করা কঠিন। তাই আমরা এটাকে এমনভাবে ভাগ করি যাতে ছোট, সহজ, এবং কম্পিউটেশনালভাবে কাজ করা যায়। ধরুন, তোমার কাছে ১০০০ column এর ডেটাসেট আছে। সরাসরি সব column নিয়ে কাজ করলে ধীর হবে।
Decomposition ব্যবহার করে ডেটাকে ছোট অংশে ভাগ করো যেমন top 10 principal components। এখন কাজ করা সহজ এবং দ্রুত, অথচ মূল তথ্য ঠিক থাকে।
ব্যাখ্যা:
- বড় ডেটাকে ছোট আকারে আনা, কিন্তু তথ্য রাখার চেষ্টা করা।
- PCA, NMF ইত্যাদি এর উদাহরণ।
কেন দরকার: ডেটা সহজে প্রসেস করা, ভিজ্যুয়ালাইজ করা, নয়েজ কমানো।
উদাহরণ:
- PCA → বড় ইমেজ ডেটাসেট থেকে দরকারি ফিচার রাখা।
- NMF → মিউজিককে ভেঙে আলাদা ইন্সট্রুমেন্ট বের করা।
১২) Outlier Detection (অস্বাভাবিক তথ্য খোঁজা)
Outlier হলো ডেটার সেই মান বা রেকর্ড যা সাধারণ ধারা থেকে খুব ভিন্ন। Outlier Detection হলো অস্বাভাবিক বা ভিন্ন ডেটা শনাক্ত করা, যাতে ডেটা বিশ্লেষণ ও মডেলিং সঠিক হয়। অন্য শব্দে বললে, অনিয়মিত বা অস্বাভাবিক তথ্য। উদাহরণ: ধরো তোমার ক্লাসে ২০ জন ছাত্রের উচ্চতা 150-170 cm এর মধ্যে। একজন ছাত্রের উচ্চতা 250 cm → outlier। Outlier detect করলে তুমি দেখতে পারবে কোন মান “সাধারণের বাইরে”।
কেন দরকার: প্রতারণা, ভুল ডেটা বা বিশেষ পরিস্থিতি খুঁজে বের করতে।
উদাহরণ:
- ব্যাংকে অস্বাভাবিক লেনদেন → ফ্রড ডিটেকশন।
- সেন্সরের ভুল রিডিং চিহ্নিত করা।
১৩) Density Estimation (ঘনত্ব অনুমান)
Density Estimation হলো ডেটা পয়েন্টগুলোর probability distribution বা ঘনত্ব অনুমান করা। সহজভাবে বললে: ডেটা কোথায় বেশি, কোথায় কম concentrated, সেটা বের করা। উদাহরণ: তোমার কাছে ১ ডি ডেটা আছে: [1, 2, 2, 3, 5, 8, 8, 8, 10]. এখানে 2 ও 8 এর কাছে বেশি পয়েন্ট → ঘনত্ব বেশি। 5 বা 10 এর কাছে কম পয়েন্ট → ঘনত্ব কম।
Density Estimation পদ্ধতি
(ক) Parametric Methods (পরামিতিক পদ্ধতি)
- ডেটাকে কোনো known distribution (যেমন Normal, Gaussian) ধরে অনুমান করা।
- উদাহরণ: Gaussian distribution → mean (μ) ও std (σ) estimate করা।
- সুবিধা: সহজ, কম computation।
- অসুবিধা: ডেটা distribution যদি অন্যরকম হয় → ভুল অনুমান।
(খ) Non-Parametric Methods (অপরামিতিক পদ্ধতি)
- কোনো fixed distribution ধরতে হয় না।
- উদাহরণ:
- Histogram: ডেটাকে bins এ ভাগ করা → frequency গণনা। সহজ কিন্তু bin size এর উপর নির্ভরশীল।
- Kernel Density Estimation (KDE): প্রতিটি point এর চারপাশে smooth curve দেয়া। Smooth & flexible → continuous approximation।
কেন দরকার: ডেটার বন্টন বুঝতে।
উদাহরণ:
- শহরের কোন এলাকায় সবচেয়ে বেশি লোক থাকে।
- ওয়েবসাইটে ইউজাররা কোন সময়ে বেশি সক্রিয় থাকে।
১৪) Unsupervised NN (আনসুপারভাইজড নিউরাল নেটওয়ার্ক)
Unsupervised Neural Network (NN) হলো এমন একটি neural network যা লেবেলবিহীন ডেটা দিয়ে শেখে। অর্থাৎ ডেটার input আছে, কিন্তু output বা target নেই। NN নিজে থেকেই pattern, structure, বা clustering খুঁজে বের করে। নিউরাল নেটওয়ার্ক যেটা লেবেল ছাড়া শেখে। মূলত ফিচার এক্সট্রাকশন বা প্যাটার্ন খোঁজার জন্য ব্যবহৃত।
ধরো তোমার কাছে ১০০০ মানুষের ছবি আছে, কিন্তু কোন ছবির নাম বা লেবেল নেই। Unsupervised NN নিজেই ছবি similarity অনুযায়ী group বানাতে পারে। Autoencoder compress করে ছবির essential features শিখতে পারে। SOM বা clustering দিয়ে ছবি ধরন অনুযায়ী গ্রুপ বানানো যায়।
কেন দরকার:
- Clustering (গ্রুপিং)
- একই ধরনের ডেটা একত্রে আনা।
- উদাহরণ: Customer segmentation।
- Dimensionality Reduction (মাত্রা হ্রাস)
- ডেটার গুরুত্বপূর্ণ features বের করা।
- উদাহরণ: Autoencoder → input compress করে latent representation তৈরি।
- Feature Learning / Representation Learning
- ডেটার latent features বের করা যা পরবর্তী supervised task এ ব্যবহার করা যায়।
- Anomaly / Outlier Detection
- অস্বাভাবিক ডেটা detect করা।
উদাহরণ:
- Restricted Boltzmann Machine (RBM) → ছবি থেকে লুকানো ফিচার বের করা।
- ডেটা কম্প্রেশন করা, ডাইমেনশন কমানো।
scikit-learn লাইব্রেরিতে, অ্যালগরিদমগুলো প্রতিটি ক্যাটাগরি একটি নির্দিষ্ট ধরনের সমস্যার সমাধানের জন্য ডিজাইন করা হয়েছে। পরবর্তীতে আমরা প্রত্যেকটির অধীনে থাকা কিছু জনপ্রিয় অ্যালগরিদম সম্পর্কে জানব। এর পাশাপাশি, আমরা কীভাবে সঠিক অ্যালগরিদমটি বেছে নেওয়া যায় এবং বাস্তব-জীবনের সমস্যায় সেগুলো কীভাবে প্রয়োগ করা যায়, সে বিষয়েও আলোকপাত করব।

Leave a Comment