eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › Jak dobrze uwarunkować metodę najmniejszych kwadratów
Ilość wypowiedzi w tym wątku: 56

  • 1. Data: 2016-04-01 04:30:30
    Temat: Jak dobrze uwarunkować metodę najmniejszych kwadratów
    Od: Borneq <b...@a...hidden.pl>

    Rysowałem punkty na płaszczyźnie i chciałem do tego dopasować prostą.
    Metodą najmniejszych kwadratów (np.
    http://www.algorytm.org/procedury-numeryczne/metoda-
    najmniejszych-kwadratow.html)
    Współczynnik a był w ogóle nie przystający do danych. Nie wiedziałem
    dlaczego, szukałem błędu a wszystko się zgadzało.
    W końcu odkryłem że miałem float a nie double. Problemem było to , że
    odejmowaliśmy dwie bliskie sobie duże liczby a wynik był małą liczbą.
    Czy można zmienić wzorki tak, by zadanie było lepiej uwarunkowane?


  • 2. Data: 2016-04-01 05:23:38
    Temat: Re: Jak dobrze uwarunkować metodę najmniejszych kwadratów
    Od: Borneq <b...@a...hidden.pl>

    W dniu 01.04.2016 o 04:30, Borneq pisze:
    > odejmowaliśmy dwie bliskie sobie duże liczby a wynik był małą liczbą.
    > Czy można zmienić wzorki tak, by zadanie było lepiej uwarunkowane?

    Dla danych x i y czasem zbiory tych wartości skupiają się w wąskim
    przedziale, np. gdy mam wagi dla chudnięcia z jednego miesiąca, wtedy
    waga skupia się wokół np. 100 kg a dnie wokół liczby 42000 (gdy
    przedstawimy datę jako liczbę dni od roku 1900).
    Gdy odejmiemy od x-ów wartość 42000 a od y-ów 100 wtedy te liczby się
    zmniejszą. Jest to jeden ze sposobów; jak to można uogólnić, np. dla
    przypadku gdy 99% punków jest skupionych a jeden (np. pierwszy) gdzieś
    daleko i nie opłaca się odejmować według tego punktu ale według 99%
    pozostałych?


  • 3. Data: 2016-04-01 12:31:09
    Temat: Re: Jak dobrze uwarunkować metodę najmniejszych kwadratów
    Od: "M.M." <m...@g...com>

    On Friday, April 1, 2016 at 5:23:43 AM UTC+2, Borneq wrote:
    > W dniu 01.04.2016 o 04:30, Borneq pisze:
    > > odejmowaliśmy dwie bliskie sobie duże liczby a wynik był małą liczbą.
    > > Czy można zmienić wzorki tak, by zadanie było lepiej uwarunkowane?
    >
    > Dla danych x i y czasem zbiory tych wartości skupiają się w wąskim
    > przedziale, np. gdy mam wagi dla chudnięcia z jednego miesiąca, wtedy
    > waga skupia się wokół np. 100 kg a dnie wokół liczby 42000 (gdy
    > przedstawimy datę jako liczbę dni od roku 1900).
    > Gdy odejmiemy od x-ów wartość 42000 a od y-ów 100 wtedy te liczby się
    > zmniejszą. Jest to jeden ze sposobów; jak to można uogólnić, np. dla
    > przypadku gdy 99% punków jest skupionych a jeden (np. pierwszy) gdzieś
    > daleko i nie opłaca się odejmować według tego punktu ale według 99%
    > pozostałych?

    Proponuję (na początek) przeskalować wartości w każdej kolumnie do
    przedziału 0-1.

    Pozdrawiam


  • 4. Data: 2016-04-01 12:51:47
    Temat: Re: Jak dobrze uwarunkować metodę najmniejszych kwadratów
    Od: Borneq <b...@a...hidden.pl>

    W dniu 01.04.2016 o 12:31, M.M. pisze:
    > Proponuję (na początek) przeskalować wartości w każdej kolumnie do
    > przedziału 0-1.

    Ja myślałem o tym, by od współrzędnych x (może wystarczą same x) odjąć
    średnią x. Tu niestety będziemy mieli dwa przebiegi, ale dość mała
    modyfikacja potem wyniku.


  • 5. Data: 2016-04-01 13:38:57
    Temat: Re: Jak dobrze uwarunkować metodę najmniejszych kwadratów
    Od: "M.M." <m...@g...com>

    On Friday, April 1, 2016 at 12:51:49 PM UTC+2, Borneq wrote:
    > W dniu 01.04.2016 o 12:31, M.M. pisze:
    > > Proponuję (na początek) przeskalować wartości w każdej kolumnie do
    > > przedziału 0-1.
    >
    > Ja myślałem o tym, by od współrzędnych x (może wystarczą same x) odjąć
    > średnią x. Tu niestety będziemy mieli dwa przebiegi, ale dość mała
    > modyfikacja potem wyniku.

    W jakim celu stosujesz aproksymację multiliniową?
    Pozdrawiam


  • 6. Data: 2016-04-01 13:55:40
    Temat: Re: Jak dobrze uwarunkować metodę najmniejszych kwadratów
    Od: Borneq <b...@a...hidden.pl>

    W dniu 01.04.2016 o 13:38, M.M. pisze:
    > W jakim celu stosujesz aproksymację multiliniową?

    Jaką multiliniową? Chće aby nie odejmować od jednej dużej liczby drugą
    podobną, uzyskując małą resztę

    Pozdrawiam



  • 7. Data: 2016-04-01 14:35:19
    Temat: Re: Jak dobrze uwarunkować metodę najmniejszych kwadratów
    Od: "M.M." <m...@g...com>

    On Friday, April 1, 2016 at 1:55:41 PM UTC+2, Borneq wrote:
    > W dniu 01.04.2016 o 13:38, M.M. pisze:
    > > W jakim celu stosujesz aproksymację multiliniową?
    >
    > Jaką multiliniową? Chće aby nie odejmować od jednej dużej liczby drugą
    > podobną, uzyskując małą resztę
    >
    > Pozdrawiam


    Sorki, nie kumam.
    Czy masz zbyt duży błąd w wyniku odejmowania?

    a - b = c +- error ?

    Może zwiększyć precyzję? Kompilator gcc (od niedawna) ma duże i wydajne typy
    zmiennoprzecinkowe.

    Odejmowań jest wiele czy jedno? W przypadku wielu dodawań, można posortować
    liczby od najmniejszych (co do wartości bezwzględnej), no i dodawać od w
    takiej kolejności - czasami to to zwiększa dokładność. Może jakoś ten
    trik da się w Twoim przypadku zastosować?

    Pozdrawiam


  • 8. Data: 2016-04-01 14:37:54
    Temat: Re: Jak dobrze uwarunkować metodę najmniejszych kwadratów
    Od: Borneq <b...@a...hidden.pl>

    W dniu 01.04.2016 o 14:35, M.M. pisze:
    > Sorki, nie kumam.
    > Czy masz zbyt duży błąd w wyniku odejmowania?
    >
    > a - b = c +- error ?
    >
    > Może zwiększyć precyzję? Kompilator gcc (od niedawna) ma duże i wydajne typy
    > zmiennoprzecinkowe.

    Gdy zwiększyłem do double - działa (choć można wyobrazić sobie złośliwy
    przykład gdzie nawet double nie będzie działało)
    Ale mi chodzi o zmianę algorytmu a raczej wzorków na takie, gdzie
    dokładność wyniku nie zależy tak bardzo od precyzji typów
    zmiennoprzecinkowych;


  • 9. Data: 2016-04-01 15:19:14
    Temat: Re: Jak dobrze uwarunkować metodę najmniejszych kwadratów
    Od: "M.M." <m...@g...com>

    On Friday, April 1, 2016 at 2:37:55 PM UTC+2, Borneq wrote:
    > W dniu 01.04.2016 o 14:35, M.M. pisze:
    > > Sorki, nie kumam.
    > > Czy masz zbyt duży błąd w wyniku odejmowania?
    > >
    > > a - b = c +- error ?
    > >
    > > Może zwiększyć precyzję? Kompilator gcc (od niedawna) ma duże i wydajne typy
    > > zmiennoprzecinkowe.
    >
    > Gdy zwiększyłem do double - działa (choć można wyobrazić sobie złośliwy
    > przykład gdzie nawet double nie będzie działało)
    > Ale mi chodzi o zmianę algorytmu a raczej wzorków na takie, gdzie
    > dokładność wyniku nie zależy tak bardzo od precyzji typów
    > zmiennoprzecinkowych;

    Właśnie nie wiem na jakim etapie chcesz podjąć próbę zmiany wzorków.

    Na etapie przygotowania danych:
    1) przeskalowanie
    2) odjęcie średniej
    3) normalizacja

    Na etapie rozwiązywania równania:
    1) eliminacja gaussa z połowicznym lub pełnym wyborem
    elementu podstawowego

    Można zmodyfikować także wzór w aproksymacji multiliniowej (aproksymacja
    wielomianem jest w gruncie rzeczy także aproksymacją multiliniową). Możesz
    nie tylko minimalizować sumę kwadratów różnic, ale także sumę kwadratów
    parametrów. Po uproszczeniu, minimalizacja sumy kwadratów różnic sprowadza
    się do dodania (jakis) dodatnich liczb do głównej przekątnej.

    Szczerze, to nie mam pojęcia czy w czymś pomogłem :)

    Pozdrawiam


  • 10. Data: 2016-04-01 17:58:43
    Temat: Re: Jak dobrze uwarunkować metodę najmniejszych kwadratów
    Od: peter <T...@n...nie.wiem>

    Borneq pisze:
    > Rysowałem punkty na płaszczyźnie i chciałem do tego dopasować prostą.
    > Metodą najmniejszych kwadratów (np.
    > http://www.algorytm.org/procedury-numeryczne/metoda-
    najmniejszych-kwadratow.html)
    > Współczynnik a był w ogóle nie przystający do danych. Nie wiedziałem dlaczego,
    szukałem
    > błędu a wszystko się zgadzało.
    > W końcu odkryłem że miałem float a nie double. Problemem było to , że odejmowaliśmy
    dwie
    > bliskie sobie duże liczby a wynik był małą liczbą.

    to jest elementarz metod numerycznych. Błąd różnicy gwałtownie wzrasta gdy
    odejmujemy
    bliskie liczby.

    > Czy można zmienić wzorki tak, by zadanie było lepiej uwarunkowane?

    a = ILxy/SKx

    ILxy= Suma( (xi-xsr)(yi-ysr) )
    SKx = Suma( (xi-xsr)^2 )

    b = ysr - a xsr

    sr - średnia

    --
    peter

strony : [ 1 ] . 2 ... 6


Szukaj w grupach

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: