Làm cách nào tôi có thể chuyển đổi khoảng cách (Euclide) thành điểm tương tự


13

Tôi đang sử dụng k có nghĩa là phân cụm để giọng nói cụm. Khi tôi so sánh cách phát âm với dữ liệu loa được phân cụm, tôi nhận được méo trung bình (dựa trên khoảng cách Euclide). Khoảng cách này có thể trong phạm vi của [0,] . Tôi muốn chuyển đổi khoảng cách này thành điểm tương tự [0,1] . Xin hướng dẫn tôi làm thế nào tôi có thể đạt được điều này.

Câu trả lời:


15

Nếu đại diện cho khoảng cách euclide từ điểm p 1 đến điểm p 2 ,d(p1,p2)p1p2

11+d(p1,p2)

thường được sử dụng.


Xin vui lòng sửa tôi nếu tôi sai, nếu chúng ta có Y = ( Y 1 , Y 2 , Y 3 , . . . , Y n ) trong đó mỗi xy là chiều D . Sau đó, chúng ta có thể định nghĩa sự tương tự như, S i m i lX=(x1,x2,x3,...,xt)Y=(Y1,Y2,Y3,...,Yn)xyD .
Similarity=1ti=1t11+minDistance(xi,Y)
Muhammad

Tôi hiểu rằng cộng 1 trong mẫu số là để tránh chia cho sai số không. Nhưng tôi đã thấy rằng giá trị cộng một ảnh hưởng không tương xứng đến các giá trị d (p1, p2) lớn hơn 1 và cuối cùng làm giảm đáng kể điểm tương tự. Có một cách khác để làm điều này? Có thể s = 1-d (p1, p2)
aamir23

9

Bạn cũng có thể sử dụng: đâulà chức năng khoảng cách mong muốn của bạn.1edistdist


Bạn có thể vui lòng cho bất kỳ cuốn sách tham khảo / tài liệu liên quan đến phương trình này mà bạn tìm thấy nó? @Dougal
Justlife

@AnimeshKumarPaul Tôi không viết câu trả lời này, chỉ cải thiện định dạng của nó. Nhưng nó thường được sử dụng như một phiên bản của ví dụ "hạt nhân RBF tổng quát"; xem ví dụ ở đây . Câu hỏi đó liên quan đến việc liệu đầu ra là một hạt nhân xác định dương; tuy nhiên, nếu bạn không quan tâm đến điều đó, thì ít nhất nó cũng thỏa mãn một khái niệm trực quan về sự giống nhau mà các điểm ở xa hơn thì ít giống nhau hơn.
Dougal

@Justlife: Google cho một "bách khoa toàn thư về khoảng cách" này và chọn kết quả với tài liệu pdf.
Ngoại lệ chưa được xử lý

6

Có vẻ như bạn muốn một cái gì đó giống với sự tương tự cosine, bản thân nó là một điểm tương tự trong khoảng thời gian đơn vị. Trong thực tế, tồn tại một mối quan hệ trực tiếp giữa khoảng cách Euclide và sự tương tự cosin!

Quan sát rằng

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

Trong khi cosin tương đồng là nơiθlà góc giữaxx'

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

Khi nào chúng ta có | | x - x | | 2 = 2 ( 1 - f ( x , x ) )f ( x , x ) = x T x ,||x||=||x||=1,

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

vì thế

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

Từ góc độ tính toán, có thể hiệu quả hơn khi chỉ tính toán cosin, thay vì khoảng cách Euclide và sau đó thực hiện phép biến đổi.


x,x2xx2xxx,xxTx/(xx)12πxTxxx is also sometimes called that.
Dougal

@Dougal Blah. Correct. I've revised to make it intelligible.
Sycorax says Reinstate Monica

Cool. Note though that since the OP said distances are unbounded, it seems like we don't have x=1. Also, your expansion of xx2 is mistaken; it should be x2+x22xTx, though the rest of your post handles it correctly. :)
Dougal

3

How about a Gaussian kernel ?

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

The distance xx is used in the exponent. The kernel value is in the range [0,1]. There is one tuning parameter σ. Basically if σ is high, K(x,x) will be close to 1 for any x,x. If σ is low, a slight distance from x to x will lead to K(x,x) being close to 0.


1
Note that this answer and @Unhandled exception's are very related: this is exp(γd(x,x)2), where that one [introducing a scaling factor] is exp(γd(x,x)), a Gaussian kernel with d as the metric. This will still be a valid kernel, though the OP doesn't necessarily care about that.
Dougal

0

If you are using a distance metric that is naturally between 0 and 1, like Hellinger distance. Then you can use 1 - distance to obtain similarity.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.