eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingmatlab taki wydajny?Re: matlab taki wydajny?
  • Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!new
    s.nask.pl!news.nask.org.pl!news.unit0.net!feeder.news-service.com!postnews.goog
    le.com!u26g2000yqm.googlegroups.com!not-for-mail
    From: Mariusz Marszałkowski <m...@g...com>
    Newsgroups: pl.comp.programming
    Subject: Re: matlab taki wydajny?
    Date: Fri, 5 Feb 2010 16:26:24 -0800 (PST)
    Organization: http://groups.google.com
    Lines: 106
    Message-ID: <5...@u...googlegroups.com>
    References: <5...@a...googlegroups.com>
    <hj1kmo$lt3$1@solani.org>
    <3...@v...googlegroups.com>
    <hj1qkn$6a9$1@solani.org>
    <6...@e...googlegroups.com>
    <hj1st9$qrf$1@news.onet.pl>
    <5...@2...googlegroups.com>
    <hj2c9j$7u5$1@news.onet.pl> <hkc9r4$ndj$1@news.interia.pl>
    <6...@l...googlegroups.com>
    <2...@f...googlegroups.com>
    <7...@n...googlegroups.com>
    <7...@a...googlegroups.com>
    NNTP-Posting-Host: 89.229.16.190
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    X-Trace: posting.google.com 1265415985 4279 127.0.0.1 (6 Feb 2010 00:26:25 GMT)
    X-Complaints-To: g...@g...com
    NNTP-Posting-Date: Sat, 6 Feb 2010 00:26:25 +0000 (UTC)
    Complaints-To: g...@g...com
    Injection-Info: u26g2000yqm.googlegroups.com; posting-host=89.229.16.190;
    posting-account=xjvq9QoAAAATMPC2X3btlHd_LkaJo_rj
    User-Agent: G2/1.0
    X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.2; pl; rv:1.9.1.7)
    Gecko/20091221 Firefox/3.5.7,gzip(gfe),gzip(gfe)
    Xref: news-archive.icm.edu.pl pl.comp.programming:184719
    [ ukryj 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: