Przykład przeprowadzono na ustandaryzowanych danych, pobranych z [1] - kwiat Irysa. Wylosowano 40 wektorów z macierzy danych (tabela 5.1 ), które następnie przekazano na wejściu klasyfikatora.
Parametry:
Tablica 5.1: Macierz wejściowa - Irys
L.p. | P. 1 | P. 2 | P. 3 | P. 4 |
1 | 1,0 | 0,250000000 | 0,750000000 | 0,0 |
2 | 1,0 | 0,135135135 | 0,810810811 | 0,0 |
3 | 1,0 | 0,659090909 | 0,295454545 | 0,0 |
4 | 1,0 | 0,625000000 | 0,208333333 | 0,0 |
5 | 1,0 | 0,625000000 | 0,291666667 | 0,0 |
6 | 1,0 | 0,285714285 | 0,642857143 | 0,0 |
7 | 1,0 | 0,177777777 | 0,755555556 | 0,0 |
8 | 1,0 | 0,244444444 | 0,844444444 | 0,0 |
9 | 1,0 | 0,409090909 | 0,659090909 | 0,0 |
10 | 1,0 | 0,325581395 | 0,674418605 | 0,0 |
11 | 1,0 | 0,162790697 | 0,744186047 | 0,0 |
12 | 1,0 | 0,163636363 | 0,818181818 | 0,0 |
13 | 1,0 | 0,340425531 | 0,680851064 | 0,0 |
14 | 1,0 | 0,395348837 | 0,651162791 | 0,0 |
15 | 1,0 | 0,270833333 | 0,750000000 | 0,0 |
16 | 1,0 | 0,282608695 | 0,804347826 | 0,0 |
17 | 1,0 | 0,700000000 | 0,260000000 | 0,0 |
18 | 1,0 | 0,173913043 | 0,608695652 | 0,0 |
19 | 1,0 | 0,055555555 | 0,851851852 | 0,0 |
20 | 1,0 | 0,311111111 | 0,666666667 | 0,0 |
21 | 1,0 | 0,690476190 | 0,238095238 | 0,0 |
22 | 1,0 | 0,208333333 | 0,687500000 | 0,0 |
23 | 1,0 | 0,708333333 | 0,250000000 | 0,0 |
24 | 1,0 | 0,608695652 | 0,260869565 | 0,0 |
25 | 1,0 | 0,714285714 | 0,261904762 | 0,0 |
26 | 1,0 | 0,129629629 | 0,703703704 | 0,0 |
27 | 1,0 | 0,729166666 | 0,250000000 | 0,0 |
28 | 1,0 | 0,142857142 | 0,809523810 | 0,0 |
29 | 1,0 | 0,700000000 | 0,180000000 | 0,0 |
30 | 1,0 | 0,702127659 | 0,234042553 | 0,0 |
31 | 1,0 | 0,255319148 | 0,787234043 | 0,0 |
32 | 1,0 | 0,256410256 | 0,820512821 | 0,0 |
33 | 1,0 | 0,720930232 | 0,255813953 | 0,0 |
34 | 1,0 | 0,617021276 | 0,276595745 | 0,0 |
35 | 1,0 | 0,304347826 | 0,608695652 | 0,0 |
36 | 1,0 | 0,148936170 | 0,638297872 | 0,0 |
37 | 1,0 | 0,155555555 | 0,777777778 | 0,0 |
38 | 1,0 | 0,250000000 | 0,625000000 | 0,0 |
39 | 1,0 | 0,238095238 | 0,642857143 | 0,0 |
40 | 1,0 | 0,163636363 | 0,763636364 | 0,0 |
Wywołanie funkcji BARBARA w środowisku Matlab.
[M] = BARBARA(uczaca,ε,N);
W funkcji BARBARA następuje pobranie pierwszego wektora z macierzy uczącej, jako parametru dla którego będziemy obliczać dopasowania korelacyjne z każdym wektorem macierzy uczącej. Wektor ten zapisywany jest do zmiennej Ag.
for i = 1 : length(uczaca)
x = [x; korelacja(Ag, uczaca(i,:)) ];
end;
Po obliczeniu relacji korelacyjnej wektora Ag, z każdym wektorem macierzy uczącej, następuje przefiltrowanie tylko tych wektorów których korelacja ł ε.
index = find(x <= epsilon);
Po tej operacji następuje posortowanie najlepiej skorelowanych wektorów ze zmienną Ag, w kolejności malejącej.
[blad,index2] = sort(blad);
Tabela 5.2 ukazuje wynik posortowania wektorów pod względem najlepszego dopasowania korelacyjnego.
Tablica 5.2: Współczynnik korelacji oraz numer wektora w macierzy wejściowej
L.p. | index2 | blad |
1 | 1 | 1,000000000 |
2 | 10 | 0,999682377 |
3 | 16 | 0,998977631 |
4 | 11 | 0,996893254 |
5 | 4 | 0,996525329 |
6 | 17 | 0,996518268 |
7 | 13 | 0,995476121 |
8 | 23 | 0,995121271 |
9 | 7 | 0,994805787 |
10 | 5 | 0,994170735 |
11 | 20 | 0,994091844 |
12 | 8 | 0,993174299 |
13 | 12 | 0,992345816 |
14 | 6 | 0,991818022 |
15 | 15 | 0,991499925 |
16 | 22 | 0,990862973 |
17 | 9 | 0,990629249 |
18 | 2 | 0,990495372 |
19 | 3 | 0,990495372 |
20 | 14 | 0,988079532 |
21 | 21 | 0,987762965 |
22 | 18 | 0,982492797 |
23 | 19 | 0,982188091 |
Następnym punktem algorytmu, jest wybranie N, najlepiej dopasowanych wektorów.
if (length(index) > n || n == -1)
Memmory = M1(index(index2(1:n)), :);
else
Memmory = M1(index(index2), :);
end;
Macierz wyjściowa, która będzie poddana uśrednianiu, przedstawiona jest w tabeli 5.3 .
Tablica 5.3: Macierz N najbardziej dopasowanych danych
L.p. | Parametr 1 | Parametr 2 | Parametr 3 | Parametr 4 |
1 | 1,0 | 0,250000000 | 0,750000000 | 0,0 |
2 | 1,0 | 0,270833333 | 0,750000000 | 0,0 |
3 | 1,0 | 0,255319149 | 0,787234043 | 0,0 |
4 | 1,0 | 0,282608696 | 0,804347826 | 0,0 |
5 | 1,0 | 0,177777778 | 0,755555556 | 0,0 |
6 | 1,0 | 0,256410256 | 0,820512821 | 0,0 |
7 | 1,0 | 0,208333333 | 0,687500000 | 0,0 |
8 | 1,0 | 0,163636364 | 0,763636364 | 0,0 |
9 | 1,0 | 0,162790698 | 0,744186047 | 0,0 |
10 | 1,0 | 0,244444444 | 0,844444444 | 0,0 |
11 | 1,0 | 0,155555556 | 0,777777778 | 0,0 |
12 | 1,0 | 0,163636364 | 0,818181818 | 0,0 |
13 | 1,0 | 0,311111111 | 0,666666667 | 0,0 |
14 | 1,0 | 0,325581395 | 0,674418605 | 0,0 |
15 | 1,0 | 0,142857143 | 0,809523810 | 0,0 |
16 | 1,0 | 0,238095238 | 0,642857143 | 0,0 |
17 | 1,0 | 0,340425532 | 0,680851064 | 0,0 |
18 | 1,0 | 0,135135135 | 0,810810811 | 0,0 |
19 | 1,0 | 0,285714286 | 0,642857143 | 0,0 |
20 | 1,0 | 0,129629630 | 0,703703704 | 0,0 |
Po uśrednieniu danych, zgromadzonych w macierzy 5.3 , wygenerowany został wektor wyjściowy, reprezentujący większą część cech uśrednianych danych (tabela 5.4 ).
Tablica 5.4: Wektor wyjściowy, po uśrednieniu
1,0 | 0.2249948 | 0.7467533 | 0,0 |
Wektor wyjściowy dodawany jest do macierzy wyjściowej klasyfikatora, N najlepszych wektorów jest usuwanych z macierzy uczącej
uczaca(index2, :) = [];
a następnie ponawiane są wszystkie wcześniej opisane kroki aż do momentu, gdy macierz ucząca pozostanie pusta.
Copyright © 2008-2010 EPrace oraz autorzy prac.