Python 如何使用scikit学习';以直方图为特征的支持向量机?

Python 如何使用scikit学习';以直方图为特征的支持向量机?,python,machine-learning,svm,scikit-learn,Python,Machine Learning,Svm,Scikit Learn,我希望使用scikit learn的SVM和卡方核,如图所示。在这个场景中,内核基于直方图,这就是我的数据所表示的。然而,我找不到一个与直方图一起使用的例子。正确的方法是什么 将直方图视为一个向量,其中向量中的每个元素都对应于直方图的一个单元,这是正确的方法吗 提前感谢您sklearn.svm.SVC以两种方式接受自定义内核: 作为内核参数传递给构造函数的任意python函数 预计算内核矩阵作为第一个参数传递给构造函数中的fit和kernel=precomputed 前者可能慢得多,但不需要

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

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


提前感谢您

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

  • 作为
    内核
    参数传递给构造函数的任意python函数
  • 预计算内核矩阵作为第一个参数传递给构造函数中的
    fit
    kernel=precomputed
前者可能慢得多,但不需要预先分配整个内核矩阵(这对于大型
n_样本来说可能是禁止的)


中有更多详细信息和示例链接。

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

上面的示例使用“管道”,但您也可以在将数据交给线性分类器之前将转换应用于数据,因为
AdditiveChi2Sampler
实际上并不以任何方式将其与数据相匹配


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

OP显然想使用Andy的内核近似值,它的工作方式不同(将用于线性学习器)实际上,我不确定OP是否想要一个真正的内核并在其上使用libsvm的SMO解算器,或者OP是否想要用非线性随机特征映射来近似内核扩展,然后在其上训练线性SVM,如SGDClassizer。