szukanie zaawansowane
 [ Posty: 11 ] 
Autor Wiadomość
Mężczyzna Offline
PostNapisane: 17 sty 2019, o 11:47 
Użytkownik

Posty: 66
Lokalizacja: nie wiem
Witam,

możliwe, że jest to nieodpowiedni dział dla tego postu, ale nie wiem :).

W skrócie mam problem z wymyśleniem funkcji której wynik można by traktować jako miarę prawdopodobieństwa.

Od początku, mamy dane
Kod:
1
2
A = id jakiejś osoby
  X = odległość


Żeby to jeszcze trochę rozjaśnić, napisałem sobie system do rozpoznawania użytkownika na postawie jego głosu, w celu identyfikacji próbki głosu używam sobie uproszczonego K-NN, tak więc jako wynik dostanę odległości pomiędzy tą nowa identyfikowaną próbką, a znanymi użytkownikami. Najmniejsza odległość wskazuje na najlepsze dopasowanie.

Czyli przykładowe dane wyglądają:

Kod:
1
2
3
4
5
6
7
8
9
10
11
12
 
            "key": "Roki",
            "distance": 0.1692819930162579

            "key": "Puszek",
            "distance": 0.31778620447702854

            "key": "Marcin",
            "distance": 0.6850319360693972

            "key": "Karo",
            "distance": 1.8420417613065367


Teraz trochę teorii, dystans = 0 jest praktycznie nieosiągalny, taki wynik otrzymamy tylko i wyłącznie jeśli do stworzenia modelu użytkownika użyliśmy jednego nagrania, po czym to samo nagranie poddaliśmy identyfikacji. Załóżmy więc, że w istniejącym systemie wartość zerowa nie może wystąpić.

Teraz od tyłu - nie ma ograniczenia co do maksymalnego dystansu(w powyższym przykładzie wynosi 1.8420..), teoretycznie nie powinien on w tej skali i przy takim charakterze danych być znacząco większy, ale teoretycznie mógłby nawet wynieś 100.

I teraz przechodzimy do właściwego pytania, chwiałbym stworzyć skale prawdopodobieństwa dla tych danych, tak aby każdy wynik miał dodatkowo wartość prawdopodobieństwa, które łącznie sumują się do 100:

Kod:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
            "key": "Roki",
            "likelihoodRatio": 93,
            "distance": 0.1692819930162579

            "key": "Puszek",
            "likelihoodRatio": 5,
            "distance": 0.31778620447702854

            "key": "Marcin",
            "likelihoodRatio": 1,5,
            "distance": 0.6850319360693972

            "key": "Karo",
            "likelihoodRatio": 0.5,
            "distance": 1.8420417613065367


Ale nie mam pomysłu jak to policzyć, żeby miało sens. Zastanawiałem się nad tym, żeby przyjąć nieosiągalną odległość = 0 jako 100%, a najgorszy wynik jako jakiś mały procent i tak policzyć procent dla każdego użytkownika, ale wtedy jest to dość sztuczne i tak naprawdę przy niektórych wynikach może być całkowicie pozbawione sensu. Jeśli ktoś ma jakiś pomysł jak do tego podejść to zapraszam do dyskusji ;)
Uniwersytet Wrocławski Instytut Matematyczny - rekrutacja 2019
Góra
Mężczyzna Offline
PostNapisane: 17 sty 2019, o 14:35 
Użytkownik
Avatar użytkownika

Posty: 3105
Lokalizacja: Radom
Jeżeli masz pbserwację x i k jej najbliższych sąsiadów
- y_1,...,y_k to
Prawdopodobieństwo należenia do klasy \PP(x \in c)
możesz oszacować przez
\frac{ \sum_{i = 1}^{k} 1_{class(y_i) = c} }{k}
lub na przykład przez
p_c =  \sum_{i = 1}^{k} \frac{1}{dist(x,y_i)} \cdot 1_{class(y_i) = c} }
i
\PP(x \in c) = \frac{p_c}{ \sum_{l}^{} p_l}
Góra
Mężczyzna Offline
PostNapisane: 17 sty 2019, o 16:23 
Użytkownik

Posty: 66
Lokalizacja: nie wiem
leg14, możesz proszę rozwinąć czym jest
1_{class(y_i) = c} }, rozumiem czym jest y_i i c, ale nie bardzo czym class
Góra
Mężczyzna Offline
PostNapisane: 17 sty 2019, o 16:29 
Użytkownik
Avatar użytkownika

Posty: 3105
Lokalizacja: Radom
klasą, czyli osobą, do której należy dane nagranie
ta jedynka to jest funkcja charaketerystyczna, więc
1_{class(y_i) = c} jest równe 1 wtedy i tylko wtedy, gdy nagranie y_i
należy do osoby c
0 w przeciwnym przypadku
Góra
Mężczyzna Offline
PostNapisane: 17 sty 2019, o 16:37 
Użytkownik

Posty: 66
Lokalizacja: nie wiem
leg14, Ok, a jeszcze czym jest p_l
Góra
Mężczyzna Offline
PostNapisane: 17 sty 2019, o 16:39 
Użytkownik
Avatar użytkownika

Posty: 3105
Lokalizacja: Radom
Masz zdefiniowane p_c
Ta suma w mianowniku to jest suma po p_c od wszystkich k- sasiadów
Góra
Mężczyzna Offline
PostNapisane: 17 sty 2019, o 16:45 
Użytkownik

Posty: 66
Lokalizacja: nie wiem
leg14, ok rozumie, ale jeśli rozumiem wszystko poprawnie to przy obliczeniu prawdopodobieństwa muszę znać wynik 1_{class(y_i) = c} czyli czy wynosi 0 czy 1?
Góra
Mężczyzna Offline
PostNapisane: 17 sty 2019, o 16:47 
Użytkownik
Avatar użytkownika

Posty: 3105
Lokalizacja: Radom
no tak - musisz wiedzieć, czy y_i jest nagraniem osoby c, czy nie - masz tę informację dostępną skoro używasz k-nn
Góra
Mężczyzna Offline
PostNapisane: 17 sty 2019, o 16:54 
Użytkownik

Posty: 66
Lokalizacja: nie wiem
leg14, dobra rozumiem podejście, widzisz mnie trochę martwi fakt, ze tak naprawdę nie wiem czy to co zwrócił K-NN jest poprawne, bo on zawsze zwróci jakiegoś użytkownika, a ja zakładam, że nie tylko próbki istniejących użytkowników są sprawdzane, w takim wypadku K-NN i tak zwróci jakiegoś użytkownika, możliwe, że bardzo dużym dystansem, ale zwróci. Zastanawiam się czy najpierw nie sprawdzić skuteczności systemu krzywa ROC, i potem jakoś wpleć tą daną do obliczania prawdopodobieństwa.

W każdym razie dziękuje za pomoc i poświęcony czas ;)
Góra
Mężczyzna Offline
PostNapisane: 17 sty 2019, o 19:24 
Moderator

Posty: 2770
Lokalizacja: Seattle, WA
Możesz poszukać w https://en.wikipedia.org/wiki/Softmax_function lub https://en.wikipedia.org/wiki/Multinomi ... regression
Góra
Mężczyzna Offline
PostNapisane: 31 sty 2019, o 11:49 
Użytkownik

Posty: 66
Lokalizacja: nie wiem
Afish, softmax jest super, dziękuje.
Góra
Utwórz nowy temat Odpowiedz w temacie  [ Posty: 11 ] 


 Zobacz podobne tematy
 Tytuł tematu   Autor   Odpowiedzi 
 obliczenie prawdopodobienstwa - zadanie 18  tomcza  3
 obliczenie prawdopodobienstwa - zadanie 19  gedzior  8
 Obliczenie prawdopodobieństwa - zadanie 13  qwert16  2
 Obliczenie prawdopodobieństwa - zadanie 21  dejv96  1
 Obliczenie prawdopodobieństwa - zadanie 9  uczen0313  0
 
Atom [Regulamin Forum] [Instrukcja LaTeX-a] [Poradnik] [F.A.Q.] [Reklama] [Kontakt]
Copyright (C) Karpatka.pl