cosine similarity: plus proches par cosinus
objectif
Expliquer et montrer comment calculer similarité cosinus et récupérer les k plus proches.
code minimal
import numpy as np
from sklearn.metrics.pairwise import cosine_similarity
X = np.random.rand(100, 32)
X = X / np.linalg.norm(X, axis=1, keepdims=True)
S = cosine_similarity(X[:5], X) # 5 x 100
top3 = np.argsort(-S, axis=1)[:, :3]
top3[0]
utilisation
# exclure l'identité (index 0)
nearest = [row[1] for row in top3]
nearest[:3]
variante(s) utile(s)
# pour grands volumes, utilisez FAISS (voir snippet FAISS)
notes
- Normalisez avant pour que IP = cosinus.
- cosine_similarity est dense; pour sparse, utilisez linear_kernel sur TF-IDF.