• 締切済み

類似度 ユークリッド距離とコサイン尺度の統合

類似楽曲検索を作ろうと考えています。 ある楽曲の音響信号の特徴量と似た楽曲を検索するシステムです。 検索するにあたって、ある3つの特徴量(A,B,C)を使うとします。 AとBの特徴量はコサイン尺度を用いて類似度を計算、 Cはユークリッド距離で計算し、最終的に一つの類似度を計算したいと考えているのですが どのような方法がありますか? 例えばすべてをコサイン尺度で計算すれば、 類似度=cos(Ai,Aj)+cos(Bi,Bj)+cos(Ci,Cj)   (cos(Ai,Aj)は楽曲iとjの特徴量Aにおけるコサイン尺度) のように和を類似度として使えると思うのですが、 コサイン尺度(-1から1までの値をとる)とユークリッド距離は(0以上の値をとる)を使う場合、単純に加算しただけではうまくいきません。 正規化、無次元化?をすればいいのでしょうが、具体的な方法がわかりません。 どなたかアドバイスお願いします。

みんなの回答

  • ibm_111
  • ベストアンサー率59% (74/124)
回答No.1

>コサイン尺度(-1から1までの値をとる)とユークリッド距離は(0以上の値をとる)を >使う場合、単純に加算しただけではうまくいきません。 例えば、コサイン尺度の代わりに、λを正の定数として x=(コサイン尺度+1)/2 コサイン尺度 → Newコサイン尺度 = -1/λ * log(1-x) のようにマップすれば[0,∞)区間に収まりますけど。問題は、 ・このような和に意味をつけられるのか? ・パラメータλを簡単に決められるのか? ・x=1のときの処理  =>適当にNewコサイン尺度=10^300とかにする。

wolf329
質問者

お礼

回答ありがとうございます。 確かに、コサイン尺度を[0,∞)区間に収めたところで、和に意味をつけられないですよね。 どうしても「距離」を考慮したい特徴量なので、コサイン尺度ではダメなんですよね。。 他に良い類似度尺度があればそちらですべて統一するのですが・・・

関連するQ&A