Question

Approximation globale symbolique parle de la conversion d'une série chronologique (x, t) en symboles. Sur cette base, j'ai quelques requêtes de base.Que se passe-t-il si le signal temporel est un composite de (x,y,z,t) représentant les coordonnées de position ou simplement (x,y,t) pour une image bidimensionnelle avec un horodatage t.Alors, comment puis-je utiliser cet outil pour attribuer des symboles/discrétiser. Veuillez m'aider.

Était-ce utile?

La solution

Vous pourriez appliquer le SAXO transformation en chaque dimension séparément, puis combinez les symboles/lettres pour chaque horodatage.

Prenez le (x,y,z,t) par exemple, vous obtiendrez la combinaison b,a,c pour t=1, alors a,a,c pour t=2, etc.

Vous pouvez ensuite combiner les symboles pour former des « méga-symboles » si vous le souhaitez.Supposons que l'ensemble des symboles soit Symbols={a,b,c}.Alors le nouvel ensemble de lettres serait simplement le produit cartésien SxSxS (un pour chaque dimension).

Autrement dit aaa devient la nouvelle lettre A, aab comme B, alors aac, aba, abb, etc..


MODIFIER:

Voici un code pour montrer ce que j'avais en tête.Comme je n'ai pas d'implémentation de l'algorithme SAX, j'utiliserai la fonction suivante comme espace réservé (elle renvoie des déchets) :

%# use your actual SAX function instead of this one
my_sax_function = @(x,n,a) randi(a, [n 1]);

Voici le code :

%# time series of length=100, with (x,y,z) at each timestamp
data = cumsum(randn(100,3));

%# apply your SAX function to each dimension independently
N = 20;     %# number of segments to divide the signal into
A = 3;      %# size of alphabet (a,b,c)
dataSAX = zeros(N,3);
for i=1:3
    dataSAX(:,i) = my_sax_function(data(:,i), N, A);
end

%# we assume the above function returns integers denoting the symbols
%# therefore row i corresponds to A=3 symbols for each of the 3 x/y/z dimensions
dataSAX(1,:)

%# build cartesian product of all combinations of the A=3 symbols
[x y z] = ndgrid(1:A,1:A,1:A);
cartProd = [x(:) y(:) z(:)];

%# map to the new alphabet with 3*3*3 = 27 symbols
[~,V] = ismember(dataSAX, cartProd, 'rows')

%# A to Z with $ character to make up 27 symbols
oldSymbols = {'a';'b';'c'};             %# 1: a, 2: b, 3: c
newSymbols = cellstr(['A':'Z' '$']');   %# 1: A, ..., 26: Z, 27: $

%# SAX representation of the entire time series as a string
mappedV = char(newSymbols(V))'
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top