eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingmatlab taki wydajny? › Re: matlab taki wydajny?
  • Data: 2010-02-06 00:26:24
    Temat: Re: matlab taki wydajny?
    Od: Mariusz Marszałkowski <m...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On 5 Lut, 22:58, bartekltg <b...@g...com> wrote:
    > On 5 Lut, 18:17, Mariusz Marszałkowski <m...@g...com> wrote:
    >
    > > Mam parametry wejsciowe x_i i np. jeden parametr wyjsciowy y.
    > > Nastepnie rozszerzam parametry wejsciowe o jeden dodatkowy
    > > przez poddanie nieliniowej funkcji kazdej kombinacji funkcja( x_i ,
    > > x_j ).
    > > Jesli mam 50 parametrow wejsciowych, to wychodzi 2500 kombinacji.
    > > WIec trzeba 2500 razy ulozyc uklad rownan normalnych, kazdy
    > > rozwiazac i podac kombinacje x_i, x_j ktora daje najlepsze
    > > dopasowanie.
    > > To co zwraca funkcja( x_i , x_j ) traktujemy jako 51-szy parametr.
    >
    > Nie trzeba za kazdym razem ukladac calego zagadnienia...

    Chyba jednak trzeba, ponieważ podczas budowania układu w każdym z
    równań występuje mnożenie przez nowy element funk( x_i , x_j ) ?

    > > To też dobra metoda, szczegolnie jesli do glownej przekatnej doda
    > > sie pewne liczby wieksze od zera.
    >
    > ?
    Mamy wektory doświadczalne których elementy to x_1, x_2, y.
    Normalnie szukamy najlepszego dopasowania funkcją:
    f(x) = a * x_1 + b * x_2 + c

    Czyli minimalizujemy sume ( a * x_1 + b * x_2 + c - y )^2

    Ale możemy też minimalizować trochę inne wyrażenie:
    ( a * x_1 + b * x_2 + c - y )^2 + C1 * a^2 + C2 * b^2 + C3 * c^2

    Jak policzysz teraz pochodne tego wyrażenia po a,b,c;
    przyrównasz do zera, stworzysz układ równań liniowych,
    to wyjdzie że główna przekątna została zwiększona o
    odpowiednio 2*C1,2*C2,2*C3. W ten sposób automatycznie
    dajesz karę za duże wartości parametrów, a wiec parametry
    o mniejszym znaczeniu mają stosunkowo mniejsze wartości.

    > > Raczej parametr * funkcja( x_i , x_j )
    >
    > Czyli to cały czas liniowe zagadneinie najmnieszych kwadratow.
    > Bawienie sie w nieliniowe solvery tylko dodanarzut.
    Tak, to cały czas dopasowanie najmniejszymi kwadratami. Po
    zbadaniu siłowym, po wyczuciu intuicyjnym wybiera się
    funkcje które dzialaja najlepiej i dopiero za drugim razem
    optymalizacja nieliniowa.


    > > > Miliardy wierszy to gigabajty.
    >
    > > Niestety to moja zmora. Z reguly brakuje dobrych danych przy
    > > data minning. Moje dane nie mieszcza sie na 10 nowoczesnych
    > > dyskach. A moze jakas baza danych ma zaimplementowana
    > > regresje liniowa dla wielu parametrow? Jakis odpowiednik
    > > excelowskiego reglinp?
    >
    > To wcale nie jest tak duzo danych jak na zadanie, ktore chesz
    > rozwiazac. Przyjrzyj sie dokladnie zagadnieniu. Jesli nie macie
    > problemu z tym, ze rozwiazujesz to rownaniem normalnym
    > (uwarunkowanie etc)
    Pojawiają się problemy ze złym uwarunkowaniem. Wtedy wywalam
    całe równanie :)

    > Jesli bys chciel dodac wiecej niz tylko jedna,
    > 'nieliniowa funkcja od tabelek' dojdzie cos rzedu
    > 3mln elementow(chyba, ze .. dluzsza historia;).
    Najpierw jedną, później drugą, później trzecią...
    W zaleznosci jaka daje jakie efekty, troche zgadywania,
    w koncu rozrasta sie i na koniec jeszcze metoda nieliniowa.

    > Wszytko liczysz w jednym przebiegu odczytywania danych,
    > nastepnie bawisz sie jedynie z _malymi_ obiektami (51x51)
    > X.' * X i X.' * y   ( X.' -transponowane X).
    >
    > Samo policzenie tych iloczynow jest wiekszym problemem.
    > Zajmie to na nowym komputerze cos rzedu wieksze kilka godzin
    > na miliard danych:)
    Policzenie tego jest proporcjonalne do odczytu danych z dysku.
    Ale czasami mam bardzo dużo zer, wtedy moza skompresowac
    i trzymac wszystko w RAM.

    > Sumowac tez trzeba sprytnie (albo odpowiednio podwyzszajac
    > przecyzje, lepiej sprytnie, nieco to zalezy od danych).
    Mozna robic dwie sumy, jedna mala, a druga duza. Jak ta mala
    urosnie na tyle, alby miala wplyw na duza to mozna polaczyc
    obie. Nie bawilem sie w to nigdy. Ciekawe czy da sie rozwiazac
    stabilniej uklad rownan, jakbym kazdy parametr mial wyrazony
    jako dwie sumy? Hmmm... moze to prosty sposob na zwiekszenie
    stabilnosci?

    > Dobrym pomyslem jest tez zastanowienie sie, czy iloscny skalarnego
    > mniej istotnych par nie mozna przyblizac, szacowan np za pomoca
    > znacznie mniejszego podwektora Wtedy i zagadnienie uwzgledniajace
    > 52 parametry na zwyklym PC.

    > Moze potrzebujecie matematyka z delikatnym zamilowaniem do
    > numerkow? :-)

    Raczej potrzebujemy cudu :)

    > Twoje zagadnienie jest prostrze, programik czyta, mnozy, dodaje, goto
    > start;)
    Tak, wiem :)

    Pozdrawiam

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: