Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中为svm编写自定义内核_R_Machine Learning_Svm_Cosine Similarity - Fatal编程技术网

在R中为svm编写自定义内核

在R中为svm编写自定义内核,r,machine-learning,svm,cosine-similarity,R,Machine Learning,Svm,Cosine Similarity,我希望在R中使用e1071软件包的svm()函数。我是这个软件包的新手,我想知道是否有可能在svm()中编写您自己的可调用自定义内核。我看到有几个预加载的内核,但我没有看到余弦相似内核,这正是我所需要的 或者,R中是否有另一个软件包允许您使用余弦相似性内核运行SVM?坏消息是,e1071目前不支持它。很多年前就有过一次讨论 好消息是,余弦相似核被定义为 K(x, y) = <x, y> / (||x|| ||y||) = <x / ||x||, y / ||y||> K

我希望在R中使用e1071软件包的svm()函数。我是这个软件包的新手,我想知道是否有可能在svm()中编写您自己的可调用自定义内核。我看到有几个预加载的内核,但我没有看到余弦相似内核,这正是我所需要的


或者,R中是否有另一个软件包允许您使用余弦相似性内核运行SVM?

坏消息是,e1071目前不支持它。很多年前就有过一次讨论

好消息是,余弦相似核被定义为

K(x, y) = <x, y> / (||x|| ||y||) = <x / ||x||, y / ||y||>
K(x,y)=/(x | | | | | | | | y |)=
因此,您不必实现自定义内核,只需规范化数据,并运行常规线性内核支持向量机即可。换句话说,计算(样本)正则欧几里德范数,并将每个样本除以自己的范数。然后运行线性支持向量机,其结果相当于对原始数据运行余弦核


<>如果你想用“强”>定制的<强>机器学习模型来研究,R可能不是要走的路(因为它是一个应用现有技术的工具而不是一个设计良好的开发系统——如果你想在R中自定义某个东西,你基本上必须去C++级)。相反,您可能需要考虑Python和许多库(例如ScKiTe+PykRes),这给了您更大的灵活性。

< P>坏消息是E1071.目前不支持。很多年前就有过一次讨论

好消息是,余弦相似核被定义为

K(x, y) = <x, y> / (||x|| ||y||) = <x / ||x||, y / ||y||>
K(x,y)=/(x | | | | | | | | y |)=
因此,您不必实现自定义内核,只需规范化数据,并运行常规线性内核支持向量机即可。换句话说,计算(样本)正则欧几里德范数,并将每个样本除以自己的范数。然后运行线性支持向量机,其结果相当于对原始数据运行余弦核

<>如果你想用“强”>定制的<强>机器学习模型来研究,R可能不是要走的路(因为它是一个应用现有技术的工具而不是一个设计良好的开发系统——如果你想在R中自定义某个东西,你基本上必须去C++级)。相反,您可能需要考虑Python和许多库(例如ScKiTeCub + PyKeles),这给了您更大的灵活性。