🟣 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
| Point | Details |
|---|---|
| Course Area | Machine Learning + AI Concepts used for prediction, classification, clustering and AI-based projects. |
| Main Use | spam detection |
| Example File | naive-bayes.py |
| Practice Focus | Run, 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.
| Term | Meaning |
|---|---|
| probability | Chance value between 0 and 1. |
| Bayes theorem | Probability rule used to update belief using evidence. |
| classification | Predicting a category or class. |
| text | text is an important term in this topic. |
| spam detection | spam 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 CountVectorizerimports ready-made features from a module/library.from sklearn.naive_bayes import MultinomialNBimports 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
- Type the program in
naive-bayes.pyand run it. - Change input values or sample data and observe the new output.
- Create one example related to spam detection.
- 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.
💻 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.