0

svmtain() 是 MATLAB 中用于 SVM 学习的函数。帮助文档在这里:

http://www.mathworks.com/help/bioinfo/ref/svmtrain.html

如何将它与自定义内核一起使用?在帮助文档中,它说:


@kfun— 内核函数的函数句柄。核函数必须是以下形式

 function K = kfun(U, V)

返回值 ,K是一个大小为 M×N 的矩阵,其中UVhaveMNrows 分别为。


它没有提到 U 和 V 是什么以及 M 和 N 的含义。我只是不知道如何以正确的格式使用它。谁能告诉我U和V是什么,M和N是什么意思?例如,训练数据是 5 维向量,核函数是向量长度之和。如何编写核函数?

谢谢!

4

2 回答 2

1

只是一个猜测:

根据:http ://www.tech.dmu.ac.uk/~hseker/Statistics%20in%20Genetics/Statistical%20Learning%20and%20Visualization%20in%20MATLAB.doc ,U,V 应该只是函数中的参数处方 K,例如,如果您的内核是tanh,那么:

function K = kfun(U,V,P1,P2)
K = tanh(U*V');

并且P1, P2是针对您各自内核的一些附加功能。但正如我在评论中所写,您需要成为优秀的数学家才能获得比已定义内核获得的结果更好的结果。

于 2012-12-23T09:50:57.123 回答
0

内核函数是机器学习算法中最常用的技术之一。这是来自维基百科的定义:

对于机器学习算法,内核技巧是一种将观察从一般集合 S 映射到内积空间 V(配备其自然范数)的方法,而无需显式计算映射,希望观察得到V中有意义的线性结构。

即这个内核用于RBF:

K(x,y) = (x*y + c)^d

以下是内核的详细解释:http ://www.youtube.com/watch?v=bUv9bfMPMb4 by Andrew Ng。

有一些内核(即高斯内核),内核具有相同的约定,这就是为什么它被概括为 K(u,v)。您可以尝试不同的内核性能,也可以搜索有关您从事的工作的相关作品并尝试使用那种内核。

于 2012-12-27T19:21:36.010 回答