Wykrywanie patternów i grupowanie danych z bazy

0

Cześć,

Mam taki problem do ogarnięcia i szukam algorytmu, którym to można najprościej ugryźć. Mam bazę, w której powtarzają się pewne dane ze słownika w wierszach. Nazwijmy to patternem. Człowiek tylko spojrzy na dane i widzi od razu 3 patterny (A/B, X oraz Y1/Y2/Y3). Ostatecznie chcę wyciągnąć godzinę startu i końca każdego z patternu.

Problemem jest to, że nie są znane składniki danego słownika/patternu. Godzinowo wyciąłem rożne przedziały, aczkolwiek to może iść całkiem płynnie bez dużych odstępów między patternami, także badanie odstępów czasowych odpada.

Czy znacie jakiś sposób/algorytm, żeby wykrywać zakresy danych, gdzie powtarza się jakiś zakres słów. Dla przykładu w pierwszy patternie A/B występowanie A i B jest całkowicie przypadkowe, patternem jest tylko to, że słownik składa się z A i B. To samo w Y1/Y2/Y3, to który wystąpi, 1, 2 czy 3 jest losowe.

Czyli wynikowo chciałbym uzyskać:
0022 - 0036
1317 - 1424
2001 - 2113

00:05:22	A                                               
00:11:53	A                                               
00:18:37	A                                               
00:23:18	B                                                
00:24:45	A                                               
00:30:54	A                                               
00:41:13	A                                               
00:48:36	B                                                
13:57:17	X                                                         
14:07:48	X                                                         
14:16:32	X                                                         
14:24:52	X                                                         
14:27:40	X                                                         
14:32:28	X                                                         
14:36:25	X                                                         
14:41:18	X                                                         
14:45:25	X                                                         
14:52:24	X                                                                                                       
20:41:01	Y 1                                      
20:47:42	Y 2                                      
20:57:40	Y 2                                      
21:04:34	Y 3                                      
21:11:26	Y 3                                      
21:18:36	Y 2                                      
21:28:28	Y 3                                      
21:33:20	Y 1                                      
21:39:59	Y 2                                      
21:46:13	Y 3                                     


1

A czym się różni patern A/B od X ? Tak naprawdę niczym się nie różni dla maszyny. Nie wiem, co to za problem, ale pozostaje te "paterny" oprogramować ręcznie.

1

1 Jaka baza?
2. Group By
3. Min Max
4 LEAD LAG

Chcesz gotowca to pogadajmy o $

2

Człowiek tylko spojrzy na dane i widzi od razu 3 patterny

No dla mnie na "gołe oko" to jest pattern A,B,X,Y, jakbym się nie starał nie widzę tego ża A i B to jeden pattern

0
woolfik napisał(a):

Chcesz gotowca to pogadajmy o $

dzięki za podpowiedzi, chcę zapytać, czy jest jakiś sensowy algorytm do zastosowanie, bo nic nie przychodzi mi do głowy

Panczo napisał(a):

Człowiek tylko spojrzy na dane i widzi od razu 3 patterny

No dla mnie na "gołe oko" to jest pattern A,B,X,Y, jakbym się nie starał nie widzę tego ża A i B to jeden pattern

może coś źle wyjaśniłem, chodzi o to, że paternem nr 1 jest A i B w różnej kolejności i one będą w bazie występować przez np. 10 godzin. Potem w systemie coś się zmienia i przez kolejne 5 godzin występuje X, następnie znów coś w systemie się zmienia i przez 10 godzin pojawiają się wartości Y1, Y2 i Y3. Człowiek od razu widzi to i od ręki może wyznaczyć start i koniec danego "słownika/patternu". Pisząc pattern rozumiem to jako dany słownik, a nie jakąś powtarzającą się sekwencję słów z danego słownika, bo sekwencja jest przypadkowa i tutaj żadnego klucza/patternu się nie odnajdzie.

Chodzi mi o to, czy istnieje jakiś mechanizm, potrafiący wykryć dany słownik, a następnie wyszukać pierwszą i ostatnią godzinę wystąpienia dla danego słownika.

0
abasas napisał(a):

Chodzi mi o to, czy istnieje jakiś mechanizm, potrafiący wykryć dany słownik, a następnie wyszukać pierwszą i ostatnią godzinę wystąpienia dla danego słownika.

Da się pod warunkiem, że zdefiniujesz te, jak to określiłeś, patterny. Koledzy próbowali Ci wytłumaczyć, że nie widzą tego tak, jak Ty (ja też nie widzę).

00:05:22	A                                               
00:11:53	A                                               
00:18:37	A                                               
00:23:18	B                                                
00:24:45	A                                               
00:30:54	A                                               
00:41:13	A                                               
00:48:36	B 

Ty mówisz, że jest tu osiem kolejnych rekordów A/B. My mówimy, że są kolejno:
3 x A
1 x B
3 x A
1 x B

I dopóki nie wskażesz reguły, która jasno określi, dlaczego A i B są tym samym, a X czymś innym, nie będziemy w stanie Ci pomóc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1