Liktum
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Привет всем, столкнулся с проблемой расчета весовых коэффициентов. Имеется следующее: Представлено задание распознания 3-х образов которые являются нелинейно-разделимыми Образы: (5;2) (5;6) (8;10) - получается между ними можно провести горизонтальные линии. Помогите найти весовые коэффициенты. Пока получилось следующее. Прошу помогите!!! clear all; w1=[0 -2 1; 0 0.5 -1]; w2=[-0.5 1 -1; 0.5 -1 -1; -0.5 -1 1]; m=100; for k=1:m p=rand; q=rand; r=rand; if p<=0.333 x=[1;2*q+1;2*r+7]; d=[1;0;0]; else if p<0.667 x=[1;2*q+4; 2*r+4]; d=[0;1;0]; else x=[1;2*q+7; 2*r+1]; d=[0;0;1]; end;end; x1g(k)=x(2);x2g(k)=x(3); u1=w1*x; y1(1)=1; for i=1:2 if u1(i)<0 y1(i+1)=0; else y1(i+1)=1;end; end u2=w2*y1'; for i=1:3 if u2(i)<0 z(i)=0; else z(i)=1;end; end e=d-z'; e2(k)=e'*e; end g1 = [1 3 3 1]; v1 = [9 9 7 7]; g2 = [4 6 6 4]; v2 = [6 6 4 4]; g3 = [7 9 9 7]; v3 = [3 3 1 1]; subplot (3,1,1); hold on; fill (g1,v1, 'y',g2,v2,'y', g3,v3,'y'); plot (x1g,x2g,'.'); line ([0 9],[-w1(1,1)/w1(1,3); (-w1(1,1)-9*w1(1,2))/w1(2,3);], 'color','r'); line ([0 9],[-w1(2,1)/w1(2,3); (-w1(2,1)-9*w1(2,2))/w1(2,3);], 'color','g'); grid on; subplot (3,1,2); hold on; line ([0 9],[-w2(1,1)/w1(1,3); (-w1(1,1)-9*w1(1,2))/w2(1,3);], 'color','r'); line ([0 9],[-w2(2,1)/w1(2,3); (-w1(2,1)-9*w1(2,2))/w2(2,3);], 'color','r'); line ([0 9],[-w2(3,1)/w1(3,3); (-w1(3,1)-9*w1(3,2))/w2(3,3);], 'color','r'); plot (1,0,'*','r'); plot (0,0,'*','r'); plot (0,1,'*','r'); grid on; subplot (3,1,3); plot (e2,'.'); _______________________ Заранее спасибо!!! Или подскажите хоть как производить этот самый расчет весовых коэффициентов! |