Professional Documents
Culture Documents
Projekat
Projekat
Вештачке
интелигенције
Следећи део задатка треба урадити исто као у претходном делу само за случај када је:
P1=0.8, P2=0.2 и P1=0.2, P2=0.8 (Слика 4).
б) Случај када је 𝜮𝟏 ≠ 𝜮𝟐
Вредности:
2 1
𝛴1 = [ ]
1 1
2 −1
𝛴2 = [ ]
−1 1
А средње вредности су
−1
𝑀1 = [ ]
3
3
𝑀2 = [ ]
1
-d2 криве
Поново генеришемо d2 криве за вредности 1,4,9 и приказујемо их заједно са генерисаним
одбирцима у 2D простору.Прво налазимо инверзну коваријациону матрицу, а затим
одређујемо d2криву у тачкама 1,4,9(слика 6).
-Процена грешки
У задњем делу овог задатка треба проценити вероватноћу грешке класификације за све три
вредности прага. Укупна вероватноћа грешке рачуна се по формули:
𝜀 = 𝑃1 𝜀1 + 𝑃2 𝜀2
Где су P1и P2 априорне вероватноће појаве класа, а 𝜀1 и 𝜀2 су вероватноће грешке првог и
другог типа.
Вероватноћа грешке за случај када је P1 = P2 = 0.5 je 0.0212
Вероватноћа грешке за случај када је P1 = 0.8 P2 = 0.2 je 0.0132
Вероватноћа грешке за случај када је P1 = 0.2 P2 = 0.8 je 0.0189
Вероватноћа грешке варира при сваком поновном покретању због генерисања нових
случајних одбирака.
2. Задатак
Други задатак се ради са унапред датом скупу података форми фајла IrisBaza.data. Опис
скупа: На основу ширине и дужине латица и ширине и дужине листића биљка Ирис се
може класификовати у три врсте: Iris Versicolor, Iris Setosa и Iris Virginica. Извршена је
редукција димензија, тако да се ове класе могу издвојити на основу два обележја. Скуп је
дат у следећој форми: Прво обележје класе је у првој колони, друго обележје је у другој
колони, док се у трећој колони налазе бројеви 1, 2 или 3, у зависности од тога која класа је
у питању. Број 1 означава да је у питању Iris Setosa, број 2 означава да је у питању Iris
Versicolor, док број 3 означава да је у питању Iris Virginica.
Прво је потребно приказати ове класе 2D простору различитим знаковима и бојама и
помоћу легенде приказати који одбирци припадају којој класи. Преко функције load
учитавамо скуп података у матрицу. Коришћене су for петље како би издвојили податке
три нове матрице на основу вредности треће колоне (слика 9).
У следећој тачки 2. задатка потребно је приказати функције густине вероватноће за све три
класе. То је урађено преко функције histfit и приказано на сл. слици (слика 10).
Слика 10–Функције густине вероватноће
N=700;
X = randn(N,2);
X = X';
Sigma=[2 -1;-1 1];
M1=[-1;4];
M2=[3;1];
[Fi1,Lambda1]=eig(Sigma);
A1=Fi1*sqrt(Lambda1);%formiramo transformacionu matricu
for i=1:N;
V(:,i)=A1*X(:,i)+M1;
end;
for i=1:N;
Y(:,i)=A1*X(:,i)+M2;
end;
figure(1)
plot(V(1,:),V(2,:),'o'), hold on
plot(Y(1,:),Y(2,:),'*'), hold on
xlabel('x');
ylabel('y');
title('Prikaz dve klase u 2D prostoru');
grid
-Други део
close all;
clear all;
clc;
N=700;
X = randn(N,2);
X = X';
Sigma=[2 -1;-1 1];
M1=[-1;4];
M2=[3;1];
[Fi1,Lambda1]=eig(Sigma);
A1=Fi1*sqrt(Lambda1);%formiramo transformacionu matricu
for i=1:N;
V(:,i)=A1*X(:,i)+M1;
end;
for i=1:N;
Y(:,i)=A1*X(:,i)+M2;
end;
%d^2 kriva
invSigma=inv(Sigma);
[x1,x2]=meshgrid(-8:.1:10,-5:.1:10);
dx=(invSigma(1,1)*(x1-M2(1))+invSigma(1,2)*(x2-M2(2))).*(x1-M2(1))+(invSigma(2,1)*(x1-
M2(1))+invSigma(2,2)*(x2-M2(2))).*(x2-M2(2));
dx2=(invSigma(1,1)*(x1-M1(1))+invSigma(1,2)*(x2-M1(2))).*(x1-M1(1))+(invSigma(2,1)*(x1-
M1(1))+invSigma(2,2)*(x2-M1(2))).*(x2-M1(2));
figure(2)
plot(V(1,:),V(2,:),'ob'), hold on
plot(Y(1,:),Y(2,:),'*r'), hold on
contour(x1,x2,dx,[1,4,9],'g'); %crtamo d^2 krivu u tackama 1, 4 i 9
contour(x1,x2,dx2,[1,4,9],'m'); %crtamo d^2 krivu u tackama 1, 4 i 9
title('Prikaz d^2 kriva');
grid
–Трећи део
close all;
clear all;
clc;
M1=[-1;4];
M2=[3;1];
[Fi1,Lambda1]=eig(Sigma);
A1=Fi1*sqrt(Lambda1);%formiramo transformacionu matricu
for i=1:N;
V(:,i)=A1*X(:,i)+M1;
end;
for i=1:N;
Y(:,i)=A1*X(:,i)+M2;
end;
m11=M1(1);
m12=M1(2);
m21=M2(1);
m22=M2(2);
M3=M2-M1;
m1=M3(1);
m2=M3(2);
Sigma1=(Sigma)^-1;
x1=-6:8;
y=[-(m1*Sigma1(1,1)+m2*Sigma1(2,1))*x1-0.5*(M1'*Sigma1*M1-
M2'*Sigma1*M2)]/(m1*Sigma1(1,2)+m2*Sigma1(2,2));
figure(2)
plot(V(1,:),V(2,:),'*'), hold on
plot(Y(1,:),Y(2,:),'*'), hold on
plot(x1,y,'k', 'LineWidth',3)
xlabel('x1');
ylabel('x2');
title('Bajesovski klasifikator P1=P2=0.5');
grid
-Четврти део
close all;
clear all;
clc;
N=700;
X = randn(N,2);
X = X';
Sigma=[2 -1;-1 1];
M1=[-1;4];
M2=[3;1];
[Fi1,Lambda1]=eig(Sigma);
A1=Fi1*sqrt(Lambda1);%formiramo transformacionu matricu
for i=1:N;
V(:,i)=A1*X(:,i)+M1;
end;
for i=1:N;
Y(:,i)=A1*X(:,i)+M2;
end;
m11=M1(1);
m12=M1(2);
m21=M2(1);
m22=M2(2);
M3=M2-M1;
m1=M3(1);
m2=M3(2);
Sigma1=(Sigma)^-1;
x1=-6:8;
y=[-(m1*Sigma1(1,1)+m2*Sigma1(2,1))*x1-0.5*(M1'*Sigma1*M1-
M2'*Sigma1*M2)]/(m1*Sigma1(1,2)+m2*Sigma1(2,2));
y1=[(log(0.8/0.2))-(m1*Sigma1(1,1)+m2*Sigma1(2,1))*x1-0.5*(M1'*Sigma1*M1-
M2'*Sigma1*M2)]/(m1*Sigma1(1,2)+m2*Sigma1(2,2));
y2=[(log(0.2/0.8))-(m1*Sigma1(1,1)+m2*Sigma1(2,1))*x1-0.5*(M1'*Sigma1*M1-
M2'*Sigma1*M2)]/(m1*Sigma1(1,2)+m2*Sigma1(2,2));
figure(2)
plot(V(1,:),V(2,:),'*'), hold on
plot(Y(1,:),Y(2,:),'*'), hold on
plot(x1,y,'k', 'LineWidth',3)
plot(x1,y1,'k--', 'LineWidth',3)
plot(x1,y2,'k-.', 'LineWidth',3)
legend('Elementi prve klase','Elementi druge klase','P1=0.5 P2=0.5','P1=0.8 P2=0.2','P1=0.2
P2=0.8')
xlabel('x1');
ylabel('x2');
title('Bajesovski klasifikator za tri različite vrednosti praga');
grid
-Пети део
close all;
clear all;
clc;
N=700;
X = randn(N,2);
X = X';
Sigma=[2 -1;-1 1];
M1=[-1;4];
M2=[3;1];
[Fi1,Lambda1]=eig(Sigma);
A1=Fi1*sqrt(Lambda1);%formiramo transformacionu matricu
for i=1:N;
V(:,i)=A1*X(:,i)+M1;
end;
for i=1:N;
Y(:,i)=A1*X(:,i)+M2;
end;
m11=M1(1);
m12=M1(2);
m21=M2(1);
m22=M2(2);
M3=M2-M1;
m1=M3(1);
m2=M3(2);
Sigma1=(Sigma)^-1;
x1=-6:8;
%Prva klasa
x1p=V(1,:);
x2p=V(2,:);
h1=(m1*Sigma1(1,1)+m2*Sigma1(2,1))*x1p+(m1*Sigma1(1,2)+m2*Sigma1(2,2))*x2p+0.5*(M
1'*Sigma1*M1-M2'*Sigma1*M2);
greska1=0;
for i=1:N
if h1(i)>0
greska1=greska1+1;%pogresno klasifikovani
end
end
%Druga klasa
x1p1=Y(1,:);
x2p1=Y(2,:);
h2=(m1*Sigma1(1,1)+m2*Sigma1(2,1))*x1p1+(m1*Sigma1(1,2)+m2*Sigma1(2,2))*x2p1+0.5*
(M1'*Sigma1*M1-M2'*Sigma1*M2);
greska2=0;
for i=1:N
if h2(i)<0
greska2=greska2+1;%pogresno klasifikovani
end
end
%Greska klasifikatora
P1=(greska1/N)*100;
P2=(greska2/N)*100;
T1=100-P1;%tacnost prvog klasifikatora u procentima
T2=100-P2; %tacnost drugog klasifikatora u procentima
%Druga klasa
x11p11=Y(1,:);
x21p11=Y(2,:);
h2=(m1*Sigma1(1,1)+m2*Sigma1(2,1))*x11p11+(m1*Sigma1(1,2)+m2*Sigma1(2,2))*x21p11+
0.5*(M1'*Sigma1*M1-M2'*Sigma1*M2);
greska21=0;
for i=1:N
if h2(i)<log(0.8/0.2)
greska21=greska21+1;%pogresno klasifikovani
end
end
%Greska klasifikatora
P11=(greska11/N)*100;
P21=(greska21/N)*100;
T11=100-P11;%tacnost prvog klasifikatora u procentima
T21=100-P21; %tacnost drugog klasifikatora u procentima
%Druga klasa
x12p12=Y(1,:);
x22p12=Y(2,:);
h2=(m1*Sigma1(1,1)+m2*Sigma1(2,1))*x12p12+(m1*Sigma1(1,2)+m2*Sigma1(2,2))*x22p12+
0.5*(M1'*Sigma1*M1-M2'*Sigma1*M2);
greska22=0;
for i=1:N
if h2(i)<log(0.2/0.8)
greska22=greska22+1;%pogresno klasifikovani
end
end
%Greska klasifikatora
P12=(greska12/N)*100;
P22=(greska22/N)*100;
T12=100-P12;%tacnost prvog klasifikatora u procentima
T22=100-P22; %tacnost drugog klasifikatora u procentima
-Први део
close all;
clear all;
clc;
N=700;
X = randn(N,2);
X = X';
Sigma1=[2 1;1 1];
Sigma2=[2 -1;-1 1];
M1=[-1;3];
M2=[3;1];
[Fi1,Lambda1]=eig(Sigma1);
A1=Fi1*sqrt(Lambda1);%formiramo transformacionu matricu
[Fi2,Lambda2]=eig(Sigma2);
A2=Fi2*sqrt(Lambda2);%formiramo transformacionu matricu
for i=1:N;
V(:,i)=A1*X(:,i)+M1;
end;
for i=1:N;
Y(:,i)=A2*X(:,i)+M2;
end;
figure(1)
plot(V(1,:),V(2,:),'bo'), hold on
plot(Y(1,:),Y(2,:),'r*'), hold on
xlabel('x1');
ylabel('x2');
title('Prikaz dve klase u x1 x2 prostoru');
grid
-Други део
close all;
clear all;
clc;
N=700;
X = randn(N,2);
X = X';
Sigma1=[2 1;1 1];
Sigma2=[2 -1;-1 1];
M1=[-1;3];
M2=[3;1];
[Fi1,Lambda1]=eig(Sigma1);
A1=Fi1*sqrt(Lambda1);%formiramo transformacionu matricu
[Fi2,Lambda2]=eig(Sigma2);
A2=Fi2*sqrt(Lambda2);%formiramo transformacionu matricu
for i=1:N;
V(:,i)=A1*X(:,i)+M1;
end;
for i=1:N;
Y(:,i)=A2*X(:,i)+M2;
end;
invSigma1=inv(Sigma1);
invSigma2=inv(Sigma2);
[x1,x2]=meshgrid(-10:.1:5,-5:.1:15);%odredjujemo 2D prostor gde cemo crtati d^2 krivu
dx1=(invSigma1(1,1)*(x1-M1(1))+invSigma1(1,2)*(x2-M1(2))).*(x1-
M1(1))+(invSigma1(2,1)*(x1-M1(1))+invSigma1(2,2)*(x2-M1(2))).*(x2-M1(2));
dx2=(invSigma2(1,1)*(x1-M2(1))+invSigma2(1,2)*(x2-M2(2))).*(x1-
M2(1))+(invSigma2(2,1)*(x1-M2(1))+invSigma2(2,2)*(x2-M2(2))).*(x2-M2(2));
plot(V(1,:),V(2,:),'bo'), hold on
plot(Y(1,:),Y(2,:),'r*'), hold on
contour(x1,x2,dx1,[1,4,9],'m','LineWidth',3); %crtamo d^2 krivu u tackama 1, 4 i 9
contour(x1,x2,dx2,[1,4,9],'g','LineWidth',3); %crtamo d^2 krivu u tackama 1, 4 i 9
title('Prikaz klasa i d^2 kriva')
grid
-Трећи део
close all;
clear all;
clc;
N=700;
X = randn(N,2);
X = X';
Sigma1=[2 1;1 1];
Sigma2=[2 -1;-1 1];
M1=[-1;3];
M2=[3;1];
[Fi1,Lambda1]=eig(Sigma1);
A1=Fi1*sqrt(Lambda1);%formiramo transformacionu matricu
[Fi2,Lambda2]=eig(Sigma2);
A2=Fi2*sqrt(Lambda2);%formiramo transformacionu matricu
for i=1:N;
V(:,i)=A1*X(:,i)+M1;
end;
for i=1:N;
Y(:,i)=A2*X(:,i)+M2;
end;
m11=M1(1);
m12=M1(2);
m21=M2(1);
m22=M2(2);
Sigma11=(Sigma1)^-1;
Sigma21=(Sigma2)^-1;
figure(4)
plot(V(1,:),V(2,:),'bo'), hold on
plot(Y(1,:),Y(2,:),'r*'), hold on
[x1,x2]=meshgrid(-8:0.03205:8,-4:0.02805:10);
y=0.5*[[(x1-m11)*Sigma11(1,1)+(x2-m12)*Sigma11(2,1)].*(x1-m11)+[(x1-
m11)*Sigma11(1,2)+(x2-m12)*Sigma11(2,2)].*(x2-m12)]-0.5*[[(x1-m21)*Sigma21(1,1)+(x2-
m22)*Sigma21(2,1)].*(x1-m21)+[(x1-m21)*Sigma21(1,2)+(x2-m22)*Sigma21(2,2)].*(x2-
m22)]+0.5*log(det(Sigma1)/det(Sigma2));
d=contour(x1,x2,y,[0,0],'k','LineWidth',2);
xlabel('x1');
ylabel('x2');
title('Klasifikacija za P1=P2=0.5');
grid
-Четврти део
close all;
clear all;
clc;
N=700;
X = randn(N,2);
X = X';
Sigma1=[2 1;1 1];
Sigma2=[2 -1;-1 1];
M1=[-1;3];
M2=[3;1];
[Fi1,Lambda1]=eig(Sigma1);
A1=Fi1*sqrt(Lambda1);%formiramo transformacionu matricu
[Fi2,Lambda2]=eig(Sigma2);
A2=Fi2*sqrt(Lambda2);%formiramo transformacionu matricu
for i=1:N;
V(:,i)=A1*X(:,i)+M1;
end;
for i=1:N;
Y(:,i)=A2*X(:,i)+M2;
end;
m11=M1(1);
m12=M1(2);
m21=M2(1);
m22=M2(2);
Sigma11=(Sigma1)^-1;
Sigma21=(Sigma2)^-1;
figure(4)
plot(V(1,:),V(2,:),'bo'), hold on
plot(Y(1,:),Y(2,:),'r*'), hold on
[x1,x2]=meshgrid(-6:0.03205:8,-4:0.02805:8);
y=0.5*[[(x1-m11)*Sigma11(1,1)+(x2-m12)*Sigma11(2,1)].*(x1-m11)+[(x1-
m11)*Sigma11(1,2)+(x2-m12)*Sigma11(2,2)].*(x2-m12)]-0.5*[[(x1-m21)*Sigma21(1,1)+(x2-
m22)*Sigma21(2,1)].*(x1-m21)+[(x1-m21)*Sigma21(1,2)+(x2-m22)*Sigma21(2,2)].*(x2-
m22)]+0.5*log(det(Sigma1)/det(Sigma2));
y1=0.5*[[(x1-m11)*Sigma11(1,1)+(x2-m12)*Sigma11(2,1)].*(x1-m11)+[(x1-
m11)*Sigma11(1,2)+(x2-m12)*Sigma11(2,2)].*(x2-m12)]-0.5*[[(x1-m21)*Sigma21(1,1)+(x2-
m22)*Sigma21(2,1)].*(x1-m21)+[(x1-m21)*Sigma21(1,2)+(x2-m22)*Sigma21(2,2)].*(x2-
m22)]+0.5*log(det(Sigma1)/det(Sigma2))+log(0.8/0.2);
y2=0.5*[[(x1-m11)*Sigma11(1,1)+(x2-m12)*Sigma11(2,1)].*(x1-m11)+[(x1-
m11)*Sigma11(1,2)+(x2-m12)*Sigma11(2,2)].*(x2-m12)]-0.5*[[(x1-m21)*Sigma21(1,1)+(x2-
m22)*Sigma21(2,1)].*(x1-m21)+[(x1-m21)*Sigma21(1,2)+(x2-m22)*Sigma21(2,2)].*(x2-
m22)]+0.5*log(det(Sigma1)/det(Sigma2))+log(0.2/0.8);
d=contour(x1,x2,y,[0,0],'k','LineWidth',2);
d1=contour(x1,x2,y1,[0,0],'k--','LineWidth',2);
d2=contour(x1,x2,y2,[0,0],'k-.','LineWidth',2);
xlabel('x1');
ylabel('x2');
legend('Elementi prve klase','Elementi druge klase','P1=0.5 P2=0.5','P1=0.8 P2=0.2','P1=0.2
P2=0.8')
title('Tri klasifikatora');
grid
-Пети део
close all;
clear all;
clc;
N=700;
X = randn(N,2);
X = X';
Sigma1=[2 1;1 1];
Sigma2=[2 -1;-1 1];
M1=[-1;3];
M2=[3;1];
[Fi1,Lambda1]=eig(Sigma1);
A1=Fi1*sqrt(Lambda1);%formiramo transformacionu matricu
[Fi2,Lambda2]=eig(Sigma2);
A2=Fi2*sqrt(Lambda2);%formiramo transformacionu matricu
for i=1:N;
V(:,i)=A1*X(:,i)+M1;
end;
for i=1:N;
Y(:,i)=A2*X(:,i)+M2;
end;
m11=M1(1);
m12=M1(2);
m21=M2(1);
m22=M2(2);
Sigma11=(Sigma1)^-1;
Sigma21=(Sigma2)^-1;
%Prebrojavanje za 0.5
%Prva klasa
for i=1:N
x1p(i)=V(1,i);
x2p(i)=V(2,i);
h1(i)=0.5*[[(x1p(i)-m11)*Sigma11(1,1)+(x2p(i)-m12)*Sigma11(2,1)].*(x1p(i)-m11)+[(x1p(i)-
m11)*Sigma11(1,2)+(x2p(i)-m12)*Sigma11(2,2)].*(x2p(i)-m12)]-0.5*[[(x1p(i)-
m21)*Sigma21(1,1)+(x2p(i)-m22)*Sigma21(2,1)].*(x1p(i)-m21)+[(x1p(i)-
m21)*Sigma21(1,2)+(x2p(i)-m22)*Sigma21(2,2)].*(x2p(i)-
m22)]+0.5*log(det(Sigma1)/det(Sigma2));
end
greska1=0;
for i=1:N
if h1(i)>0
greska1=greska1+1;%pogresno klasifikovani
end
end
%Druga klasa
for i=1:N
x1p(i)=Y(1,i);
x2p(i)=Y(2,i);
h2(i)=0.5*[[(x1p(i)-m11)*Sigma11(1,1)+(x2p(i)-m12)*Sigma11(2,1)].*(x1p(i)-m11)+[(x1p(i)-
m11)*Sigma11(1,2)+(x2p(i)-m12)*Sigma11(2,2)].*(x2p(i)-m12)]-0.5*[[(x1p(i)-
m21)*Sigma21(1,1)+(x2p(i)-m22)*Sigma21(2,1)].*(x1p(i)-m21)+[(x1p(i)-
m21)*Sigma21(1,2)+(x2p(i)-m22)*Sigma21(2,2)].*(x2p(i)-
m22)]+0.5*log(det(Sigma1)/det(Sigma2));
end
greska2=0;
for i=1:N
if h2(i)<0
greska2=greska2+1;%pogresno klasifikovani
end
end
%Greska klasifikatora
P1=(greska1/N)*100;
P2=(greska2/N)*100;
T1=100-P1;%tacnost prvog klasifikatora u procentima
T2=100-P2; %tacnost drugog klasifikatora u procentima
Verovatnoca1 = 0.5*(100-T1)/100 + 0.5*(100-T2)/100
%Prva klasa
for i=1:N
x1p(i)=V(1,i);
x2p(i)=V(2,i);
h1(i)=0.5*[[(x1p(i)-m11)*Sigma11(1,1)+(x2p(i)-m12)*Sigma11(2,1)].*(x1p(i)-m11)+[(x1p(i)-
m11)*Sigma11(1,2)+(x2p(i)-m12)*Sigma11(2,2)].*(x2p(i)-m12)]-0.5*[[(x1p(i)-
m21)*Sigma21(1,1)+(x2p(i)-m22)*Sigma21(2,1)].*(x1p(i)-m21)+[(x1p(i)-
m21)*Sigma21(1,2)+(x2p(i)-m22)*Sigma21(2,2)].*(x2p(i)-
m22)]+0.5*log(det(Sigma1)/det(Sigma2));
end
greska11=0;
for i=1:N
if h1(i)>log(0.8/0.2);
greska11=greska11+1;%pogresno klasifikovani
end
end
%Druga klasa
for i=1:N
x1p(i)=Y(1,i);
x2p(i)=Y(2,i);
h2(i)=0.5*[[(x1p(i)-m11)*Sigma11(1,1)+(x2p(i)-m12)*Sigma11(2,1)].*(x1p(i)-m11)+[(x1p(i)-
m11)*Sigma11(1,2)+(x2p(i)-m12)*Sigma11(2,2)].*(x2p(i)-m12)]-0.5*[[(x1p(i)-
m21)*Sigma21(1,1)+(x2p(i)-m22)*Sigma21(2,1)].*(x1p(i)-m21)+[(x1p(i)-
m21)*Sigma21(1,2)+(x2p(i)-m22)*Sigma21(2,2)].*(x2p(i)-
m22)]+0.5*log(det(Sigma1)/det(Sigma2));
end
greska21=0;
for i=1:N
if h2(i)<log(0.8/0.2);
greska21=greska21+1;%pogresno klasifikovani
end
end
%Greska klasifikatora
P11=(greska11/N)*100;
P21=(greska21/N)*100;
T11=100-P11;%tacnost prvog klasifikatora u procentima
T21=100-P21; %tacnost drugog klasifikatora u procentima
%Prva klasa
for i=1:N
x1p(i)=V(1,i);
x2p(i)=V(2,i);
h1(i)=0.5*[[(x1p(i)-m11)*Sigma11(1,1)+(x2p(i)-m12)*Sigma11(2,1)].*(x1p(i)-m11)+[(x1p(i)-
m11)*Sigma11(1,2)+(x2p(i)-m12)*Sigma11(2,2)].*(x2p(i)-m12)]-0.5*[[(x1p(i)-
m21)*Sigma21(1,1)+(x2p(i)-m22)*Sigma21(2,1)].*(x1p(i)-m21)+[(x1p(i)-
m21)*Sigma21(1,2)+(x2p(i)-m22)*Sigma21(2,2)].*(x2p(i)-
m22)]+0.5*log(det(Sigma1)/det(Sigma2));
end
greska12=0;
for i=1:N
if h1(i)>log(0.2/0.8);
greska12=greska12+1;%pogresno klasifikovani
end
end
%Druga klasa
for i=1:N
x1p(i)=Y(1,i);
x2p(i)=Y(2,i);
h2(i)=0.5*[[(x1p(i)-m11)*Sigma11(1,1)+(x2p(i)-m12)*Sigma11(2,1)].*(x1p(i)-m11)+[(x1p(i)-
m11)*Sigma11(1,2)+(x2p(i)-m12)*Sigma11(2,2)].*(x2p(i)-m12)]-0.5*[[(x1p(i)-
m21)*Sigma21(1,1)+(x2p(i)-m22)*Sigma21(2,1)].*(x1p(i)-m21)+[(x1p(i)-
m21)*Sigma21(1,2)+(x2p(i)-m22)*Sigma21(2,2)].*(x2p(i)-
m22)]+0.5*log(det(Sigma1)/det(Sigma2));
end
greska22=0;
for i=1:N
if h2(i)<log(0.2/0.8);
greska22=greska22+1;%pogresno klasifikovani
end
end
%Greska klasifikatora
P12=(greska12/N)*100;
P22=(greska22/N)*100;
T12=100-P12;%tacnost prvog klasifikatora u procentima
T22=100-P22; %tacnost drugog klasifikatora u procentima
-Други задатак-
-Први део
clear all
close all
clc
load IrisBaza.data
X = IrisBaza(:,1:3);
a=1;
b=1;
c=1;
Length = 50;
V1 = zeros(Length,2);
V2 = zeros(Length,2);
V3 = zeros(Length,2);
N = length(X);
for i=1:N
if (X(i,3) ==1)
V1(a, 1) = X(i,1);
V1(a, 2) = X(i,2);
a = a +1;
elseif (X(i,3) ==2)
V2(b, 1) = X(i,1);
V2(b, 2) = X(i,2);
b = b +1;
else
V3(c,1) = X(i,1);
V3(c,2) = X(i,2);
c = c +1;
end
end
figure(1)
plot(V1(:,1),V1(:,2),'b*','MarkerSize',15), hold on
plot(V2(:,1),V2(:,2),'ro','MarkerSize',15), hold on
plot(V3(:,1),V3(:,2),'gx','MarkerSize',15), hold on
xlabel('x1');
ylabel('x2');
legend('Iris Setosa','Iris Versicolor','Iris Virginica')
title('Prikaz tri klase biljke Iris u 2D prostoru');
grid
-Други део
clear all
close all
clc
load IrisBaza.data
X = IrisBaza(:,1:3);
a=1;
b=1;
c=1;
Length = 50;
V1 = zeros(Length,2);
V2 = zeros(Length,2);
V3 = zeros(Length,2);
N = length(X);
for i=1:N
if (X(i,3) ==1)
V1(a, 1) = X(i,1);
V1(a, 2) = X(i,2);
a = a +1;
elseif (X(i,3) ==2)
V2(b, 1) = X(i,1);
V2(b, 2) = X(i,2);
b = b +1;
else
V3(c,1) = X(i,1);
V3(c,2) = X(i,2);
c = c +1;
end
end
d1=V1(:,1);
d2=V1(:,2);
d3=V2(:,1);
d4=V2(:,2);
d5=V3(:,1);
d6=V3(:,2);
subplot(2,3,1);
histfit(d1);
title('Iris Setosa')
subplot(2,3,4);
histfit(d2);
title('Iris Setosa')
subplot(2,3,2);
histfit(d3);
title('Iris Versicolor')
subplot(2,3,5);
histfit(d4);
title('Iris Versicolor')
subplot(2,3,3);
histfit(d5);
title('Iris Virginica')
subplot(2,3,6);
histfit(d6);
title('Iris Virginica')
-Трећи део
clear all
close all
clc
load IrisBaza.data
X = IrisBaza(:,1:3);
a=1;
b=1;
c=1;
Length = 50;
V1 = zeros(Length,2);
V2 = zeros(Length,2);
V3 = zeros(Length,2);
N = length(X);
for i=1:N
if (X(i,3) ==1)
V1(a, 1) = X(i,1);
V1(a, 2) = X(i,2);
a = a +1;
elseif (X(i,3) ==2)
V2(b, 1) = X(i,1);
V2(b, 2) = X(i,2);
b = b +1;
else
V3(c,1) = X(i,1);
V3(c,2) = X(i,2);
c = c +1;
end
end
Cx = cov(V1);
Mx = mean(V1);
Cy = cov(V2);
My = mean(V2);
Cz = cov(V3);
Mz = mean(V3);
m11=Mx(1);
m12=Mx(2);
m21=My(1);
m22=My(2);
m41=Mz(1);
m42=Mz(2);
M3=Mx-My;
M4=My-Mx;
M1=Mx;
M2=My;
m1=M3(1);
m2=M3(2);
Sigma1=Cx;
Sigma2=Cy;
Sigma3=Cz;
Sigma11=(Cx)^-1;
Sigma21=(Cy)^-1;
Sigma31=(Cz)^-1;
[x1,x2]=meshgrid(-2:0.001:3,1:0.01:3);
y1=0.5*[[(x1-m11)*Sigma11(1,1)+(x2-m12)*Sigma11(2,1)].*(x1-m11)+[(x1-
m11)*Sigma11(1,2)+(x2-m12)*Sigma11(2,2)].*(x2-m12)]-0.5*[[(x1-m21)*Sigma21(1,1)+(x2-
m22)*Sigma21(2,1)].*(x1-m21)+[(x1-m21)*Sigma21(1,2)+(x2-m22)*Sigma21(2,2)].*(x2-
m22)]+0.5*log(det(Sigma1)/det(Sigma2));
y2=0.5*[[(x1-m21)*Sigma21(1,1)+(x2-m22)*Sigma21(2,1)].*(x1-m21)+[(x1-
m21)*Sigma21(1,2)+(x2-m22)*Sigma21(2,2)].*(x2-m22)]-0.5*[[(x1-m41)*Sigma31(1,1)+(x2-
m42)*Sigma31(2,1)].*(x1-m41)+[(x1-m41)*Sigma31(1,2)+(x2-m42)*Sigma31(2,2)].*(x2-
m42)]+0.5*log(det(Sigma2)/det(Sigma3));
figure(1)
plot(V1(:,1),V1(:,2),'b*','MarkerSize',15), hold on
plot(V2(:,1),V2(:,2),'ro','MarkerSize',15), hold on
plot(V3(:,1),V3(:,2),'gx','MarkerSize',15), hold on
d=contour(x1,x2,y1,[0,0],'k','LineWidth',2);
d=contour(x1,x2,y2,[0,0],'k','LineWidth',2);
xlabel('x1');
ylabel('x2');
legend('Iris Setosa','Iris Versicolor','Iris Virginica')
title('Prikaz tri klase biljke Iris i Bajesovski klasifikator');
grid
-Четврти део
clear all
close all
clc
load IrisBaza.data
X = IrisBaza(:,1:3);
a=1;
b=1;
c=1;
Length = 50;
V1 = zeros(Length,2);
V2 = zeros(Length,2);
V3 = zeros(Length,2);
N = length(X);
for i=1:N
if (X(i,3) ==1)
V1(a, 1) = X(i,1);
V1(a, 2) = X(i,2);
a = a +1;
elseif (X(i,3) ==2)
V2(b, 1) = X(i,1);
V2(b, 2) = X(i,2);
b = b +1;
else
V3(c,1) = X(i,1);
V3(c,2) = X(i,2);
c = c +1;
end
end
%Linearni klasifikator
figure(5);
plot(V1(:,1),V1(:,2),'b*','MarkerSize',15), hold on
plot(V2(:,1),V2(:,2),'ro','MarkerSize',15), hold on
plot(V3(:,1),V3(:,2),'gx','MarkerSize',15), hold on
title('Linearna klasifikacija');
grid
axis([-2 3 1 3]);
duzina = 50;
Gama=ones(2*duzina,1);
Z = [-ones(1,duzina) ones(1,duzina); -V1.' V2.'];
W = (Z*Z')^(-1)*Z*Gama;
v0 = W(1);
V = [W(2);W(3)];
xp = [-2 3];
plot(xp,(-v0-V(1)*xp)/V(2),'k','LineWidth',3);
Gama=ones(2*duzina,1);
Z = [-ones(1,duzina) ones(1,duzina); -V2.' V3.'];
W = (Z*Z')^(-1)*Z*Gama;
v0 = W(1);
V = [W(2);W(3)];
xp = [-2 3];
plot(xp,(-v0-V(1)*xp)/V(2),'k','LineWidth',3);
legend('Iris Setosa','Iris Versicolor','Iris Virginica')
hold off
-Пети део
clear all
close all
clc
load IrisBaza.data
X = IrisBaza(:,1:3);
a=1;
b=1;
c=1;
Length = 50;
V1 = zeros(Length,2);
V2 = zeros(Length,2);
V3 = zeros(Length,2);
N = length(X);
for i=1:N
if (X(i,3) ==1)
V1(a, 1) = X(i,1);
V1(a, 2) = X(i,2);
a = a +1;
elseif (X(i,3) ==2)
V2(b, 1) = X(i,1);
V2(b, 2) = X(i,2);
b = b +1;
else
V3(c,1) = X(i,1);
V3(c,2) = X(i,2);
c = c +1;
end
end
%Linearni klasifikator
figure(5);
plot(V1(:,1),V1(:,2),'b*','MarkerSize',15), hold on
plot(V2(:,1),V2(:,2),'ro','MarkerSize',15), hold on
plot(V3(:,1),V3(:,2),'gx','MarkerSize',15), hold on
title('Linearna klasifikacija');
grid
axis([-2 3 1 3]);
duzina = 50;
Gama=ones(2*duzina,1);
Z = [-ones(1,duzina) ones(1,duzina); -V1.' V2.'];
W = (Z*Z')^(-1)*Z*Gama;
v0 = W(1);
V = [W(2);W(3)];
xp = [-2 3];
plot(xp,(-v0-V(1)*xp)/V(2),'k','LineWidth',3);
Gama=ones(2*duzina,1);
Z = [-ones(1,duzina) ones(1,duzina); -V2.' V3.'];
W = (Z*Z')^(-1)*Z*Gama;
v0 = W(1);
V = [W(2);W(3)];
xp = [-2 3];
plot(xp,(-v0-V(1)*xp)/V(2),'k','LineWidth',3);
Gama=[0.5*ones(duzina,1); ones(duzina,1)];
Z = [-ones(1,duzina) ones(1,duzina); -V1.' V2.'];
W = (Z*Z')^(-1)*Z*Gama;
v0 = W(1);
V = [W(2);W(3)];
xp = [-2 3];
plot(xp,(-v0-V(1)*xp)/V(2),'k--','LineWidth',3);
Gama=[0.5*ones(duzina,1); ones(duzina,1)];
Z = [-ones(1,duzina) ones(1,duzina); -V2.' V3.'];
W = (Z*Z')^(-1)*Z*Gama;
v0 = W(1);
V = [W(2);W(3)];
xp = [-2 3];
plot(xp,(-v0-V(1)*xp)/V(2),'k--','LineWidth',3);
Gama=[2*ones(duzina,1); ones(duzina,1)];
Z = [-ones(1,duzina) ones(1,duzina); -V1.' V2.'];
W = (Z*Z')^(-1)*Z*Gama;
v0 = W(1);
V = [W(2);W(3)];
xp = [-2 3];
plot(xp,(-v0-V(1)*xp)/V(2),'k-.','LineWidth',3);
Gama=[2*ones(duzina,1); ones(duzina,1)];
Z = [-ones(1,duzina) ones(1,duzina); -V2.' V3.'];
W = (Z*Z')^(-1)*Z*Gama;
v0 = W(1);
V = [W(2);W(3)];
xp = [-2 3];
plot(xp,(-v0-V(1)*xp)/V(2),'k-.','LineWidth',3);
legend('Iris Setosa','Iris Versicolor','Iris Virginica')
hold off
legend('Iris Setosa','Iris Versicolor','Iris Virginica','Linearni','Linearni','0.5','0.5','2','2')
hold off
Литература