Forum strony www.multipasko.pl [Regulamin]


Dodaj wpis w tym temacie
Spis tematów
Login:

Hasło:
Strona: 1 2 3 ... 23 24
Wyślij wiadomość do admina

Przewiń wpisy ↓

Prognoza MM z sieci neuronowej

2012-01-04 (21:25)

status oxys
Data rejestracji: 2011-11-28
Ilość postów: 25

13262
wpis nr 485 367
[ CZCIONKA SPECJALNA ]

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)

status Adalbert
Data rejestracji: 2009-03-19
Ilość postów: 675

4335
wpis nr 485 381
[ CZCIONKA SPECJALNA ]

@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)

status Adalbert
Data rejestracji: 2009-03-19
Ilość postów: 675

4335
wpis nr 485 387
[ CZCIONKA SPECJALNA ]

Tylko pewniak 56 się wylosował:







Do jutra

Adalbert
2012-01-05 (13:41)

status slawek001
Data rejestracji: 2005-02-24
Ilość postów: 6116

721
wpis nr 485 487
[ CZCIONKA SPECJALNA ]

Adalbert możesz bardziej obrazkowo podawać jak proponowane są liczby do wyjścia ?
2012-01-05 (14:30)

status Adalbert
Data rejestracji: 2009-03-19
Ilość postów: 675

4335
wpis nr 485 506
[ CZCIONKA SPECJALNA ]

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)

status slawek001
Data rejestracji: 2005-02-24
Ilość postów: 6116

721
wpis nr 485 562
[ CZCIONKA SPECJALNA ]

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)

status oxys
Data rejestracji: 2011-11-28
Ilość postów: 25

13262
wpis nr 487 100
[ CZCIONKA SPECJALNA ]

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)

status Adalbert
Data rejestracji: 2009-03-19
Ilość postów: 675

4335
wpis nr 487 109
[ CZCIONKA SPECJALNA ]

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)

status Adalbert
Data rejestracji: 2009-03-19
Ilość postów: 675

4335
wpis nr 487 155
[ CZCIONKA SPECJALNA ]

Bez dalszej obróbki zestaw liczb:







Podsumowanie po losowaniu o 22:15
2012-01-11 (22:22)

status Adalbert
Data rejestracji: 2009-03-19
Ilość postów: 675

4335
wpis nr 487 177
[ CZCIONKA SPECJALNA ]

I tak to wyszło







Rewelacji nie ma
2012-01-12 (11:45)

status Adalbert
Data rejestracji: 2009-03-19
Ilość postów: 675

4335
wpis nr 487 246
[ CZCIONKA SPECJALNA ]

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)

status slawek001
Data rejestracji: 2005-02-24
Ilość postów: 6116

721
wpis nr 487 258
[ CZCIONKA SPECJALNA ]

Adalbert możesz podawać graficznie jak wyszło ale tylko te zestawy gdzie jest 18 liczb ?
2012-01-12 (13:20)

status Adalbert
Data rejestracji: 2009-03-19
Ilość postów: 675

4335
wpis nr 487 264
[ CZCIONKA SPECJALNA ]

@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)

status slawek001
Data rejestracji: 2005-02-24
Ilość postów: 6116

721
wpis nr 487 266
[ CZCIONKA SPECJALNA ]

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)

status Adalbert
Data rejestracji: 2009-03-19
Ilość postów: 675

4335
wpis nr 487 314
[ CZCIONKA SPECJALNA ]

Podsumowanie prognozy







Znowu bez rewelacji, ale trzeba walczyć dalej



Pracuję nad kolejną prognozą

Pozdrawiam

Adalbert
2012-01-12 (20:24)

status Adalbert
Data rejestracji: 2009-03-19
Ilość postów: 675

4335
wpis nr 487 387
[ CZCIONKA SPECJALNA ]

Prognoza na 22:15





2012-01-12 (22:21)

status Adalbert
Data rejestracji: 2009-03-19
Ilość postów: 675

4335
wpis nr 487 438
[ CZCIONKA SPECJALNA ]

Chyba spadek formy, jutro będzie lepiej:





2012-01-13 (10:39)

status slawek001
Data rejestracji: 2005-02-24
Ilość postów: 6116

721
wpis nr 487 537
[ CZCIONKA SPECJALNA ]

Adalbert nie zmieniaj ustawień na jednych ustawieniach podawaj choć przez 14 dni
2012-01-13 (20:18)

status Adalbert
Data rejestracji: 2009-03-19
Ilość postów: 675

4335
wpis nr 487 687
[ CZCIONKA SPECJALNA ]

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)

status Adalbert
Data rejestracji: 2009-03-19
Ilość postów: 675

4335
wpis nr 487 689
[ CZCIONKA SPECJALNA ]

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 lottoStrona: 1 2 3 ... 23 24
Wyślij wiadomość do admina