Naive Bayes এর উদাহরণ এবং মডেল বিশ্লেষণ

Naive Bayes Classifier - পাইথন দিয়ে মেশিন লার্নিং (Machine Learning with Python) - Machine Learning

284

Naive Bayes একটি জনপ্রিয় স্ট্যাটিস্টিক্যাল ক্লাসিফিকেশন অ্যালগরিদম যা Bayes Theorem এর উপর ভিত্তি করে কাজ করে। এটি "naive" কারণ এটি ধরে নেয় যে সমস্ত বৈশিষ্ট্য (features) একে অপরের থেকে স্বাধীন (independent), যা বাস্তবে খুব কম ক্ষেত্রেই ঘটে, তবে সাধারণভাবে এটি ভাল কাজ করে।

Naive Bayes সাধারণত text classification (যেমন ইমেইল স্প্যাম সনাক্তকরণ) এবং sentiment analysis এর মতো কাজের জন্য ব্যবহৃত হয়।

Naive Bayes মডেলের মূল ধারণা:

Naive Bayes থিওরেম অনুসারে, প্রতিটি ক্লাসের জন্য পপুলেশন এর সমীকরণ হলো:

P(CX)=P(XC)P(C)P(X)P(C|X) = \frac{P(X|C)P(C)}{P(X)}

যেখানে:

  • P(CX)P(C|X) হল সম্ভাবনা যে CC ক্লাস হবে, যখন XX বৈশিষ্ট্যগুলো জানা থাকবে।
  • P(XC)P(X|C) হল একটি ক্লাসের জন্য বৈশিষ্ট্যগুলির অধীনে ডেটা প্রদানের সম্ভাবনা।
  • P(C)P(C) হল ক্লাসের জন্য প্রাথমিক সম্ভাবনা।
  • P(X)P(X) হল বৈশিষ্ট্যগুলির সম্ভাবনা।

Naive Bayes মডেল উদাহরণ

ধরা যাক, আমাদের একটি ডেটাসেট রয়েছে যা স্প্যাম বা নন-স্প্যাম ইমেইল শনাক্ত করতে ব্যবহৃত হবে। আমরা এটি scikit-learn লাইব্রেরি ব্যবহার করে তৈরি করব।

১. ডেটাসেট তৈরি ও লোড করা

এখানে আমরা sklearn এর 20 Newsgroups ডেটাসেট ব্যবহার করব, যা টেক্সট ক্লাসিফিকেশন কাজের জন্য আদর্শ।

from sklearn.datasets import fetch_20newsgroups
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import MultinomialNB
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.metrics import accuracy_score, confusion_matrix, classification_report

# 20 Newsgroups ডেটাসেট লোড করা
newsgroups = fetch_20newsgroups(subset='all')

# ডেটা এবং লেবেল আলাদা করা
X = newsgroups.data
y = newsgroups.target

# ডেটাকে ট্রেন ও টেস্ট সেটে ভাগ করা
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# CountVectorizer ব্যবহার করে টেক্সটকে ভেক্টরে রূপান্তর করা
vectorizer = CountVectorizer(stop_words='english')
X_train_vec = vectorizer.fit_transform(X_train)
X_test_vec = vectorizer.transform(X_test)

২. Naive Bayes মডেল তৈরি ও প্রশিক্ষণ

এখন, MultinomialNB ব্যবহার করে Naive Bayes মডেল তৈরি করা হবে এবং প্রশিক্ষণ দেওয়া হবে।

# Naive Bayes মডেল তৈরি ও প্রশিক্ষণ
nb_model = MultinomialNB()
nb_model.fit(X_train_vec, y_train)

# টেস্ট সেটে পূর্বানুমান করা
y_pred = nb_model.predict(X_test_vec)

৩. মডেল মূল্যায়ন

এখন, মডেলের পারফরম্যান্স মূল্যায়ন করা হবে accuracy, confusion matrix, এবং classification report এর মাধ্যমে।

# Accuracy গণনা
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)

# Confusion Matrix
cm = confusion_matrix(y_test, y_pred)
print("Confusion Matrix:\n", cm)

# Classification Report
report = classification_report(y_test, y_pred)
print("Classification Report:\n", report)

৪. Confusion Matrix, Precision, Recall এবং F1-Score বিশ্লেষণ

  • Confusion Matrix: কনফিউশন ম্যাট্রিক্স দ্বারা, আপনি দেখতে পারবেন কিভাবে মডেলটি প্রতিটি ক্লাস (যেমন স্প্যাম/নন-স্প্যাম) সঠিকভাবে এবং ভুলভাবে শ্রেণীবদ্ধ করেছে।
  • Precision: Precision হল সঠিকভাবে পূর্বানুমানিত পজিটিভ কেসের হার (True Positives / (True Positives + False Positives))। উচ্চ precision মানে মডেল পজিটিভ কেস সঠিকভাবে চিহ্নিত করছে।
  • Recall: Recall হল প্রকৃত পজিটিভ কেস সঠিকভাবে পূর্বানুমানিত হওয়ার হার (True Positives / (True Positives + False Negatives))। এটি বলছে মডেল কতটা সফলভাবে প্রকৃত পজিটিভ কেস শনাক্ত করেছে।
  • F1-Score: F1-Score Precision এবং Recall এর মধ্যে একটি ভারসাম্য তৈরি করে। এটি Precision এবং Recall এর হারমনিক গড় হিসাবে কাজ করে।

৫. মডেল ফলাফল বিশ্লেষণ

একবার আপনি accuracy, confusion matrix, precision, recall এবং F1-score মূল্যায়ন করে ফেললে, আপনি মডেলের কার্যকারিতা বিশ্লেষণ করতে পারবেন। যদি precision এবং recall কম থাকে, তবে আপনি মডেলটি আরও প্রশিক্ষণ দিতে পারেন বা hyperparameters টিউন করতে পারেন।

Model Performance Evaluation Summary:

  • Confusion Matrix: মডেলটি সঠিকভাবে কোন কেসগুলো পূর্বানুমান করেছে এবং কোথায় ভুল করেছে তা দেখায়।
  • Accuracy: মোট সঠিক পূর্বানুমান।
  • Precision: পজিটিভ পূর্বানুমানের সঠিকতা।
  • Recall: প্রকৃত পজিটিভ কেস সঠিকভাবে চিহ্নিত করা।
  • F1-Score: Precision এবং Recall এর মধ্যে ভারসাম্য তৈরি করে।

সারাংশ:

Naive Bayes মডেল সাধারণত সহজ এবং কার্যকরী ক্লাসিফিকেশন সমস্যা সমাধানে ব্যবহৃত হয়, বিশেষত টেক্সট ক্লাসিফিকেশন, স্প্যাম ডিটেকশন ইত্যাদি ক্ষেত্রে। মডেলটির কার্যকারিতা মূল্যায়ন করতে accuracy, precision, recall, F1-score, এবং confusion matrix ব্যবহার করা হয়। Naive Bayes সহজ হলেও বাস্তব জীবনের ডেটা সেটে ভালো পারফরম্যান্স প্রদান করতে পারে, বিশেষত যখন বৈশিষ্ট্যগুলির মধ্যে কিছুটা স্বাধীনতা থাকে।

Content added By
Promotion

Are you sure to start over?

Loading...