LoginSignup
12
8

More than 3 years have passed since last update.

コサイン類似度

Last updated at Posted at 2020-03-11

はじめに

リコメンドシステムを作っている時に、類似度はどうせユークリッド距離を使っているものだと思っていました。しかし、レコメンドシステムの実装例を眺めていたら、ユークリッド距離ではなく、コサイン類似度というものを用いてました。気になったので、記事にしてみます。
ちなみにこれは、アイテムベース向きの尺度であります

コサイン類似度とは

コサイン類似度は、ベクトル同士の成す角度の近さを表現するため、三角関数のコサインの通り、1に近ければ類似しており、0に近ければ似ていないことになる。
スクリーンショット 2020-03-11 10.24.18.png

以下の式で計算できる。
スクリーンショット 2020-03-11 10.30.13.png

Pythonでの実装例

def cosin_similarity(x, y):
    return np.dot(x, y)/(np.sqrt(np.dot(x, x))*np.sqrt(np.dot(y, y)))

最後に

コサイン類似度は、高校で習った内積の定義を使っているのですね。改めて、高校数学というものは大事であったと痛感しますね。

12
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
8