Tôi nghĩ vấn đề chính là để có được khoảng cách cặp đôi một cách hiệu quả. Một khi bạn có rằng phần còn lại là yếu tố khôn ngoan.
Để làm điều này, có lẽ bạn muốn sử dụng scipy. Các chức năng scipy.spatial.distance.pdistlàm những gì bạn cần, và scipy.spatial.distance.squareformcó thể sẽ làm dịu cuộc sống của bạn.
Vì vậy, nếu bạn muốn ma trận kernel bạn làm
from scipy.spatial.distance import pdist, squareform
# this is an NxD matrix, where N is number of items and D its dimensionalites
X = loaddata()
pairwise_dists = squareform(pdist(X, 'euclidean'))
K = scip.exp(-pairwise_dists ** 2 / s ** 2)
Tài liệu có thể được tìm thấy ở đây .