Jak przekonwertować odległość (euklidesowa) na wynik podobieństwa

13

Korzystam z oznacza grupowanie głosów w klastrze. Kiedy porównuję wypowiedź do danych głośników w klastrze, otrzymam (na podstawie odległości euklidesowej) średnie zniekształcenie. Odległość ta może wynosić . Chcę przekonwertować tę odległość na wynik podobieństwa . Proszę o wskazówki, jak to osiągnąć.[ 0 , ] [ 0 , 1 ]k[0,][0,1]

Mahomet
źródło

Odpowiedzi:

16

Jeśli reprezentuje odległość euklidesową od punktu do punktu ,p 1 p 2d(p1,p2)p1p2

11+d(p1,p2)

jest powszechnie używany.

TrynnaDoStat
źródło
Proszę mnie poprawić, jeśli się mylę, jeśli mamy i gdzie każdy i jest od wymiaru . Następnie możemy zdefiniować podobieństwo, takie jak: . X=(x1,x2,x3,...,xt)x r D S i m i L r i t y = 1Y=(Y1,Y2,Y3,...,Yn)xyD
Similarity=1ti=1t11+minDistance(xi,Y)
Muhammad
Rozumiem, że plus 1 w mianowniku polega na uniknięciu dzielenia przez błąd zero. Odkryłem jednak, że wartość plus jeden nieproporcjonalnie wpływa na wartości d (p1, p2), które są większe niż 1, i ostatecznie znacznie zmniejsza wynik podobieństwa. Czy jest na to inny sposób? Może s = 1-d (p1, p2)
aamir23
9

Możesz także użyć: gdzie jest pożądana funkcja odległości.1edistdist

Nieobsługiwany wyjątek
źródło
Czy możesz podać jakąkolwiek książkę referencyjną / dokumentację związaną z tym równaniem, w którym ją znalazłeś? @Dougal
Justlife
@AnimeshKumarPaul Nie napisałem tej odpowiedzi, tylko poprawiłem jej formatowanie. Ale często jest używany jako wersja np. „Uogólnionego jądra RBF”; patrz np . tutaj . To pytanie dotyczy tego, czy dane wyjściowe są dodatnim określonym jądrem; jeśli jednak cię to nie obchodzi, to przynajmniej spełnia intuicyjne pojęcie podobieństwa, że ​​bardziej odległe punkty są mniej podobne.
Dougal
@Justlife: Google dla tej „encyklopedii odległości” i wybierz wynik w dokumencie pdf.
Nieobsługiwany wyjątek
7

Wygląda na to, że chcesz czegoś podobnego do podobieństwa cosinusowego, które samo w sobie jest wynikiem podobieństwa w interwale jednostkowym. W rzeczywistości istnieje bezpośredni związek między odległością euklidesową a podobieństwem cosinusa!

Zauważ, że

||xx||2=(xx)T(xx)=||x||+||x||2||xx||.

Podczas gdy podobieństwo cosinusa jest gdzie to kąt między a .

f(x,x)=xTx||x||||x||=cos(θ)
θxx

Gdy mamy i ||x||=||x||=1,

||xx||2=2(1f(x,x))
f(x,x)=xTx,

więc

1||xx||22=f(x,x)=cos(θ)
w tym szczególnym przypadku.

Z perspektywy obliczeniowej bardziej wydajne może być po prostu obliczenie cosinusa, niż odległości euklidesowej, a następnie wykonanie transformacji.

Sycorax mówi Przywróć Monikę
źródło
3

Co powiesz na jądro Gaussa ?

K(x,x)=exp(xx22σ2)

Odległośćjest używany w wykładniku. Wartość jądra mieści się w zakresie . Jest jeden parametr strojenia . Zasadniczo, jeśli jest wysokie, będzie bliskie 1 dla dowolnego . Jeśli jest niski, niewielka odległość od do spowoduje, że będzie bliskie 0.xx[0,1]σσK(x,x)x,xσxxK(x,x)

wij
źródło
1
Zauważ, że ta odpowiedź i wyjątki @Nieobsługiwane są bardzo powiązane: jest to , gdzie ten [wprowadzający współczynnik skalowania] to , jądro Gaussa z metryką . To nadal będzie prawidłowe jądro , chociaż OP nie musi się tym przejmować. exp ( - γ d ( x , x ) ) exp(γd(x,x)2)exp(γd(x,x))d
Dougal
0

Jeśli używasz pomiaru odległości, który naturalnie wynosi od 0 do 1, na przykład odległości Hellingera. Następnie możesz użyć 1 - odległości, aby uzyskać podobieństwo.

Ćwiek
źródło