Пример 2. В качестве второго примера возьмем четыре плохо разделимых класса

В качестве второго примера возьмем четыре плохо разделимых класса. Классы обладают большой дисперсией. Можно наблюдать области, в которых элементы различны классов проникают в чужие классы.

%% Example 2% Classes cross each other in this example. Algorithm makes misstakes in% classification. %% generate training sample% generating 4 sample normal classesXL1 = GetNormClass(100,[5,0],[10,2]); XL2 = GetNormClass(100,[5,10],[10,2]);XL3 = GetNormClass(100,[0,5],[4,4]);XL4 = GetNormClass(100,[10,5],[4,4]); XL = [XL1; XL2; XL3; XL4];YL = [repmat(1,100,1);repmat(2,100,1);repmat(3,100,1);repmat(4,100,1)]; %% generate control data with the same distributionX1 = GetNormClass(100,[5,0],[10,2]); X2 = GetNormClass(100,[5,10],[10,2]);X3 = GetNormClass(100,[0,5],[4,4]);X4 = GetNormClass(100,[10,5],[4,4]);X = [X1; X2; X3; X4];% X is going to be changed in getting classification. X0 is needed to plot data. X0 = X; %% getting classification%% features standardization [p, m] = size(X); [n, m] = size(XL); Z = [XL; X]; Z =FeaturesStand(Z); XL = Z(1:n,:); X = Z(n+1:n+p,:);%% choosing parametrsPP = ParAdjust(XL, YL);PP.XL = XL;PP.YL = YL;%% classificationY = WeightKNN(X, PP); %% results visuaisation%% plotting real classes of objectsplot(X1(:,1),X1(:,2),'*r');hold onplot(X2(:,1),X2(:,2),'*b');plot(X3(:,1),X3(:,2),'*g');plot(X4(:,1),X4(:,2),'*y');%% plotting classification resultsplot(X0(Y == 1,1),X0(Y == 1,2),'or');plot(X0(Y == 2,1),X0(Y == 2,2),'ob');plot(X0(Y == 3,1),X0(Y == 3,2),'og');plot(X0(Y == 4,1),X0(Y == 4,2),'oy');%% count errorserrors = sum([Y(1:100) == 1; Y(101:200) == 2; Y(201:300) == 3; Y(301:400) == 4]) hold off

На графике по осям отложены величины признаков объектов, различные классы показаны крестиками различных цветов, а результат классификации показан кружочками соотвествующих цветов. Алгоритм допустил 10% ошибок при обучении и 9% ошибок на контрольной выборке.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: