MATLAB Answers

How to train MNSIT digit data using Naive Bayesian classifier (fitcnb)

30 views (last 30 days)
Sudheer Dunna
Sudheer Dunna on 30 Apr 2020
Answered: Puru Kathuria on 31 Jan 2021
How to train digitTrain4DArrayData (Inbuilt matlab digit data) using Naive bayesian (fitcnb).
[Xtrain,Ytrain]=digitTrain4DArrayData
Converted 4D data into 2D. ( Tried reading MNIST data from external .csv file also)
inputNaive=fitcnb(inputs,targets)
inputs ( 60000*784) double
targets (6000*1) (tried with double and categorial type)
While training it is showing some error like : A normal distribution cannot be fir for the combination of class 1 and predictor X1. The data has zero variance.

Answers (1)

Puru Kathuria
Puru Kathuria on 31 Jan 2021
Hi Sudheer,
As far as I understand there is no issue with the data or the function fitcnb. The error signifies that a few columns/features might have zero variance. The fit is based on fitting a normal distribution separately for each class and feature.
The within class variance must be positive in the underlying data and If any class has 0 variance for a feature, that normal fit is invaluable.
You might want to use a different model/classifier for this problem.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!