Bird
Raised Fist0
ML Pythonml~5 mins

Naive Bayes classifier in ML Python - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the main assumption behind the Naive Bayes classifier?
Naive Bayes assumes that all features are independent of each other given the class label. This means it treats each feature as if it does not affect or depend on any other feature.
Click to reveal answer
beginner
How does Naive Bayes use Bayes' theorem for classification?
Naive Bayes calculates the probability of each class given the input features using Bayes' theorem, then predicts the class with the highest probability.
Click to reveal answer
intermediate
What are the common types of Naive Bayes classifiers?
The common types are Gaussian Naive Bayes (for continuous data), Multinomial Naive Bayes (for count data like word counts), and Bernoulli Naive Bayes (for binary features).
Click to reveal answer
beginner
Why is Naive Bayes called 'naive'?
Because it makes a 'naive' assumption that all features are independent, which is often not true in real life, but this simplification makes the model simple and fast.
Click to reveal answer
intermediate
What is Laplace smoothing and why is it used in Naive Bayes?
Laplace smoothing adds a small value to feature counts to avoid zero probabilities, which can happen if a feature never appears in training data for a class.
Click to reveal answer
What does Naive Bayes assume about the features?
AFeatures are independent given the class
BFeatures are dependent on each other
CFeatures have no effect on the class
DFeatures are always continuous
Which type of Naive Bayes is best for text classification with word counts?
AMultinomial Naive Bayes
BGaussian Naive Bayes
CBernoulli Naive Bayes
DK-Nearest Neighbors
What problem does Laplace smoothing solve in Naive Bayes?
AFeature scaling
BOverfitting
CSlow training
DZero probability for unseen features
Which formula does Naive Bayes use to calculate class probabilities?
AP(class|features) = P(class) * P(features)
BP(class|features) = P(class) + P(features)
CP(class|features) = P(features|class) * P(class) / P(features)
DP(class|features) = P(features) / P(class)
Why is Naive Bayes often fast to train?
ABecause it uses deep neural networks
BBecause it assumes feature independence simplifying calculations
CBecause it uses complex feature interactions
DBecause it requires no training data
Explain how Naive Bayes classifier works in simple terms.
Think about how you guess a category based on clues that don't affect each other.
You got /3 concepts.
    Describe the role and importance of Laplace smoothing in Naive Bayes.
    Imagine you never saw a word before in spam emails, how do you handle that?
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main assumption made by the Naive Bayes classifier about the features in the data?
      easy
      A. Features must be numeric only
      B. All features are independent of each other
      C. Features are dependent on each other
      D. Features must be categorical only

      Solution

      1. Step 1: Understand Naive Bayes assumption

        Naive Bayes assumes that each feature contributes independently to the outcome, ignoring any correlation between features.
      2. Step 2: Identify the correct assumption

        This independence assumption simplifies calculations and makes the model 'naive'.
      3. Final Answer:

        All features are independent of each other -> Option B
      4. Quick Check:

        Feature independence [OK]
      Hint: Naive means simple independence assumption [OK]
      Common Mistakes:
      • Thinking features must be numeric
      • Assuming features depend on each other
      • Confusing Naive Bayes with other classifiers
      2. Which of the following is the correct way to import the Gaussian Naive Bayes classifier from scikit-learn in Python?
      easy
      A. from sklearn.naive_bayes import GaussianNB
      B. import GaussianNB from sklearn.naive_bayes
      C. from sklearn.naive_bayes import Gaussian
      D. import naive_bayes.GaussianNB

      Solution

      1. Step 1: Recall correct import syntax in Python

        Python uses 'from module import class' syntax to import specific classes.
      2. Step 2: Match correct class and module names

        The Gaussian Naive Bayes class is named GaussianNB and is in the sklearn.naive_bayes module.
      3. Final Answer:

        from sklearn.naive_bayes import GaussianNB -> Option A
      4. Quick Check:

        Correct import syntax [OK]
      Hint: Use 'from module import class' for sklearn imports [OK]
      Common Mistakes:
      • Using wrong import order
      • Misspelling class or module names
      • Trying to import non-existent classes
      3. Given the following Python code using GaussianNB, what will be the predicted class for the input [[1.5, 2.0]]?
      from sklearn.naive_bayes import GaussianNB
      import numpy as np
      
      X = np.array([[1, 2], [2, 3], [3, 4], [6, 7], [7, 8], [8, 9]])
      y = np.array([0, 0, 0, 1, 1, 1])
      model = GaussianNB()
      model.fit(X, y)
      pred = model.predict([[1.5, 2.0]])
      print(pred)
      medium
      A. [2]
      B. [1]
      C. [0]
      D. Error

      Solution

      1. Step 1: Understand training data and labels

        Points near [1, 2], [2, 3], [3, 4] belong to class 0; points near [6, 7], [7, 8], [8, 9] belong to class 1.
      2. Step 2: Predict class for [1.5, 2.0]

        This input is close to class 0 points, so GaussianNB predicts class 0.
      3. Final Answer:

        [0] -> Option C
      4. Quick Check:

        Nearby points class = 0 [OK]
      Hint: Predict class near closest training points [OK]
      Common Mistakes:
      • Confusing class labels
      • Expecting class 1 for distant points
      • Assuming error without checking code
      4. Consider this code snippet using MultinomialNB:
      from sklearn.naive_bayes import MultinomialNB
      X = [[1, 0, 2], [0, 1, 1]]
      y = [0, 1]
      model = MultinomialNB()
      model.fit(X, y)
      pred = model.predict([[1, -1, 2]])
      print(pred)
      What is the error in this code?
      medium
      A. Model.fit() requires numpy arrays, not lists
      B. MultinomialNB cannot be used with integer data
      C. Labels y must be strings, not integers
      D. Negative values in input features are not allowed

      Solution

      1. Step 1: Check input feature values for MultinomialNB

        MultinomialNB expects non-negative feature counts; negative values cause errors.
      2. Step 2: Identify negative value in prediction input

        The input [[1, -1, 2]] contains -1, which is invalid for MultinomialNB.
      3. Final Answer:

        Negative values in input features are not allowed -> Option D
      4. Quick Check:

        Negative features invalid [OK]
      Hint: MultinomialNB needs non-negative counts [OK]
      Common Mistakes:
      • Thinking labels must be strings
      • Assuming lists cause errors
      • Using MultinomialNB with negative values
      5. You have a dataset with text messages labeled as 'spam' or 'not spam'. Which Naive Bayes variant is best suited for this text classification task and why?
      hard
      A. MultinomialNB, because it models word counts effectively
      B. GaussianNB, because it handles continuous numeric data well
      C. BernoulliNB, because it models binary features like word presence
      D. ComplementNB, because it is designed for imbalanced datasets

      Solution

      1. Step 1: Understand text data representation

        Text messages are often represented as word count vectors for classification.
      2. Step 2: Match Naive Bayes variant to data type

        MultinomialNB works well with count data, modeling frequency of words in messages.
      3. Final Answer:

        MultinomialNB, because it models word counts effectively -> Option A
      4. Quick Check:

        Text counts use MultinomialNB [OK]
      Hint: Use MultinomialNB for word count features [OK]
      Common Mistakes:
      • Choosing GaussianNB for text data
      • Confusing BernoulliNB with MultinomialNB
      • Ignoring data type when selecting model
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard