Saya pikir masalah utama adalah untuk mendapatkan jarak berpasangan secara efisien. Setelah Anda memiliki sisanya adalah elemen bijaksana.
Untuk melakukan ini, Anda mungkin ingin menggunakan Scipy. Fungsi scipy.spatial.distance.pdistmelakukan apa yang Anda butuhkan, dan scipy.spatial.distance.squareformmungkin akan memudahkan hidup Anda.
Jadi jika Anda ingin matriks kernel yang Anda lakukan
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)
Dokumentasi dapat ditemukan di sini .