-
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
Następne wpisy z tego wątku
- 06.02.10 01:26 bartekltg
- 06.02.10 05:50 Mariusz Marszałkowski
- 06.02.10 22:22 Roman Werpachowski
- 08.02.10 21:38 bartekltg
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-11-29 Dławik CM
- 2024-11-29 [OT] Lewe oprogramowanie
- 2024-11-29 Błonie => Sales Specialist <=
- 2024-11-29 Warszawa => IT Expert (Network Systems area) <=
- 2024-11-29 Warszawa => Ekspert IT (obszar systemów sieciowych) <=
- 2024-11-29 Warszawa => Head of International Freight Forwarding Department <=
- 2024-11-29 Białystok => Inżynier Serwisu Sprzętu Medycznego <=
- 2024-11-29 Pómpy ciepła darmo rozdajoo
- 2024-11-29 Białystok => Application Security Engineer <=
- 2024-11-29 Białystok => Programista Full Stack (.Net Core) <=
- 2024-11-29 Gdańsk => Software .Net Developer <=
- 2024-11-29 Wrocław => Key Account Manager <=
- 2024-11-29 Gdańsk => Specjalista ds. Sprzedaży <=
- 2024-11-29 Chrzanów => Specjalista ds. public relations <=
- 2024-11-27 Re: UseGalileo -- PRODUKTY I APLIKACJE UŻYWAJĄ JUŻ DZIŚ SYSTEMU GALILEO