4

我希望将 scikit-learn 的 SVM 与卡方内核一起使用,如此处所示。在这种情况下,内核位于直方图上,这就是我的数据所表示的内容。但是,我找不到与直方图一起使用的示例。这样做的正确方法是什么?

将直方图视为向量是否正确,其中向量中的每个元素都对应于直方图的一个 bin?

先感谢您

4

2 回答 2

10

这里有一个使用近似特征图的例子。它适用于 RBF 内核,但它的工作原理相同。

上面的示例使用“管道”,但您也可以在将数据传递给线性分类器之前将转换应用于数据,因为AdditiveChi2Sampler实际上并没有fit以任何方式应用于数据。

请记住,这只是内核映射的近似值(我发现它工作得很好),如果你想使用确切的内核,你应该使用 ogrisel 的 anwser。

于 2012-09-07T09:07:02.150 回答
2

sklearn.svm.SVC以 2 种方式接受自定义内核:

  • kernel作为参数传递给构造函数的任意python函数
  • fit预先计算的内核矩阵作为第一个参数传递给kernel=precomputed构造函数

前者可能要慢得多,但不需要提前分配整个内核矩阵(这对于 large 来说是令人望而却步的n_samples)。

更多详细信息和指向自定义内核文档中示例的链接。

于 2012-09-06T21:20:28.180 回答