Есть ли в scikit встроенная библиотека для линейного ядра, например, RBF, SE? - PullRequest
0 голосов
/ 29 апреля 2020

Я хочу умножить линейное ядро ​​на RBF для набора данных, но не нашел способа реализовать линейное ядро. Как я могу реализовать линейное ядро ​​здесь. Например, RBF, SE можно использовать в Scikit learn:

k2 = 2.0**2 * RBF(length_scale=100.0)  

k_exp = ExpSineSquared(length_scale=1.0, periodicity=1.0,
                       periodicity_bounds="fixed")

1 Ответ

0 голосов
/ 30 апреля 2020

Линейное ядро ​​для использования в гауссовых процессах в scikit-learn предоставляется как DotProduct kernel . В соответствии с книгой гауссовских процессов Расмуссена и Уильямса (глава 4.2.2) установка sigma_0 = 0 дает однородное линейное ядро, тогда как в противном случае это неоднородное линейное ядро. Вот пример использования ядра DotProduct в scikit здесь . В случае гауссовских процессов вам не нужно вводить векторные входные данные в DotProduct, как вы дадите их при вызове функции .fit(X,Y).

Если вы хотите, чтобы два вектора точечного произведения проверяли их сходство, вы можете использовать линейное ядро ​​, которое дает точечное произведение двух векторов (с проверками на разреженные входы). Наконец, обратите внимание, что линейное ядро ​​ не имеет никакого дополнительного шумового термина, тогда как ядро ​​DotProduct имеет.

...