【发布时间】:2012-08-31 08:46:12
【问题描述】:
我希望将 scikit-learn 的 SVM 与卡方内核一起使用,如 here 所示。在这种情况下,内核位于直方图上,这就是我的数据所表示的内容。但是,我找不到与直方图一起使用的示例。这样做的正确方法是什么?
将直方图视为向量是否正确,其中向量中的每个元素对应于直方图的一个 bin?
提前谢谢你
【问题讨论】:
标签: python machine-learning svm scikit-learn
我希望将 scikit-learn 的 SVM 与卡方内核一起使用,如 here 所示。在这种情况下,内核位于直方图上,这就是我的数据所表示的内容。但是,我找不到与直方图一起使用的示例。这样做的正确方法是什么?
将直方图视为向量是否正确,其中向量中的每个元素对应于直方图的一个 bin?
提前谢谢你
【问题讨论】:
标签: python machine-learning svm scikit-learn
有一个使用近似特征图here的例子。它适用于 RBF 内核,但工作原理相同。
上面的示例使用“管道”,但您也可以在将数据传递给线性分类器之前将其应用于数据,因为AdditiveChi2Sampler 实际上并没有以任何方式将fit 应用于数据。
请记住,这只是内核映射的近似值(我发现它工作得很好),如果您想使用精确的内核,您应该使用 ogrisel 的 anwser。
【讨论】:
sklearn.svm.SVC 以两种方式接受自定义内核:
kernel 参数传递给构造函数fit和kernel=precomputed
前者可能要慢得多,但不需要提前分配整个内核矩阵(这对于大型n_samples 来说可能是禁止的)。
the documentation on custom kernels 中有更多详细信息和示例链接。
【讨论】: