如何使用scikit-learn的SVM和直方图作为特征?



我希望将scikit-learn的SVM与卡方核一起使用,如图所示。在这个场景中,内核在直方图上,这就是我的数据所表示的。然而,我找不到与直方图一起使用的例子。做这件事的正确方法是什么?

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

提前感谢

这里有一个使用近似特征图的示例。它是针对RBF内核的,但它的工作原理是一样的。

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

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

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

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

前者可能慢得多,但不需要预先分配整个核矩阵(这对于大的n_samples来说可能是禁止的)。

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

相关内容

  • 没有找到相关文章