Mesafeyi (Öklid) benzerlik puanına nasıl dönüştürebilirim?


13

Ben kullanıyorum k hoparlör sesleri küme kümeleme demektir. Bir ifadeyi kümelenmiş hoparlör verileriyle karşılaştırdığımda (Öklid mesafesine dayalı) ortalama bozulma elde ederim. Bu mesafe aralığında olabilir [0,]. Bu mesafeyi [0,1] benzerlik skoruna dönüştürmek istiyorum . Lütfen bunu nasıl başarabileceğim konusunda bana yol gösterin.

Yanıtlar:


16

Eğer d(p1,p2) noktasının, Öklides mesafeyi temsil eder ve p1 noktasına p2 ,

11+d(p1,p2)

yaygın olarak kullanılır.


Elimizdeki eğer yanlış varsa düzeltin lütfen ve Y = ( Y 1 , Y 2 , Y 3 , . . . , Y n ) burada her x ve y D boyutundadır . Sonra benzerliği tanımlayabiliriz, S i m i lX=(x1,x2,x3,...,xt)Y=(Y1,Y2,Y3,...,Yn)xyD .
Similarity=1ti=1t11+minDistance(xi,Y)
Muhammed

Paydadaki artı 1'in sıfır hataya bölünmekten kaçınmak olduğunu anlıyorum. Ancak artı bir değerin orantısız olarak 1'den büyük olan d (p1, p2) değerlerini etkilediğini ve sonuçta benzerlik puanını önemli ölçüde azalttığını buldum. Bunu yapmanın başka bir yolu var mı? Belki s = 1-d (p1, p2)
aamir23

9

Ayrıca kullanabilirsiniz: buradaistenen mesafe fonksiyonudur.1edistdist


Bulduğunuz bu denklemle ilgili herhangi bir referans kitap / belge verebilir misiniz? @Dougal
Justlife

@AnimeshKumarPaul Bu cevabı yazmadım, sadece formatını geliştirdim. Ancak sıklıkla örneğin "genelleştirilmiş bir RBF çekirdeği"; örneğin buraya bakınız . Bu soru, çıktının pozitif bir kesin çekirdek olup olmadığı ile ilgilidir; bununla ilgilenmezseniz, en azından daha uzak noktaların daha az benzer olması sezgisel bir benzerlik kavramını tatmin eder.
Dougal

@ Justlife: Google için bu "mesafeler ansiklopedisi" ve sonucu pdf belgesi ile seçin.
İşlenmeyen istisna

7

Kosinüs benzerliğine benzeyen bir şey istediğiniz gibi görünüyor, ki bu da birim aralıktaki benzerlik puanı. Aslında, Öklid mesafesi ile kosinüs benzerliği arasında doğrudan bir ilişki vardır!

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

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

||x||=||x||=1,

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

yani

1||xx||22=f(x,x)=cos(θ)

Hesaplamalı bir bakış açısından, Öklid mesafesinden ziyade sadece kosinüsü hesaplamak ve daha sonra dönüşümü gerçekleştirmek daha verimli olabilir.


3

Gauss çekirdeğine ne dersiniz ?

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

Mesafeüssünde kullanılır. Çekirdek değeri aralığında . Bir ayar parametresi var . Temelde yüksekse, herhangi bir için 1'e yakın olacaktır . Eğer düşük, hafif bir mesafe etmek yol açacaktır 0'a yakın olmanın.xx[0,1]σσK(x,x)x,xσxxK(x,x)


1
Bu yanıt ve @ İşlenmeyen özel durumun çok ilişkili olduğunu unutmayın: bu ; burada [ölçeklendirme faktörü tanıtan] , metrik olarak olan bir Gauss çekirdeği . OP bununla ilgilenmese de, bu hala geçerli bir çekirdek olacaktır . exp ( - γ d ( x , x ) ) exp(γd(x,x)2)exp(γd(x,x))d
Dougal

0

Hellinger mesafesi gibi doğal olarak 0 ile 1 arasında bir mesafe metriği kullanıyorsanız. Sonra benzerlik elde etmek için 1 - mesafe kullanabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.