Визуализация поверхностей принятия решений различных классификаторов

Этот пример показывает, как построить поверхность принятия решений различных алгоритмов классификации.

Загрузите набор данных радужки Фишера.

load fisheriris
X = meas(:,1:2);
y = categorical(species);
labels = categories(y);

X является числовой матрицей, которая содержит два измерения лепестков для 150 ирисов. Y - массив ячеек из векторов символов, который содержит соответствующие виды радужной оболочки.

Визуализируйте данные с помощью графика поля точек. Сгруппировать переменные по видам радужки.

gscatter(X(:,1),X(:,2),species,'rgb','osd');
xlabel('Sepal length');
ylabel('Sepal width');

Figure contains an axes. The axes contains 3 objects of type line. These objects represent setosa, versicolor, virginica.

Обучите четыре различных классификатора и сохраните модели в массиве ячеек.

classifier_name = {'Naive Bayes','Discriminant Analysis','Classification Tree','Nearest Neighbor'};

Обучите наивную модель Байеса.

classifier{1} = fitcnb(X,y);

Обучите классификатор дискриминантного анализа.

classifier{2} = fitcdiscr(X,y);

Обучите дерево классификационных решений.

classifier{3} = fitctree(X,y);

Обучите k-ближайших соседей классификатор.

classifier{4} = fitcknn(X,y);

Создайте сетку точек, охватывающих все пространство в некоторых границах фактических значений данных.

x1range = min(X(:,1)):.01:max(X(:,1));
x2range = min(X(:,2)):.01:max(X(:,2));
[xx1, xx2] = meshgrid(x1range,x2range);
XGrid = [xx1(:) xx2(:)];

Предсказать виды радужки для каждого наблюдения в XGrid использование всех классификаторов. Постройте график графика поля точек результатов.

for i = 1:numel(classifier)
   predictedspecies = predict(classifier{i},XGrid);

   subplot(2,2,i);
   gscatter(xx1(:), xx2(:), predictedspecies,'rgb');

   title(classifier_name{i})
   legend off, axis tight
end

legend(labels,'Location',[0.35,0.01,0.35,0.05],'Orientation','Horizontal')

Figure contains 4 axes. Axes 1 with title Naive Bayes contains 3 objects of type line. These objects represent setosa, versicolor, virginica. Axes 2 with title Discriminant Analysis contains 3 objects of type line. These objects represent setosa, versicolor, virginica. Axes 3 with title Classification Tree contains 3 objects of type line. These objects represent setosa, versicolor, virginica. Axes 4 with title Nearest Neighbor contains 3 objects of type line. These objects represent setosa, versicolor, virginica.

Каждый алгоритм классификации генерирует различные правила принятия решений. Поверхность принятия решений может помочь вам визуализировать эти правила.

См. также

Функции

Похожие темы