##はじめに
リコメンドシステムを作っている時に、類似度はどうせユークリッド距離を使っているものだと思っていました。しかし、レコメンドシステムの実装例を眺めていたら、ユークリッド距離ではなく、コサイン類似度というものを用いてました。気になったので、記事にしてみます。
ちなみにこれは、アイテムベース向きの尺度であります
##コサイン類似度とは
コサイン類似度は、ベクトル同士の成す角度の近さを表現するため、三角関数のコサインの通り、1に近ければ類似しており、0に近ければ似ていないことになる。
##Pythonでの実装例
def cosin_similarity(x, y):
return np.dot(x, y)/(np.sqrt(np.dot(x, x))*np.sqrt(np.dot(y, y)))
##最後に
コサイン類似度は、高校で習った内積の定義を使っているのですね。改めて、高校数学というものは大事であったと痛感しますね。