🟣 ML + AI  ·  Lesson 56

Naive Bayes Algorithm

Naive Bayes Algorithm

What is Naive Bayes?

Naive Bayes means naive Bayes is a probability-based classification algorithm, often used in text classification.

In real programs, this topic helps in spam detection. Learn the idea first, then type the program yourself and compare the output.

💡 At a Glance
PointDetails
Course AreaMachine Learning + AI
Concepts used for prediction, classification, clustering and AI-based projects.
Main Usespam detection
Example Filenaive-bayes.py
Practice FocusRun, change values, and explain the output line by line.

Why should you learn this?

  • It is useful for spam detection.
  • It connects with sentiment classification.
  • It improves your ability to read, write and debug Python programs.

Important Terms

These terms are used directly in this lesson. Understand them before memorising the code.

TermMeaning
probabilityChance value between 0 and 1.
Bayes theoremProbability rule used to update belief using evidence.
classificationPredicting a category or class.
texttext is an important term in this topic.
spam detectionspam detection is an important term in this topic.

Syntax / Basic Pattern

The simple pattern is: prepare data, apply the concept, then show the result.

Basic Pattern
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
texts = ["win money", "hello friend", "free prize", "project meeting"]
y = ["spam", "ham", "spam", "ham"]
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(texts)
model = MultinomialNB()
model.fit(X, y)

Complete Example Program

Python – naive-bayes.py
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB

texts = ["win money", "hello friend", "free prize", "project meeting"]
y = ["spam", "ham", "spam", "ham"]

vectorizer = CountVectorizer()
X = vectorizer.fit_transform(texts)

model = MultinomialNB()
model.fit(X, y)
print(model.predict(vectorizer.transform(["free money"]))[0])

Expected Output

spam

Program Explanation

  • from sklearn.feature_extraction.text import CountVectorizer imports ready-made features from a module/library.
  • from sklearn.naive_bayes import MultinomialNB imports ready-made features from a module/library.
  • texts = ["win money", "hello friend", "free prize", "project meeting"] stores a value in texts.
  • y = ["spam", "ham", "spam", "ham"] stores a value in y.
  • vectorizer = CountVectorizer() stores a value in vectorizer.
  • X = vectorizer.fit_transform(texts) stores a value in X.
  • model = MultinomialNB() stores a value in model.

Where will you use it?

  • Spam detection.
  • Sentiment classification.
  • Fast text classification.

Common Mistakes

  • Training and testing the model on the same data.
  • Using an algorithm without understanding the input features.
  • Reporting only accuracy without checking actual mistakes and limitations.

Practice Tasks

  1. Type the program in naive-bayes.py and run it.
  2. Change input values or sample data and observe the new output.
  3. Create one example related to spam detection.
  4. Write 5 lines explaining the logic in your own words.

Summary

Naive Bayes is not a theory-only topic. You should be able to explain the meaning, write the example, run it successfully, and use it in a small practical program.

Naive Bayes क्या है?

Naive Bayes ka matlab hai: Naive Bayes is a probability-based classification algorithm, often used in text classification. Simple words me, ye topic practical Python programs likhne me direct use hota hai.

Is topic ko sirf definition ke liye nahi, balki spam detection jaise real examples ke liye practice karein.

यह क्यों सीखना जरूरी है?

  • Ye spam detection me kaam aata hai.
  • Ye sentiment classification se bhi connected hai.
  • Isse aap code ka output aur errors better samajh paate hain.

Important Terms

TermMeaning
probabilityChance value between 0 and 1.
Bayes theoremProbability rule used to update belief using evidence.
classificationPredicting a category or class.
texttext is an important term in this topic.
spam detectionspam detection is an important term in this topic.

Syntax / Basic Pattern

Basic idea: pehle data तैयार करें, phir Python logic apply करें, aur finally result display करें.

Basic Pattern
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
texts = ["win money", "hello friend", "free prize", "project meeting"]
y = ["spam", "ham", "spam", "ham"]
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(texts)
model = MultinomialNB()
model.fit(X, y)

Complete Example Program

Python – naive-bayes.py
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB

texts = ["win money", "hello friend", "free prize", "project meeting"]
y = ["spam", "ham", "spam", "ham"]

vectorizer = CountVectorizer()
X = vectorizer.fit_transform(texts)

model = MultinomialNB()
model.fit(X, y)
print(model.predict(vectorizer.transform(["free money"]))[0])

Expected Output

spam

Program Explanation

  • from sklearn.feature_extraction.text import CountVectorizer imports ready-made features from a module/library.
  • from sklearn.naive_bayes import MultinomialNB imports ready-made features from a module/library.
  • texts = ["win money", "hello friend", "free prize", "project meeting"] stores a value in texts.
  • y = ["spam", "ham", "spam", "ham"] stores a value in y.
  • vectorizer = CountVectorizer() stores a value in vectorizer.
  • X = vectorizer.fit_transform(texts) stores a value in X.
  • model = MultinomialNB() stores a value in model.

Practical Uses

  • Spam detection.
  • Sentiment classification.
  • Fast text classification.

Common Mistakes

  • Training and testing the model on the same data.
  • Using an algorithm without understanding the input features.
  • Reporting only accuracy without checking actual mistakes and limitations.

Practice Tasks

  1. Program ko naive-bayes.py file me type karke run karein.
  2. Values change karke output compare karein.
  3. spam detection par ek छोटा example banayen.
  4. Logic ko apne words me 5 lines me likhein.

सारांश

Naive Bayes ko tab complete maanenge jab aap iska meaning, example, output aur practical use clearly explain kar saken.

← Back to Python Tutorial