Pregunta

Simbólico Agregado Aproximación habla acerca de la conversión de una serie de tiempo (x,t) en forma de símbolos.Basado en esto,tengo algunas consultas básicas.Lo que si la señal de la hora es un compuesto de (x,y,z,t) representan las coordenadas de la posición o simplemente (x,y,t) para 2 dimensiones de la imagen con una marca de tiempo t.Entonces, ¿cómo puedo usar esta herramienta para asignar los símbolos/discretizar.Por favor, ayudar.

¿Fue útil?

Solución

Se podría aplicar el SAX la transformación a cada dimensión por separado, luego combinar los símbolos o letras para cada marca de tiempo.

Tomar el (x,y,z,t) por ejemplo, se puede obtener la combinación b,a,c para t=1, entonces a,a,c para t=2, etc..

Entonces, usted puede combinar los símbolos para formar "mega-símbolos" si quieres.Dicen que el conjunto de símbolos que se fue Symbols={a,b,c}.A continuación, el nuevo juego de cartas sería simplemente el producto cartesiano SxSxS (uno para cada dimensión).

En otras palabras aaa se convierte en la nueva carta A, aab como B, a continuación, aac, aba, abb, etc..


EDITAR:

Aquí está el código para mostrar lo que yo tenía en mente.Ya que no tengo una aplicación de SAX algoritmo, voy a estar usando la siguiente función como marcador de posición (devuelve la basura):

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

Aquí está el código:

%# 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))'
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top