есть способ создать что-то вроде корреляционной матрицы с другой функцией:
, начиная с этого:
X = array([[1, 1, 1],
[2, 2, 2],
[3, 3, 3]])
в форме: (n_samples, n_features) ипревратите его в нечто вроде этого:
array([[f(X[0],X[0]),f(X[0],X[1]),f(X[0],X[2])],
[f(X[1],X[0]), f(X[1],X[1]),f(X[1],X[2])],
[f(X[2],X[0]), f(X[2],X[1]),f(X[2],X[2])]])
спасибо!
, то есть, по сути, все сэмплы, переданные в функцию с помощью eachother
, так что я в настоящее время решаю это свложенный цикл:
for i in range(samples):
for j in range(samples):
r = test_kernel(X[i],X[j])
output[i,j] = r
но я сомневаюсь, что это самый эффективный способ сделать это, так как матрица симметрична, мне нужно выполнить несколько вычислений дважды