首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将猪喂入支持向量机:猪有9个存储箱,但支持向量机采用一维矩阵

将猪喂入支持向量机:猪有9个存储箱,但支持向量机采用一维矩阵
EN

Stack Overflow用户
提问于 2011-07-15 20:26:11
回答 1查看 1.9K关注 0票数 3

在OpenCV中,有一个CvSVM类,它接受一个样本矩阵来训练支持向量机。矩阵是2D的,样本在行中。

我创建了自己的方法来从视频提要中生成定向梯度(HOG)的直方图。为此,我创建了一个9通道矩阵来存储HOG,其中每个通道对应一个方向框。最后我得到了一个CV_32FC(9)类型的40x30矩阵。

也为这只猪做了一个可视化,它正在工作。

我不知道如何将这个矩阵输入OpenCV支持向量机,因为如果我将其展平,我不知道支持向量机如何从1D输入数据中学习9D超平面。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-22 07:02:00

支持向量机总是接受每个特征向量的单行数据。因此,特征向量的维度是行的长度。如果你在处理2D数据,那么每个特征向量有2个项目。2D数据的示例在此网页上:

http://www.csie.ntu.edu.tw/~cjlin/libsvm/

OpenCV http://sites.google.com/site/btabibian/labbook/svmusingopencv中等效演示的代码

重点是,即使你认为直方图是具有9-bin单元格的二维直方图,特征向量实际上是它的平面化版本。因此,将其展平为一个长的特征向量是正确的。对我来说,结果是一个长度为2304 (16x16x9)的特征向量,并且我在一个小的测试集上获得了100%的预测准确率(即,它可能略低于100%,但它工作得非常好)。

这样做的原因是,支持向量机在特征向量的每个项目的权重系统上工作。所以它与问题的维度没有任何关系,超平面总是与特征向量在同一维度上。另一种看待它的方式是忘记超平面,只将其视为特征向量中每一项的一组权重。在这种情况下,它需要为每个项目设置一个权重,然后将每个项目与其权重相乘,并输出结果。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6706919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档