60 similarity_func: SimilarityFunction,
61 tnorm: Callable[[np.ndarray, np.ndarray], np.ndarray]
64 Compute the pairwise similarity matrix for samples using a vectorized
65 similarity function and T-norm operator.
67 @param X: Normalized input matrix of shape (n_samples, n_features)
68 @param similarity_func: Instance of SimilarityFunction subclass
69 @param tnorm: Callable T-norm function (e.g., min, product, Yager)
70 @return: Similarity matrix of shape (n_samples, n_samples)
72 n_samples, n_features = X.shape
73 sim_matrix = np.ones((n_samples, n_samples), dtype=np.float64)
75 for k
in range(n_features):
76 col = X[:, k].reshape(-1, 1)
78 sim_k = similarity_func(diff)
79 sim_matrix = tnorm(sim_matrix, sim_k)
81 np.fill_diagonal(sim_matrix, 1.0)