🟣 ML + AI  ·  Lesson 56

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.

← Back to Python Tutorial
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

💻 Live Code Editor

This page's programs are ready here — run them, edit them, and learn. No installation needed.
Powered by OneCompiler. The code loads into the editor automatically — press Run to see the output. If the editor does not open, open it in a new tab.