Как проверить, является ли ядро допустимым ядром

Если я определяю свой собственный метод определения сходства между двумя входными объектами моего классификатора машины вектора поддержки и, таким образом, определяю его как мое ядро, как я могу проверить, действительно ли это допустимое ядро, которое я могу использовать?

например, если мои входные данные являются строками, а ядро, которое я выбираю, позволяет сказать какую-то метрику расстояния строки, как я могу решить, могу ли я использовать ее или нет для моего SVM. Я знаю, что есть некоторые условия для допустимого ядра SVM. Кто-нибудь может сказать мне, что они есть, и как можно проверить эти условия?

3 ответов


функции ядра должны удовлетворять состояние Мерсера вы также можете найти ответы на то, что вы спрашиваете на форум статистика.


самый прямой тест основан на следующем: функция ядра действительна тогда и только тогда, когда матрица ядра для любого конкретного набора точек данных имеет все неотрицательные собственные значения. Вы можете легко проверить это, взяв достаточно большой набор точек данных и просто проверить, если это правда. Например, если вы выбрали 2000 выборок данных случайным образом, создали их соответствующую матрицу ядра 2000x2000 и заметили, что она имеет неотрицательные собственные значения, то это весьма вероятно что у вас есть законное ядро. В качестве альтернативы, если есть какие-либо отрицательные собственные значения, то функция ядра-кандидата определенно не является законным ядром.


также ссылку вы можете проверить это http://cs.nyu.edu/~dsontag/курсы/мл12/слайды/lecture6.формат PDF где автор предлагает "ядра алгебры", что следует из заявлений выше -- Теорема Мерсера, что соответствующая Матрица ядра симметричной положительно полу определенной и положительных собственных значений из этого следует. Автор также показывает в качестве примера, что функция Гаусса создает допустимое ядро. Я предоставлю его здесь, Если вы не хотите искать ссылка: Kernel Algebra & Description of Proof of Gaussian as a valid Kernel