Błędy pomiarów

Procesy stochastyczne. Sposoby racjonalizowania wielkich ilości informacji. Matematyka w naukach społecznych.
Aggie
Użytkownik
Użytkownik
Posty: 4
Rejestracja: 2 lip 2017, o 00:28
Płeć: Kobieta
Lokalizacja: Polska
Podziękował: 1 raz

Błędy pomiarów

Post autor: Aggie »

Cześć, mam nadzieję, że ktoś da radę mi wyjaśnić skąd to wynika...
Trenuję sieć neuronową dwiema metoda, to czy wybrany model jest poprawny sprawdzany jest za pomocą pierwiastka błędu średniokwadratowego (RMSE). Spróbuję opisać, gdzie leży problem. Metoda 1. wskazuje korelację R=0,93; metoda 2. R=0,62. Z tym, że przy obliczaniu błędów RMSE (mam 20 wyjść, więc 20 błędów), to niby metoda 2. jest lepsza... Co mnie trochę dziwi, bo jeśli dobrze rozumiem, to RMSE oblicza się w stosunku do prognozowanej zmiennej. Moim idealnym przypadkiem byłoby gdyby wartość oczekiwana = 1, reszta danych =0. I już po samych danych widać, że metoda 1. spełnia to założenia, natomiast po obliczeniu błędu nie...Jak się ma w takim razie RMSE do korelacji i jak rozumieć w takim razie lepsze wyniki dla metody 2. RMSE? Ktokolwiek?

I tak metoda 1. (fragment danych):
0.0017 0.0019 0.0020 0.0019 0.0019 0.0019 0.0019
-0.0007 0.0008 0.0009 0.0008 0.0008 0.0008 0.0008
0.9898 0.9988 0.9833 0.9988 0.9988 0.9988 0.9988 <--- blisko 1
-0.0010 -0.0007 -0.0005 -0.0007 -0.0007 -0.0007 -0.0007
0.0046 -0.0007 -0.0010 -0.0007 -0.0007 -0.0007 -0.0006


RMSE = 0.2461

Metoda 2. (fragment danych):
-0.1722 0.0782 -0.2064 0.0455 -0.0476 0.0389 0.0220
0.0840 -0.0064 0.2380 0.0652 0.0073 -0.0595 0.0525
0.3302 0.5377 0.5001 0.4836 0.5625 0.5293 0.5404 <--- nope.
0.0337 -0.0391 -0.0636 -0.0355 -0.0073 -0.0055 0.0074
-0.0252 0.0282 0.0415 0.0363 -0.0143 -0.0401 -0.0187


RMSE =0.2074
Awatar użytkownika
Igor V
Użytkownik
Użytkownik
Posty: 1605
Rejestracja: 16 lut 2011, o 16:48
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 18 razy
Pomógł: 604 razy

Re: Błędy pomiarów

Post autor: Igor V »

Ale w sensie że np wrzucasz jakiś wektor wejściowy do sieci i na wyjściu otrzymujesz :
\(\displaystyle{ [0.9898, 0.9988, 0.9833, 0.9988, 0.9988, 0.9988, 0.9988]}\)
A twój oczekiwany to \(\displaystyle{ [1, 1 ,1, 1 ,1, 1, 1]}\) ?
Bo jeśli tak, to coś mi się nie wydaje żeby faktycznie RMSE był większy niż w tym drugim przypadku.
Aggie
Użytkownik
Użytkownik
Posty: 4
Rejestracja: 2 lip 2017, o 00:28
Płeć: Kobieta
Lokalizacja: Polska
Podziękował: 1 raz

Re: Błędy pomiarów

Post autor: Aggie »

Tak właśnie.
No niestety tak wychodzi, jak podałam wyżej.
Próbowałam to sobie prześledzić i myślę, że to wina tego, że cały zbiór wyjściowy w metodzie 2. jest dość rozrzucony, ale oscyluje wokół zera.

Dajmy na to (przykład):
Oczekiwana wartość : p=[1 1 1 1 0 0 0 0 0 0 0 0]
Metoda 1.: y1=[ 0.9976 0.9976 0.9976 0.9975 -0.0096 -0.0050 0.0003 0.3916 0.0182 -0.0001 -0.0001 -0.0001 ]
Metoda 2.: y2=[ 0.9150 0.6609 0.7384 1.1660 -0.0419 0.1132 -0.0364 0.0700 0.2010 0.2023 0.2886 -0.0188 ]

RMSE = sqrt(sum((p-y1).^2)/108)
Więc w 1. przypadku jeśli jest p-y1 i gdzieś wyjdzie zamiast 0, coś w okolicy 1 to przy obliczaniu błędu będzie (0-1)^2 i błąd będzie duży.
W drugim przypadku nie ma idealnych 0, 1, więc przy (p-y2)^2 błędy będą wydawały się małe we wszystkich przypadkach. Skoro RMSE ma spawdzać jak zachowuje się dana grupa w stosunku do całości (w moim przypadku 108) to jeśli wszędzie błędy są małe (ale nie równe 0), to RMSE będzie wskazywał mały błąd, co będzie trochę zakłamaniem, bo mojego targetu nie osiąga. Dobrze rozumuje?
Awatar użytkownika
Igor V
Użytkownik
Użytkownik
Posty: 1605
Rejestracja: 16 lut 2011, o 16:48
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 18 razy
Pomógł: 604 razy

Re: Błędy pomiarów

Post autor: Igor V »

Nie wiem jak Ty to liczysz. W Matlabie przed chwilą policzyłem że :

Kod: Zaznacz cały

y1 = [0.9976, 0.9976, 0.9976, 0.9975, -0.0096, -0.0050, 0.0003, 0.3916, 0.0182, -0.0001, -0.0001, -0.0001];
y2 = [0.9150, 0.6609, 0.7384, 1.1660, -0.0419, 0.1132, -0.0364, 0.0700, 0.2010, 0.2023, 0.2886, -0.0188];
y = [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0];
error1 = sqrt(sum((y-y1).^2)/length(y))
error2 = sqrt(sum((y-y2).^2)/length(y))

error1 = 0.1132
error2 = 0.1835
Podobnie wcześniej co liczyłaś, też wychodzi że w pierwszym przypadku błąd jest mniejszy.
Aggie pisze:Skoro RMSE ma spawdzać jak zachowuje się dana grupa w stosunku do całości (w moim przypadku 108)
Nie, to jest liczba próbek.-- 2 lip 2017, o 17:02 --EDIT:
Właściwie to nie próbek, tylko rozmiar wektora wyjściowego.

Zastanów się co właściwie liczysz. Bo traktujesz liczenie tych parametrów jak dla par wektorów żeby porównać, ale po dzieleniu widać że chcesz uśredniać po wszystkich \(\displaystyle{ 108}\) przykładach. Rozsądniej wg. mnie jest zsumować kwadraty różnic wartości przewidywanych i referencyjnych po wszystkich przykładach, a następnie dopiero to podzielić przez 108 i pierwiastek. I to jest jeden błąd. A drugi można policzyć tak samo, tylko dać w różnicy korelację i korelację referencyjną. I to próbować porównywać. Albo spróbować tak jak mówiłem wyżej. Wtedy ten liczony błąd nie jest po różnych obserwacjach jednego atrybutu, ale po jednej realizacji zbioru atrybutów. Zachowuje się natomiast tak samo, nieujemny, im bliżej zera tym lepiej a idealnie to 0.
Aggie
Użytkownik
Użytkownik
Posty: 4
Rejestracja: 2 lip 2017, o 00:28
Płeć: Kobieta
Lokalizacja: Polska
Podziękował: 1 raz

Re: Błędy pomiarów

Post autor: Aggie »

Może niefortunnie podałam te dane, ale jeden wektor to u mnie 108 wyników, a chciałam tylko pokazać o co mi chodzi...

EDIT: RMSE liczę tak, bo u mnie to jest macierz wyników: sqrt(sum((TZT(1,:)-y(1,:)).^2)/108) przy czym to jest dla pierwszej próbki stąd 1. Wektory wyjściowe TZT i y mają długość 108, więc chyba mogę dzielić przez 108.
Wkleję teraz przykładowy wynik, przy czym tutaj: TZT = a, y=b

Metoda 1.:
Ukryta treść:    
Metoda 2.:
Ukryta treść:    
Położenie jedynek się różni (wzięłam po prostu inną próbkę), bo chciałam pokazać, że rsme wychodzi podobne (mogę dać przykład nawet mniejszego), przy zupełnie innych wynikach. Widać, że przy drugiej metodzie są w większości większe odchylenia od 0 i mniejsze podobieństwo do 1.
Awatar użytkownika
Igor V
Użytkownik
Użytkownik
Posty: 1605
Rejestracja: 16 lut 2011, o 16:48
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 18 razy
Pomógł: 604 razy

Re: Błędy pomiarów

Post autor: Igor V »

Wierzę na słowo że tak wychodzi. A jeśli tak, to nie jest to mimo wszystko wg mnie problem, o ile różnice w wartościach błędów nie są "za duże", bo w zasadzie jest to tylko informacja o pewnym odchyleniu od estymowanego parametru. Być może wynika to faktycznie z rozrzutu danych, ale żeby to ustalić musiałabyś przeprowadzić dodatkowe eksperymenty.
Aggie
Użytkownik
Użytkownik
Posty: 4
Rejestracja: 2 lip 2017, o 00:28
Płeć: Kobieta
Lokalizacja: Polska
Podziękował: 1 raz

Re: Błędy pomiarów

Post autor: Aggie »

Ok. Dzięki za wszystkie odpowiedzi : )
Masz jakieś konkretne na myśli? Da się to jeszcze czymś sprawdzić?
Awatar użytkownika
Igor V
Użytkownik
Użytkownik
Posty: 1605
Rejestracja: 16 lut 2011, o 16:48
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 18 razy
Pomógł: 604 razy

Re: Błędy pomiarów

Post autor: Igor V »

Możesz sobie po prostu sztucznie wygenerować te dane i zobaczyć czy Twoje podejrzenia się sprawdzają.
Błąd się przydaje głównie do tego jak chcesz porównać np: uczenie i testowanie i zobaczyć czy system się uczy i czy nie ma przeuczenia. Lepszym porównywaniem modeli jest jakość klasyfikacji końcowej (jakbyś np: zaokrągliła do najbliższej liczby całkowitej te liczby i potem porównywała wektory), matrix confusion, krzywe ROC, jakieś \(\displaystyle{ F_1}\) score itp.
ODPOWIEDZ