我需要预先计算直方图交叉核矩阵以便在 MATLAB 中使用 LIBSVM。
假设 x, y 是两个向量。核函数是 K(x, y) = sum(min(x, y))。为了提高效率,大多数情况下的最佳实践是对操作进行矢量化。
我想要做的是计算内核矩阵,比如计算两个矩阵之间的欧几里得距离,比如 pdist2(A, B, 'euclidean')。在定义函数“intKernel”之后,我可以通过调用 pdist2(A, B, intKernel) 来计算交集核。
我知道函数“pdist2”可能是一个选项。但我不知道如何编写自定义距离函数。虽然,我不知道如何在一个浓缩表达式中对向量(1×M)和矩阵(M×N)之间的交集内核进行编码。
'repmat' 可能不可行,因为矩阵真的很大,比如说 20000×360000。
任何帮助,将不胜感激。
问候,裴云