سؤال

تقريب إجمالي رمزي يتحدث عن تحويل سلسلة زمنية (س ، ر) إلى رموز.بناء على ذلك ، لدي بعض الاستفسارات الأساسية.ماذا لو كانت إشارة الوقت هو مركب من (س ، ص ، ض ، ر) تمثل إحداثيات الموقف أو ببساطة (س ، ص ، ر) لمدة 2 صورة الأبعاد مع الطابع الزمني ر.ثم كيف يمكنني استخدام هذه الأداة لتعيين رموز / تقديرية.الرجاء المساعدة.

هل كانت مفيدة؟

المحلول

هل يمكن تطبيق ساكس التحول إلى كل بعد على حدة ، ثم الجمع بين الرموز / الحروف لكل طابع زمني.

خذ (س ، ص ، ض ، ر) على سبيل المثال ، سوف تحصل على الجمع b,a,c إلى عن على ر = 1 ، ثم a,a,c إلى عن على ر=2 ، إلخ..

يمكنك بعد ذلك دمج الرموز لتشكيل "رموز ضخمة" إذا كنت تريد ذلك.قل أن مجموعة الرموز كانت Symbols={a,b,c}.ثم مجموعة جديدة من الرسائل سيكون ببساطة المنتج الديكارتي SxSxS (واحد لكل بعد).

وبعبارة أخرى aaa يصبح الحرف الجديد A, aab كما B, ، ثم aac, aba, abb, ، إلخ..


تحرير:

هنا بعض التعليمات البرمجية لإظهار ما كان يدور في خلدي.وبما أنني لم يكن لديك تنفيذ خوارزمية ساكس ، وسوف تستخدم وظيفة التالية كعنصر نائب (فإنه يعود القمامة):

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

هنا هو رمز:

%# 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))'
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top