Spaces:
Sleeping
Sleeping
File size: 1,008 Bytes
133a630 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | import numpy as np
from sklearn.metrics.pairwise import cosine_similarity as sklearn_cosine
def cosine_similarity(matrix):
return sklearn_cosine(matrix)
def pearson_similarity(matrix):
matrix_centered = matrix - np.nanmean(matrix, axis=1, keepdims=True)
matrix_centered = np.nan_to_num(matrix_centered, nan=0.0)
mask = ~np.isnan(matrix)
with np.errstate(divide="ignore", invalid="ignore"):
norm = np.sqrt(np.nansum(matrix_centered ** 2, axis=1, keepdims=True))
norm[norm == 0] = 1
matrix_norm = matrix_centered / norm
return matrix_norm @ matrix_norm.T
def adjusted_cosine_similarity(matrix):
user_mean = np.nanmean(matrix, axis=1, keepdims=True)
matrix_centered = matrix - user_mean
matrix_centered = np.nan_to_num(matrix_centered, nan=0.0)
return sklearn_cosine(matrix_centered.T)
def jaccard_similarity(set1, set2):
intersection = len(set1 & set2)
union = len(set1 | set2)
return intersection / union if union > 0 else 0
|