Dodaj wpis w tym temacie
Spis tematów | Strona: 1 2 3 ... 23 24 Wyślij wiadomość do admina |
Przewiń wpisy ↓ | Prognoza MM z sieci neuronowej |
2012-01-04 (21:25)![]() Data rejestracji: 2011-11-28 Ilość postów: 25 ![]() | wpis nr 485 367 [ CZCIONKA MONOSPACE ] Adalbert Podczas uczenia sieci co podajesz jako wektory wejściowe i wyjściowe. Pytam się z ciekawości gdyż jakiś czas temu próbowałem prognozować lotto za pomocą sieci neuronowych. |
2012-01-04 (22:16)![]() Data rejestracji: 2009-03-19 Ilość postów: 675 ![]() | wpis nr 485 381 [ CZCIONKA MONOSPACE ] @oxys W ten weekend (dłuugi weekend) będę miał więcej czasu. Postaram się wrócić do tematu sieci neuronowych. |
2012-01-04 (22:24)![]() Data rejestracji: 2009-03-19 Ilość postów: 675 ![]() | wpis nr 485 387 [ CZCIONKA MONOSPACE ] Tylko pewniak 56 się wylosował: ![]() Do jutra Adalbert |
2012-01-05 (13:41)![]() Data rejestracji: 2005-02-24 Ilość postów: 6116 ![]() | wpis nr 485 487 [ CZCIONKA MONOSPACE ] Adalbert możesz bardziej obrazkowo podawać jak proponowane są liczby do wyjścia ? |
2012-01-05 (14:30)![]() Data rejestracji: 2009-03-19 Ilość postów: 675 ![]() | wpis nr 485 506 [ CZCIONKA MONOSPACE ] Sławek001 Możesz doprecyzować, tzn. wytłumaczyć mi, co masz na myśli pisząc: "Adalbert możesz bardziej obrazkowo podawać jak proponowane są liczby do wyjścia ?" 1. Bardziej obrazkowo - czy masz na myśli jakieś schematy, czy też screens (zrzuty ekranu)? 2. Liczby do wyjścia - czy chodzi o prognozę, czyli liczby, które są wynikiem obliczeń? W ten dłuższy weekend mam więcej czasu i postaram się w miarę czytelnie i najprościej opisać, w jaki sposób wykorzystuję sieć neuronową i jak przygotowuję zestaw danych wejściowych, jakie parametry są prognozowane. Będzie to trudne ponieważ na forum nie da się w sposób czytelny przedstawić wielu elementów graficznych w postaci *.jpg tabel, obliczeń itp. Zrobię, co będę mógł Pozdrawiam Adalbert |
2012-01-05 (18:10)![]() Data rejestracji: 2005-02-24 Ilość postów: 6116 ![]() | wpis nr 485 562 [ CZCIONKA MONOSPACE ] Adalbert Jak sądzę jestem chyba jedyną osobą na forum która nie wykonuje analiz wstecznych wykonuje tylko analizę " teraz " jest to może dziwne dla osób oglądających moje poczynania w poście Programiki - Wspomagacze.....G-16 ale na arkusz przelewam swoje pomysły z tego co widzę " teraz " w zachowaniu wylosowanych liczb a nie analizy jak liczby się zachowywały " kiedyś " bardziej obrazkowo ... może to być wykresy liczb będących wynikiem obliczeń po paru dniach może znajdę jakaś zależność którą akurat sieć nie widzi |
2012-01-11 (16:34)![]() Data rejestracji: 2011-11-28 Ilość postów: 25 ![]() | wpis nr 487 100 [ CZCIONKA MONOSPACE ] slawek001 W takim razie jak chcesz nauczyć jakąś sieć neuronową nie analizując wsteczne losowania. Co chcesz podać jako wektory wejściowe oraz wyjściowe podczas etapu uczenia? |
2012-01-11 (18:12)![]() Data rejestracji: 2009-03-19 Ilość postów: 675 ![]() | wpis nr 487 109 [ CZCIONKA MONOSPACE ] Witam. Kilka informacji, trochę szczegółów. 1. W tej chwili sieć wykonuje prognozę dzisiejszego losowania MM o 22:15, wyniki prognozy zamieszczę przed losowaniem 2. Nie miałem czasu przez ostatnie dni, więc stąd brak mojej aktywności. 3. Pierwsze, co robię to sumuję kolumnami wyniki losowań do losowania N-1 (ostatnie losowanie w bazie, które znam to losowanie N, a to które będzie prognozowane to losowanie N+1) Przykład poniżej: ![]() 4. Następnie wykorzystując Matlaba i zmodyfikowaną funkcję predict na podstawie sumy wylosowanych wyników prognozuję wykorzystując model AR (AutoRegressive) dla każdej kolumny wynik będący kolejną wartości sumy, czyli jaka będzie suma wylosowanych liczb w każdej kolumnie w kolejnym losowaniu N 5. Od tak otrzymanego wyniku w postaci jednego wiersza z 20 liczbami będącymi prognozą sumy wyników kolejnego losowania N (które znam, bo to jest ostatnie losowanie w bazie danych) odejmuję ostatni wiersz widoczny na załączonym obrazku (czyli ten z liczbami 235-265-218-261-171-229-249-212-432-198-198-211-249-310-226-316-282-288-209-235) 6. Wynikiem odejmowania jest 20 liczb, które są prognozą losowania N Ponieważ nie wiem ile archiwalnych losowań analizować i jaki ma być wykładnik potęgi modelu AR obliczenia wykonuję w dwóch pętlach for wykladnik_potegi 2:40 for ile_archiwalnych_wyników_wstecz_analizowac ... end end 7. W ten sposób za każdym razem otrzymuję prognozę kolejnego losowania, które jest ostatnim losowaniem w bazie, czyli losowanie N 8. Sprawdzam ile liczb trafiłem i jeżeli jest to 10 liczb lub więcej zapamiętuję w zmiennej matryca dwie liczby: wykładnik_potęgi, ile_archiwalnych_wyników_wstecz_analizować 9. Na podstawie tak utworzonej matrycy, powtarzam cały proces obliczeń, przy czym do modelu AR podstawiam z bazy archiwalnej po kolei wyniki określone zmienną ile_archiwalnych_wynikow_wstecz_analizowac, a jako wykładnik potęgi modelu AR odpowiadający temu zakresowi wykladnik_potegi 10. Wynikiem obliczeń jest prognoza kolejnego losowania, z tym, że tych prognoz jest tyle ile rekordów w matrycy 11. Poniżej kod całego programu w języku Matlaba 2011a. Program wczytuje dwa arkusze Excela: Mutli1.xls - arkusz zawierający wyniki niesortowanych losowań MM (tylko same wyniki począwszy od komórki A1 - bez daty, numeru losowania) do losowania N-1, czyli przedostatniego Mutli.xls - to sam, jak wyżej, tylko w tej bazie na końcu dopisane jest ostatnie losowanie 12. Kod programu (Matlab 2011a) clc; clear global clear memory clear all close all echo off warning('off') archiwum=xlsread('Multi1.xls'); %archiwum=sort(archiwum,2); %można posortować wyniki, ale tego jeszcze nie %testowałem init='e'; ts=1; k = 1; zakres_liczb=[1:80]; kolejne=1; %% prognoza ostatniego znanego losowania (losowanie N) for order=2:40 for nowe=2*order:200 wyniki=archiwum(end-nowe:end-1,:); wyniki_sum=cumsum(wyniki); for liczba=1:20 y=wyniki_sum(:,liczba); ata = iddata(y,[],ts); model = ar(ata,order); YP = forecasta(model,ata,k, init); los(1,liczba)= round(YP.y); end bedzie=los-wyniki_sum(end,:); bedzie=sort(bedzie,2); for i=1:size(bedzie,2) if ismember(bedzie(1,i),zakres_liczb) prognoza(1,i)=bedzie(1,i); end end pozycja=1; zaklad(1,1)=0; for i=1:size(prognoza,2) if prognoza(1,i)~=0 if pozycja==1 zaklad(1,1)=prognoza(1,i); pozycja=pozycja+1; else if prognoza(1,i)>prognoza(1,i-1) zaklad(1,pozycja)=prognoza(1,i); pozycja=pozycja+1; end end end end [jest, pozycja]=ismember(zaklad,archiwum(end,:)); trafiono=cumsum(jest); if trafiono(1,end)>9 matryca(kolejne,1)=order matryca(kolejne,2)=nowe matryca(kolejne,3)=trafiono(1,end) matryca(kolejne,4)=size(zaklad,2) kolejne=kolejne+1; end clear wyniki wyniki_sum end end clear archiwum %% Prognoza losowanie N+1 (czyli tego, co dopiero będzie) na podstawie matrycy [order, nowe] % order to wykladnik_potegi modelu AR % nowe to zakres analizowanych ostatnich losowań, czyli ile losowań wstecz % analizujemy archiwum=xlsread('Multi.xls'); %archiwum=sort(archiwum,2); %można posortować wyniki, ale tego jeszcze nie %testowałem kolejne=1; for start=1:size(matryca,1) wyniki=archiwum(end-matryca(start,2):end-1,:); wyniki_sum=cumsum(wyniki); for liczba=1:20 y=wyniki_sum(:,liczba); ata = iddata(y,[],ts); model = ar(ata,matryca(start,1)); YP = forecasta(model,ata,k, init); los(1,liczba)= round(YP.y); end bedzie=los-wyniki_sum(end,:); bedzie=sort(bedzie,2); for i=1:size(bedzie,2) if ismember(bedzie(1,i),zakres_liczb) prognoza(1,i)=bedzie(1,i); end end pozycja=1; zaklad(1,1)=0; for i=1:size(prognoza,2) if prognoza(1,i)~=0 if pozycja==1 zaklad(1,1)=prognoza(1,i); pozycja=pozycja+1; else if prognoza(1,i)>prognoza(1,i-1) zaklad(1,pozycja)=prognoza(1,i); pozycja=pozycja+1; end end end end for i=1:size(zaklad,2) losowanie(kolejne,i)=zaklad(1,i); end [jest, pozycja]=ismember(zaklad,archiwum(end,:)); trafiono=cumsum(jest); podsumowanie(start,1)=trafiono(1,end) podsumowanie(start,2)=size(zaklad,2) clear wyniki wyniki_sum kolejne=kolejne+1; end Pozostałe funkcje wykorzystywane w programie: zmodyfikowana funkcja predict: function YP = forecasta(model,data,K, Init) %FORECAST Forecast a time series K steps into the future % % YF = FORECAST(MODEL,DATA,K) % % DATA: Existing data up to time N, an IDDATA object. % MODEL: The model as any IDMODEL object, IDPOLY, IDSS, IDARX or IDGREY. % K: The time horizon of forecasting, a positive integer with the number of samples % YF: The forecasted output after time N, an IDDATA object with output % only, covering the time span N+1:N+K. % % YF = FORECAST(MODEL,DATA,K, INIT) % wehere INIT is 'z' or 'e' allows specification of initial conditions (at % time = Data.SamplingInstants(1)). % % See also idmodel/predict, which computes a fixed horizon prediction % along the existing data record. [N, ny] = size(data); % assume data is iddata Mss = idss(model); ord = size(pvget(Mss,'A'),1); if ord>N error('Forecast:TooFewSamples','The data should contain at least %d samples.',ord) end if nargin<4, Init = 'e'; end yp = zeros(K,ny); mp = getPredictor(Mss); [Ap,Bp,Cp] = ssdata(mp); if Init=='z' xt = ltitr(Ap, Bp, data.y); % use zero init x0 = xt(end,:); else % Init == 'e' [A1,B1,C1,D1,K1] = ssdata(Mss); x00 = x0est(data.y,A1,B1,C1,D1,K1,size(C1,1),size(B1,2),250e3,eye(size(C1,1))); x0 = ltitr(Ap,Bp,data.y,x00); x0 = x0(end,:); end u = [data.y(end,:); zeros(1,ny)]; for ct = 1:K xt = ltitr(Ap, Bp, u, x0); x0 = xt(end,:); yp(ct,:) = (Cp*x0.').'; u = [yp(ct,:); zeros(1,ny)]; end YP = data; YP.y = yp; YP.u = []; YP.Name = ''; YP.UserData = []; YP.Notes = ''; YP.Tstart = data.Ts*(N+1); Funkcja obliczająca współczynnik predykcji modelu idss %------local function ----------------------------------- function mp = getPredictor(sysd) [A, B, C, D, K] = ssdata(sysd); Ts = sysd.Ts; Ny = size(D,1); mp = idss(A-K*C, [K B-K*D], C, [zeros(Ny), D], zeros(size(A,1),Ny), 'Ts', Ts); mp.InputDelay = [zeros(Ny,1); sysd.InputDelay]; Na razie tyle, czekam na koniec obliczeń i zamieszczam prognozę |
2012-01-11 (21:13)![]() Data rejestracji: 2009-03-19 Ilość postów: 675 ![]() | wpis nr 487 155 [ CZCIONKA MONOSPACE ] Bez dalszej obróbki zestaw liczb: ![]() Podsumowanie po losowaniu o 22:15 |
2012-01-11 (22:22)![]() Data rejestracji: 2009-03-19 Ilość postów: 675 ![]() | wpis nr 487 177 [ CZCIONKA MONOSPACE ] I tak to wyszło ![]() Rewelacji nie ma |
2012-01-12 (11:45)![]() Data rejestracji: 2009-03-19 Ilość postów: 675 ![]() | wpis nr 487 246 [ CZCIONKA MONOSPACE ] Tym razem dwa zestawy liczb. Zestaw pierwszy wydaje się być najbardziej obiecujący ponieważ został przez program wytypowany 12x przy zmieniających się parametrach modelu AR ![]() Drugi zestaw zawiera więcej prognozowanych układów liczbowych, każdy z nich został przez program wytypowany 11x. ![]() Tak, jak wcześniej pisałem prognoza wykorzystuje Model AR w którym zmieniającymi się parametrami są: - współczynnik potęgowania modelu (wykładnik potęgi) - zakres analizowanych losowań od ostatniego znanego wstecz. Ponieważ nie znam tych wartości obliczenia wykonywane są w dwóch zagnieżdżonych pętlach for wykładnik_potęgi =1:50 for zakres_analizowanych_losowan=2:500 .... end end a wynik każdej prognozy jest zapamiętywany w tablicy. Jak łatwo policzyć tych prognoz będzie 50x(500-2). Kolejnym krokiem jest wybranie z tych wszystkich prognoz najczęściej powtarzających się prognoz liczb (nie pojedynczych liczb, a prognoz losowania). W ten sposób z całej bazy otrzymanych prognoz wybrałem dwa zestawy: 1. Zestaw 1 zawiera tylko jedną prognozę, którą program wytypował 12x 2. Zestaw 2 zawiera tych prognoz więcej, bo aż 13 przy czym każdy zestaw liczb w całej bazie prognoz wystąpił 11x. Z drugiego zestawu liczb wybrałem dodatkowo najczęściej powtarzające się liczby. W takim razie nie pozostaje nic innego, jak czekanie na losowanie o 14:00 Adalbert |
2012-01-12 (12:43)![]() Data rejestracji: 2005-02-24 Ilość postów: 6116 ![]() | wpis nr 487 258 [ CZCIONKA MONOSPACE ] Adalbert możesz podawać graficznie jak wyszło ale tylko te zestawy gdzie jest 18 liczb ? |
2012-01-12 (13:20)![]() Data rejestracji: 2009-03-19 Ilość postów: 675 ![]() | wpis nr 487 264 [ CZCIONKA MONOSPACE ] @slawek0001 Nie mogę robić podsumowania tylko dla wybranych zestawów, robię podsumowanie dla wszystkich. Mogę natomiast przedstawić podsumowanie w ten sposób, żeby widać było ile liczba zostało trafione w prognozie zawierającej np, 16, 17, 18, 19 i 20 liczb. Tak zrobię po tym losowaniu Pozdrawiam Adalbert |
2012-01-12 (13:26)![]() Data rejestracji: 2005-02-24 Ilość postów: 6116 ![]() | wpis nr 487 266 [ CZCIONKA MONOSPACE ] Adalbert teraz już wychodzę do pracy będę jutro ale już widzę zestawy 18 liczbowe dają 30% wyjścia i ciekawi mnie jak takie wyjścia układają się w zestawach |
2012-01-12 (16:07)![]() Data rejestracji: 2009-03-19 Ilość postów: 675 ![]() | wpis nr 487 314 [ CZCIONKA MONOSPACE ] Podsumowanie prognozy ![]() Znowu bez rewelacji, ale trzeba walczyć dalej Pracuję nad kolejną prognozą Pozdrawiam Adalbert |
2012-01-12 (20:24)![]() Data rejestracji: 2009-03-19 Ilość postów: 675 ![]() | wpis nr 487 387 [ CZCIONKA MONOSPACE ] Prognoza na 22:15 ![]() |
2012-01-12 (22:21)![]() Data rejestracji: 2009-03-19 Ilość postów: 675 ![]() | wpis nr 487 438 [ CZCIONKA MONOSPACE ] Chyba spadek formy, jutro będzie lepiej: ![]() |
2012-01-13 (10:39)![]() Data rejestracji: 2005-02-24 Ilość postów: 6116 ![]() | wpis nr 487 537 [ CZCIONKA MONOSPACE ] Adalbert nie zmieniaj ustawień na jednych ustawieniach podawaj choć przez 14 dni ![]() |
2012-01-13 (20:18)![]() Data rejestracji: 2009-03-19 Ilość postów: 675 ![]() | wpis nr 487 687 [ CZCIONKA MONOSPACE ] Wygląda to dziwnie, ale coś się w losowaniach zmieniło. Nic więcej sieć nie wytypowała ![]() Pierwszy zestaw wytypowany tylko 11x Drugi zestaw wytypowany tylko 2x Pozdrawiam Adalbert |
2012-01-13 (20:22)![]() Data rejestracji: 2009-03-19 Ilość postów: 675 ![]() | wpis nr 487 689 [ CZCIONKA MONOSPACE ] Oczywiście trzeciej prognozy w drugim zestawie nie ma, tzn. tego: 21-25-27-31-34-35-37-38-39-40-42-45-47-51-53-55-61-62 bo jest w pierwszym zestawie. Spieszyłem się, bo z pracy wróciłem po 18:00 |
| Dodaj wpis w tym temacie | Spis tematów | Wyniki lotto | Strona: 1 2 3 ... 23 24 Wyślij wiadomość do admina |