matlab rbf核函数,RBF高斯径向基核函数-svm

  • Post author:
  • Post category:其他


RBF高斯径向基核函数(单值:两个点相似性)

XVec表示X向量。||XVec||表示向量长度。

r表示两点距离。r^2表示r的平方。

k(XVec,YVec) = exp(-1/(2*sigma^2)*(r^2))

= exp(-gamma*r^2)…… 公式-1

这里, gamma=1/(2*sigma^2)是参数, r=||XVec-YVec||

实际上,可看作是计算2个点X与Y的相似性。很多参考书上,把YVec写作XVec’,即 k(XVec, XVec’),也是一样的含义:两点相似性。由于Matlab上面XVec’代表XVec的转置向量(XVec)T,所以,为规避歧义,我记作k(XVec,YVec)。如:LibSVM代码,机器学习经典教材《Pattern Recognition and Machine Learning -Bishop》P312.(三大牛人巨著: Michael I. Jordan,加州大学伯克利分校计算机系/Jon Kleinberg,康奈尔大学计算机系/Bernhard Schlkopf德国蒂宾根马普所)。

r是半径(radial),这也是径向基核函数(radial basis function)名称的由来。

很容易,写出高斯RBF matlab代码:

r = norm(XVec-YVec, 2); % L2范数嘛

或者: r = sum((XVec-YVec).^2)^(1/2);

k = exp(-gamma*r^2);

假设X与Y矩阵的每一行是一个样本,如何求得K(X,Y)?

假若X = train_data是训练数据, K(X,X)是训练核矩阵,可拿去LibSVM做自定义核训练。当然&