load UNSdata
% # построить прогнозные атрибуты и целевой класс
vars = {'STG' 'SCG' 'STR' 'LPR' 'PEG'};
x = [STG SCG STR LPR PEG]; %# mixed continous/discrete data
y = cellstr(num2str(UNS)); %# class labels
% # дерево решений по классификации поездов
t = fitctree(x, y,'ClassNames',vars,'CategoricalPredictors','all', 'prune','off');
view(t)
% # test
yPredicted = predict(t, x);
ConfusionMatrix = confusionmat(y,yPredicted); %# confusion matrix
N = sum(ConfusionMatrix(:));
err = ( N-sum(diag(ConfusionMatrix)) ) / N; %# testing error
% # обрезать дерево, чтобы избежать переобучения
tt = prune(t, 'level',3);
view(tt)
% # предсказать новый невидимый экземпляр
inst = [0.2 0.2 0.7 0.3 0.6];
predict(tt, inst) %# pred = 'UNS'