www.eprace.edu.pl » sztuczna-inteligencja » Klasyfikator BARBARA » Wstępna klasyfikacja danych

Wstępna klasyfikacja danych

Wstępna klasyfikacja danych wejściowych, polega na przeszukaniu całej przestrzeni wejściowej pod względem podobnych wektorów regresji. Realizuje się to za pomocą następującego algorytmu (algorytm 5.1 , oraz kod w matlabie 5.2 ).

Algorytm 5.1: Algorytm przeszukiwania przestrzeni wejściowej.

  1. "Matrixi i = 1,...,n; j = 1,...,n, znajdź x = R2(Matrix i,Matrixj).
  2. Dodaj wektor x do macierzy dopasowanie.
  3. Znajdź wszystkie x * 100 > ε i utwórz z nich macierz dopasowań.
  4. Posortuj macierz dopasowań, od największego do najmniejszego dopasowania.
  5. Pobierz numery indeksów dla macierzy Matrix, z odpowiadających im numerom indeksów, z macierzy dopasowań.

Gdzie:

Matrix

- macierz wejściowa, poddawana generalizacji,

n

- maksymalna ilość wektorów regresji, zwracana do II fazy,

R2

- funkcja dopasowania, opisana wzorem 10.6 .

Algorytm 5.2: Kod klasyfikatora BARBARA w Matlabie.

1    if ( nargin == 5 && ~isempty(metryka) ) 
2        % Klasyfikacja z wyborem metryki... 
3        for i = 1 : length(M1) 
4            Y = [Ag.vector; M1(i).vector]; 
5            x = [x; pdist(Y, metryka) ]; 
6        end; 
7    else 
8        % Generuję macierz dopasowań funkcji R-SQUARE. 
9        for i = 1 : N(1) 
10            x = [x; korelacja(Ag.vector, M1(i).vector) ]; 
11        end; 
12    end; 
13    if ( nargin == 5 && ~isempty(metryka) ) 
14        % Szukam wszystkich wektorów, które są najbliższe wektorowi 
15        % wejściowemu. 
16        index = find(x <= epsilon ); 
17        blad = x(index); 
18        % Sortowanie od najmniejszej, do największej odległości 
19        [blad, index2] = sort(blad); 
20    else 
21        % Szukam wszystkich wektorów, których współczynnik dopasowania jest 
22        % większy od epsilon. 
23        index = find(x > epsilon); 
24        blad = x(index); 
25        % Sortowanie od największego, do najmniejszego (dopasowania) 
26        [blad, index2] = sort(blad, "descend"); 
27    end; 
28    if (length(index) > n || n == -1) 
29        Memmory = M1(index(index2(1:n)), :); 
30    else 
31        Memmory = M1(index(index2), :); 
32    end;

Jak pokazały nam algorytmy 5.1 i 5.2 , grupowanie odbywa się za pomocą funkcji dopasowania R2 chociaż, można zmienić funkcję dopasowania na dowolną metrykę odległości, taką jak metryka Euklidesowa lub Manhattan. Jednakże funkcja R2 odgrywa ogromną rolę w algorytmie klasyfikatora BARBARA, bo dzięki niej możemy zgrupować regresje mające największy współczynnik dopasowania do regresji wejściowej. Funkcje takie jak R2 (oraz inne. patrz wzory: 10.7 ,10.8 ), mają za zadanie zwracać współczynnik dopasowania kształtu, a nie tak jak funkcje odległości - odległość punktów w pewnej przestrzeni (odległość Euklidesowa). W celu optymalizacji wyników jako metrykę wybrano funkcję badającą kształt jako domyślną z tego względu, że w samym zamierzeniu było odnalezienie jak najbardziej podobnych do siebie krzywych regresji.

komentarze

Copyright © 2008-2010 EPrace oraz autorzy prac.