Contents
Description of demo_binaryclass_bagging.m
Demonstrates bootrap aggregation of stump and logistic regression classifiers on datasets with challenging class structure
clear all close all generateData_circular
usage of stump binary classification (circular dataset)
options_st = []; model_st = ml_binaryclass_stump(Xtrain, ytrain, options_st); yhat_st = model_st.predict(model_st, Xtest); testError_st = mean(yhat_st ~= ytest); fprintf('Averaged misclassification test error with %s is: %.3f\n', ... model_st.name, testError_st); figure; plot2DClassifier(Xtrain, ytrain, model_st);
Averaged misclassification test error with Binary Decision Stump is: 0.436

usage of stump binary classification with bagging (circular dataset)
options_bg.nModels = 20; options_bg.subModel = @ml_binaryclass_stump; model_bg = ml_binaryclass_bagging(Xtrain, ytrain, options_bg); yhat_bg = model_bg.predict(model_bg, Xtest); testError_bg = mean(yhat_bg ~= ytest); fprintf('Averaged misclassification test error with %s is: %.3f\n', ... model_bg.name, testError_bg) figure; plot2DClassifier(Xtrain, ytrain, model_bg); hold on; for k = 1:length(model_bg.trainModels); plot2DLine(model_bg.trainModels{k}); alpha(0) end plot2DClassifier_red(Xtrain, ytrain, model_bg); generateData_robustness
Averaged misclassification test error with Binary Classification with Bagged Binary Decision Stump is: 0.351

usage of logistic regression (robustness data)
options_lg = []; options_lg.addBias = 1; model_lg = ml_binaryclass_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); figure; plot2DClassifier(Xtrain, ytrain, model_lg);
Averaged misclassification test error with Logistic Regression is: 0.120

usage of logistic regression with bagging (robustness data)
options_bg = []; options_bg.nModels = 20; options_bg.subModel = @ml_binaryclass_logistic; options_bg.subOptions.addBias = 1; model_bg = ml_binaryclass_bagging(Xtrain, ytrain, options_bg); yhat_bg = model_bg.predict(model_bg, Xtest); testError_bg = mean(yhat_bg ~= ytest); fprintf('Averaged misclassification test error with %s is: %.3f\n', ... model_bg.name, testError_bg) figure; plot2DClassifier(Xtrain, ytrain, model_bg); hold on; for k = 1:length(model_bg.trainModels); plot2DLine(model_bg.trainModels{k}); alpha(0) end plot2DClassifier_red(Xtrain, ytrain, model_bg);
Averaged misclassification test error with Binary Classification with Bagged Logistic Regression is: 0.133
