Здесь X
является обучающей матрицей, а test_feature
является тестовым массивом.Ядро RBF для классификации с использованием KNN
squared_euclidian = np.sum(np.square(X - test_feature), axis=1)
squared_euclidian
является Squared Euclidian distance
Для евклидово расстояние во входном массиве с полной матрицей Numpy
dist = np.sqrt(squared_euclidian)
и RBF (гауссово) ядра в соответствии с this Slide 5
test_sigma = np.square(np.std(test_feature))
dist = np.exp(-1 * (squared_euclidian/test_sigma))
Я тестировал эти f в наборе данных 2000 экземпляров, где я получил точность 91% для евклидова, но 54% для другой.
Является ли формула для ядра RBF неправильной?