2011-11-23 17 views
6

Czytałem artykuł na temat Relational Fisher Kernel, który zawiera Bayesian Logic Programs, aby obliczyć wynik Fishera, a następnie używa SVM do uzyskania etykiet klas dla każdego elementu danych.Relacyjna implementacja jądra Fisher

Nie mam mocnego doświadczenia w uczeniu maszynowym. Czy ktoś może dać mi znać o tym, jak wdrożyć kompleksowe relacyjne jądro Fisher i jakiego rodzaju wejście by się spodziewał? Nie mogłem znaleźć żadnego łatwego przepływu krok po kroku pokazującego tę implementację. Nie mam problemu z używaniem bibliotek dla SVM itp. (Np. Libsvm), ale chciałbym znać przepływ od końca do końca (w możliwie łatwym języku). Jakakolwiek pomoc będzie doceniona.

+0

+1 za wskazanie interesującego i dobrze napisanego artykułu – fairidox

+0

Do tej pory wydedukowałem, że dane wejściowe będą miały formę klauzuli, tak jak w przypadku programowania logicznego. Można użyć Bayesian Logic Programs (np. Narzędzie takie jak Balios) do wywołania bayesowskiego N/w. Parametry indukowanego n/w mają postać warunkowych rozkładów prawdopodobieństwa dla klauzul (uzyskanych przy użyciu EM w przypadku Bali). Następnie za pomocą wzoru wymienionego w artykule wspomnianym w pytaniu można obliczyć gradient, a następnie jądro. Jądro może być dopasowane do SVM (na przykład libsvm) i gotowe. Czy ktoś może potwierdzić, czy jestem na dobrej drodze? – Salil

+1

Możesz wypróbować ten klon SO do uczenia maszynowego: http://metaoptimize.com/qa – fairidox

Odpowiedz

1

libsvm nie implementuje jądra Relation Fisher, jednak można obliczyć matrycę informacyjną Fischera zgodnie z opisem w artykule i użyć go jako wstępnie skompilowanego wejścia jądra do libsvm. Zobacz: using precomputed kernels with libsvm

+0

Właśnie to wymyśliłem wcześniej (w komentarzach): "używając formuły wspomnianej w artykule, można obliczyć gradient, a następnie jądro." Jądro może być dopasować do SVM (np. libsvm) ". Dzięki za potwierdzenie tego. – Salil