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.
| 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.
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
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
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.
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
| 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
Basic idea: pehle data तैयार करें, phir Python logic apply करें, aur finally result display करें.
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
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
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.
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
- Program ko
naive-bayes.pyfile me type karke run karein. - Values change karke output compare karein.
- spam detection par ek छोटा example banayen.
- 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.