我希望将 scikit-learn 的 SVM 与卡方内核一起使用,如此处所示。在这种情况下,内核位于直方图上,这就是我的数据所表示的内容。但是,我找不到与直方图一起使用的示例。这样做的正确方法是什么?
将直方图视为向量是否正确,其中向量中的每个元素都对应于直方图的一个 bin?
先感谢您
我希望将 scikit-learn 的 SVM 与卡方内核一起使用,如此处所示。在这种情况下,内核位于直方图上,这就是我的数据所表示的内容。但是,我找不到与直方图一起使用的示例。这样做的正确方法是什么?
将直方图视为向量是否正确,其中向量中的每个元素都对应于直方图的一个 bin?
先感谢您
这里有一个使用近似特征图的例子。它适用于 RBF 内核,但它的工作原理相同。
上面的示例使用“管道”,但您也可以在将数据传递给线性分类器之前将转换应用于数据,因为AdditiveChi2Sampler
实际上并没有fit
以任何方式应用于数据。
请记住,这只是内核映射的近似值(我发现它工作得很好),如果你想使用确切的内核,你应该使用 ogrisel 的 anwser。
sklearn.svm.SVC
以 2 种方式接受自定义内核:
kernel
作为参数传递给构造函数的任意python函数fit
预先计算的内核矩阵作为第一个参数传递给kernel=precomputed
构造函数前者可能要慢得多,但不需要提前分配整个内核矩阵(这对于 large 来说是令人望而却步的n_samples
)。
更多详细信息和指向自定义内核文档中示例的链接。