Description
- In assignment 4 you shall implement the Naïve Bayes machine learning algorithm and use it on some datasets
- It can be implemented in any programming language you like
- You can work alone or in group of two students
- You shall present your application and code at an oral examination
- Note that you are not required to build a REST web service for this assignment
Requirements
Grade | Requirements |
---|---|
E |
|
C-D |
|
A-B |
|
Code structure requirements
NaiveBayes class | |
---|---|
void fit ( X:float[][], y:int[] ) | Trains the model on input examples X and labels y |
preds:int[] predict ( X:float[][] ) | Classifies examples X and returns a list of predictions |
Other methods | |
---|---|
accuracy:float accuracy_score ( preds:int[], y:int[] ) | Calculates accuracy score for a list of predictions |
conf_matrix:int[][] confusion_matrix ( preds:int[], y:int[] ) | Generates a confusion matrix and returns the result as an integer matrix |
preds:int[] crossval_predict ( X:float[][], y:int[], folds:int ) | Runs n-fold cross-validation and returns a list of predictions |
Test cases
You can verify your results with the results in Web ML Experimenter. The Iris dataset is built-in in Web ML (click the Try Iris dataset button), and the Banknote authentication can be uploaded from the csv file. Note that the cross-validation results can differ slightly due to differences in how the data is split into folds, but the accuracy you get should be almost similar to the accuracy in Web ML.