【问题标题】:SVM: How do I use the chi2 kernel in vlfeatSVM:如何在 vlfeat 中使用 chi2 内核
【发布时间】:2016-01-07 16:12:37
【问题描述】:

我想在 vlfeat 中使用 chi2 内核而不是线性内核。

Here 是使用 chi2 的示例。

"... % 创建一个带有内核映射参数的结构
hom.kernel = 'KChi2';
hom.order = 2;
% 创建数据集结构
dataset = vl_svmdataset(X, 'homkermap', hom);
% 使用数据集结构通过在线内核映射扩展学习 SVM
[w b info] = vl_svmtrain(dataset, y, lambda, 'MaxNumIterations', maxIter)..."

这里到底发生了什么? hom.order 是做什么的?

vl_svmdataset 有什么作用? 此外,还有一个名为 vl_homkermap() 的函数。它有什么作用?

假设我有一个矩阵 m,我想在其上使用带有 chi2 内核的 svm。

我该怎么做?

【问题讨论】:

    标签: matlab svm chi-squared vlfeat


    【解决方案1】:

    大规模非线性支持向量机 (SVM) 可以使用合适的特征图通过线性支持向量机来近似。 一般来说,线性 SVM 的学习和评估(测试)速度比原来的非线性要快得多,详情请参阅 this 论文。

    数据集 = vl_svmdataset(X, 'homkermap', hom); 这一行将您的数据 X 转换为“卡方”内核映射

    [w b info] = vl_svmtrain(数据集, y, lambda, 'MaxNumIterations', maxIter) 在这种情况下,这条线为转换后的数据训练线性 SVM lambda 是正则化参数,可以找到更多详细信息 here

    【讨论】:

      猜你喜欢
      • 2016-09-03
      • 2016-01-15
      • 2014-06-18
      • 2015-01-13
      • 2013-01-23
      • 2020-08-07
      • 2015-01-16
      • 2014-11-28
      • 2014-09-17
      相关资源
      最近更新 更多