## Contents

- Description of demo_multiclass_MLP.m
- usage of multi-class logistic classification
- usage of MLP classification
- usage of multi-class logistic classification
- usage of MLP classification

## Description of demo_multiclass_MLP.m

Comparison of multiclass classification using multiclass logistic regression and multi-layer perceptron algorithms

    clear all
    close all
    generateData_5grid

## usage of multi-class logistic classification

    options_lg = [];
    options_lg.addBias = 1;
    model_lg = ml_multiclass_logistic(Xtrain, ytrain, options_lg);
    yhat_lg = model_lg.predict(model_lg, Xtest);
    testError_lg = mean(yhat_lg ~= ytest);
    fprintf('Averaged misclassification test error with %s is: %.3f\n', model_lg.name, testError_lg);

    Averaged misclassification test error with Multiclass Logistic Classification is: 0.062

## usage of MLP classification

    options_mlp = [];
    options_mlp.nHidden = [3 3 5];
    model_mlp = ml_multiclass_MLP(Xtrain, ytrain, options_mlp);
    yhat_mlp = model_mlp.predict(model_mlp, Xtest);
    testError_mlp = mean(abs(yhat_mlp ~= ytest));
    fprintf('Averaged misclassification test error with %s is: %.3f\n', model_mlp.name, testError_mlp);

    Averaged misclassification test error with Multi-layer Perceptron Classification is: 0.084

    figure;
    plotClassifier(Xtrain, ytrain, model_lg);
    figure;
    plotClassifier(Xtrain, ytrain, model_mlp);

    generateData_gridMulti

## usage of multi-class logistic classification

    options_lg = [];
    options_lg.addBias = 1;
    model_lg = ml_multiclass_logistic(Xtrain, ytrain, options_lg);
    yhat_lg = model_lg.predict(model_lg, Xtest);
    testError_lg = mean(yhat_lg ~= ytest);
    fprintf('Averaged misclassification test error with %s is: %.3f\n', model_lg.name, testError_lg);

    Averaged misclassification test error with Multiclass Logistic Classification is: 0.289

## usage of MLP classification

    options_mlp = [];
    options_mlp.nHidden = [5 5 5 5];
    model_mlp = ml_multiclass_MLP(Xtrain, ytrain, options_mlp);
    yhat_mlp = model_mlp.predict(model_mlp, Xtest);
    testError_mlp = mean(yhat_mlp ~= ytest);
    fprintf('Averaged misclassification test error with %s is: %.3f\n', model_mlp.name, testError_mlp);

    Averaged misclassification test error with Multi-layer Perceptron Classification is: 0.324

    figure;
    plotClassifier(Xtrain, ytrain, model_lg);
    figure;
    plotClassifier(Xtrain, ytrain, model_mlp);