微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 libsvm 中使用 svmtrain() 函数进行回归什么设置?什么是标签矩阵形式?

如何解决如何在 libsvm 中使用 svmtrain() 函数进行回归什么设置?什么是标签矩阵形式?

Libsvm 是一个用 C 编写的支持向量机的小型库。这里是我使用的 libsvm 源的链接 ( https://github.com/cjlin1/libsvm )。有人可以更正以下代码中 svmtrain() 函数标签矩阵中的选项以成功执行回归,因为输出显示优化已完成 #0 迭代。

svmtrain() 函数之前的代码的目标是将水下彩色图像(图像中的一些矩形)的水像素排列成 (m x 3) 矩阵作为数据。标签矩阵是一个 ( m x 1 ) 矢量预设为 1;{ here is the link to the underwater image,equation of red channel compensation }

输出

optimization finished,#iter = 0
nu = 0.000000
obj = 0.000000,rho = -1.000000
nSV = 0,nBSV = 0

代码如下:

    ##to load image package
    pkg load image
    ## add the path to the matlab folder inside the LIBSVM package source
    addpath('./libsvm-master/libsvm-master/matlab')
    ##load libsvm 
    pkg load statistics
    ##load an under water rgb image
    im = imread('9554.png');
    im=double(im);
    startrow=1;
    startcol=1;
    endrow=100;
    endcol=100;
    ## save rgb pixels in m x 3 form
    data=zeros(endrow*endcol,3,'double');
    for i=startrow:endrow
      for j=startcol:endcol
        data((i-1)*endrow+j,1:3)=im(i,j,1:3);
      end
    end
    ## m x 1 label matrix,all preset to 1
    label_data=ones(size(data,1),1,'double');
    model=svmtrain(label_data,data,'-s 3 -c 1');

解决方法

感谢您提供图片和其他详细信息。

我认为问题很简单,您正在传递一个仅包含单个标签的“标签”矩阵。该算法检测到没有可训练的数据,并停止。

如果您将某些标签设为零,则算法会按预期运行。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。