eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingodchylenie standardowe onlineRe: odchylenie standardowe online
  • Data: 2012-02-04 09:50:49
    Temat: Re: odchylenie standardowe online
    Od: " M.M." <m...@g...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    bartekltg <b...@g...com> napisał(a):

    > W dniu 2012-02-04 08:56, M.M. pisze:
    > > bartekltg<b...@g...com> napisał(a):
    > >
    > >>> Oj! Skąd to wiesz?! Dałoby się np. sprawdzić testem nieparametr
    > ycznym,
    > >>> lecz... nie w każdym przypadku błędy są opisane tzw. rozkład
    > em normalnym
    > >> .
    > >>
    > >> Rozumiesz tekst pisany? Gdy błędy sa takie a takie to
    > >> teg lin jest w pewnym sensie najlepsza. Teraz pojął?
    > >
    > > Regresja liniowa to w ogole wdzieczna metoda. Odznacza sie mala
    > > zlozonoscia i jednoznacznosc wyniku. Mozna miec caly dysk zawalony
    > > danymi i bez problemu znalezc 2-3tys liniowych parametrow.
    >
    > Z ta małą złożonością aż tak bym nie przesadzał.
    Trzeba zbudowac macierz N x (N+1) gdzie N to ilosc parametrow.
    3tys parametrow daje rozmiar 9mln liczb w macierzy. Czyli
    mamy 9mln operacy typu A[ i * N + j ] += input[i] * input[j];
    Ile to moze trwac? Okolo 1-10ms? To mamy okolo 100-1000 wektorow
    na sekunde na jednym rdzeniu. Czyli na 6 rdzeniach na godzine mamy
    od okolo 20 do 200 mln rekordow. W porownaniu do optymalizacji
    nieliniowych smiem nazywac to super wydajnoscia :)

    > Z samej regresji przyjdzmy do prawdziwego zadadnienie,
    > czyli najmniejszych kwadratĂłw.
    > Macierz X, parametry b, wyniki y.
    > Szukamy b takiego, aby wektor Xb-y miał najmniejszą długość.
    >
    > X jest rozmiaru n=[ilość zmiennych] na m=[ilość próbek].
    >
    > Rozwiązanie tego równaniem normalnym sprowadza się
    > do stworzenia układu równań z macierzą n x n, czyli
    > rzeczywiście małego, a X^t*X można policzyć w miarę
    > sprawnie mając pełne X na dysku. Ale ta metoda
    > jest kiepskawa numerycznie (uwarunkowanie
    > nam się skwadratowało, a dla dużych X i tak było
    > najprawdopodobniej niemałe).
    Trzeba chociaz rozwiazanie podstawic do rownania i zwykle
    sprawdzenie zorbic. Dla moich danych nie mialem klopotow
    ze stabilnoscia. Uzywalem tylko zwyklego double i eliminacji
    gaussa napisanej na kolanie.

    > Inne popularne metody które nie mają tego problemu
    > korzystają z jakiś rozkładów X. Ale wtedy niewygodnie
    > to zrobić na dysku:) No i ma te swoje n^3 czasu.
    Czyli iteracyjnie na dysku. Rozmawialismy o tym jakis
    czas temu na tej grupie (albo na C++). Oczywista podstawa to
    sekwencyjny odczyt z dysku. Wtedy mialem bardzo specyficzne
    dane, praktycznie po 5ciu przebiegach najprostszym algorytmem
    uzyskiwalem zadowalajaca dokladnosc.

    > Chyba, że masz jakiś pomysł. Kiedyś była tu (albo
    > w okolicy) dość poważna dyskusja na ten temat.
    Pewna ilosc parametrow traktowalem jako jedna stala, a
    dla pozostalych budowalem zwykla macierz i rozwiazywalem
    eliminacja gaussa. W nastepnym przebiegu inne parametrytry
    traktowalem jak stala i tak w kolo az kazdy parametr
    byl uwzgledniony X razy. Pewnie sa znane ciekawe metody
    wyboru tych parametrow ktore w kolejnej iteracji potraktowac
    jako stala, ja korzystalem z najprostszej, czyli z losowej z
    kontrola powtorzen.

    Ale ostatecznie lepsze rezultaty byly dla okolo 500-3000 parametrow i
    nie bylo potrzeby zajezdzania dyskow.

    Pozdrawiam



    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: