24小时热门版块排行榜    

查看: 1097  |  回复: 4
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

caucliushuai

银虫 (小有名气)

[求助] 关于 支持向量机的程序 总是出错,求大神指点 已有1人参与

做一个支持向量机的分类问题, 有三类h,m,l (分别是mydata中的 1、2行,3、4行,5、6 行)   通过训练,识别 mydata中最后两行属于哪一类。
M文件如下:
clear
clc
mydata = [0.8 0.8 0.9 0.7 0.8 0.7 0.8 0.8 0.8 0.7 0.8 0.7 0.9 0.8 0.7 0.8 0.6;
          0.8 0.9 0.7 0.8 0.9 0.8 0.8 0.8 0.8 0.8 0.8 0.7 0.8 0.7 0.6 0.8 0.8;
          0.7 0.7 0.6 0.7 0.8 0.7 0.6 0.8 0.7 0.6 0.7 0.7 0.6 0.8 0.7 0.7 0.7;
          0.7 0.7 0.6 0.6 0.7 0.6 0.7 0.7 0.7 0.7 0.8 0.7 0.6 0.7 0.8 0.7 0.8;
          0.4 0.5 0.5 0.5 0.6 0.5 0.5 0.5 0.5 0.5 0.6 0.5 0.5 0.6 0.7 0.6 0.6;
          0.5 0.5 0.5 0.5 0.7 0.6 0.5 0.4 0.5 0.5 0.6 0.5 0.5 0.6 0.5 0.6 0.5;
          0.8 0.7 0.6 0.9 0.7 0.6 0.8 0.6 0.6 0.7 0.9 0.8 0.7 0.8 0.7 0.6 0.7;
          0.6 0.6 0.7 0.5 0.7 0.8 0.6 0.7 0.8 0.5 0.6 0.5 0.6 0.7 0.6 0.6 0.8;];
    h = mydata(1:2 ,;
    m = mydata(3:4 ,;
    l = mydata(5:6 ,;
    test = mydata(7:8 ,;
    num=nchoosek(1:3,2);
    Training={h,m,l}; SVM=cell(size(num,1),1);
    for  k = 1: size(num,1)
        t1=Training{num(k,1)}; t2=Training{num(k,2)};
        SVM{k}=svmtrain([t1,t2],[ones(size(t1,1),1);zeros(size(t2,1),1)],'kernel_function','polynomial','polyorder',1);
    end
   
    for kk = 1: size(test,1)
         for k = 1: length(SVM)
             result(k)=svmclassify(SVM{k},test(kk,);
             temp(k)=num(k,1).*result(k)+num(k,2).*~result(k);
         end
    results(kk)=mode(temp,2);
    end




运行总是显示以下文字
Error using svmtrain (line 253)
Y and TRAINING must have the same number of rows.

Error in Untitled2 (line 19)
        SVM{k}=svmtrain([t1,t2],[ones(size(t1,1),1);zeros(size(t2,1),1)],'kernel_function','polynomial','polyorder',1);


求大神指点
回复此楼
好好学习,天天向上。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dnp

荣誉版主 (知名作家)

小木虫浪子

优秀版主

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
caucliushuai: 金币+7, ★★★★★最佳答案, 一语道破,厉害。 2014-07-09 23:37:44
出错是因为这个语句:
CODE:
SVM{k}=svmtrain([t1,t2],[ones(size(t1,1),1);zeros(size(t2,1),1)],'kernel_function','polynomial','polyorder',1);

中的X(即[t1,t2])和y(即[ones(size(t1,1),1);zeros(size(t2,1),1)])的维数不对应,即X矩阵中的样本数和标签向量y的长度不一致
你的X是
CODE:
[t1,t2]

这个表示方法是将t1和t2两个矩阵横向排列,变成了2*(2*n)的矩阵,我想正确的应该是
CODE:
[t1;t2]

这样修改我想应该没有问题了~~
What would Jesus do?
3楼2014-07-08 22:22:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 5 个回答

caucliushuai

银虫 (小有名气)

由于 论坛格式, 其中有几句被识别成笑脸了,现在重新把那几句写好
    h = mydata(1:2 ,               ;
    m = mydata(3:4 ,             ;
    l = mydata(5:6 ,               ;
    test = mydata(7:8 ,           ;


for kk = 1: size(test,1)
         for k = 1: length(SVM)
             result(k)=svmclassify(SVM{k},test(kk,)                      ;
             temp(k)=num(k,1).*result(k)+num(k,2).*~result(k);
         end
    results(kk)=mode(temp,2);
    end
好好学习,天天向上。
2楼2014-07-08 21:31:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sherry89

木虫 (正式写手)

我印象中 matlab自带的svm分类是不是只能分两类的?
Dowhatyoulike,likewhatyoudo
4楼2014-07-09 10:28:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

caucliushuai

银虫 (小有名气)

引用回帖:
3楼: Originally posted by dnp at 2014-07-08 22:22:59
出错是因为这个语句:

SVM{k}=svmtrain(,,'kernel_function','polynomial','polyorder',1);

中的X(即)和y(即)的维数不对应,即X矩阵中的样本数和标签向量y的长度不一致
你的X是



这个表示方法是将t1和 ...

感谢。
好好学习,天天向上。
5楼2014-07-09 23:37:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 欢迎发来filecode的Mz6后的代码验证其规律 +28 医学老男孩 2026-08-13 59/2950 2026-08-15 19:38 by pztchina
[基金申请] 有时候,自然基金真的不能太认真 (我的申报经验) +8 majunge000 2026-08-11 10/500 2026-08-15 18:55 by Equinoxhua
[基金申请] 哪位老哥知道今年的国自然具体哪一天放榜? +7 Ldrop2023 2026-08-13 7/350 2026-08-15 15:57 by mzhh2000
[基金申请] 关于Filecode分析方法 +10 majunge000 2026-08-10 13/650 2026-08-15 12:26 by hanpeng972
[基金申请] 各位道友,我要去昆明玩几天,回来见。 +7 Tide man 2026-08-14 8/400 2026-08-15 01:11 by arzu_hma
[基金申请] 咱们一起用铁证分析2026国家社科基金中标与否 +7 启萌科技 2026-08-12 22/1100 2026-08-14 23:45 by Noways
[基金申请] 奇怪,两个人的filecode固定段从头到尾一模一样 +8 布布和一二 2026-08-10 11/550 2026-08-14 14:58 by Equinoxhua
[基金申请] 应该是93bebmhtak前后十一个字符比较关键 +23 Lanmanbaby 2026-08-09 37/1850 2026-08-14 13:40 by Equinoxhua
[硕博家园] 请教兼职经验 +3 是阿文鸭 2026-08-09 3/150 2026-08-14 12:07 by HER12025
[基金申请] FileCode能看出啥? +10 要乐观耀哥 2026-08-10 32/1600 2026-08-14 09:37 by 要乐观耀哥
[基金申请] 我的国基提前知道中了,可是同事的操作让我实在接受不了,怎么会有这样的人 +10 家与远方 2026-08-10 15/750 2026-08-14 02:08 by 绵羊哥哥
[文学芳草园] 阿姨 +4 汪汪锅 2026-08-09 4/200 2026-08-13 19:43 by arzu_hma
[基金申请] 不应该看fileCode +7 且听虎啸 2026-08-12 9/450 2026-08-13 14:27 by flydreamws
[基金申请] 结合人工智能,周易传统文化,filecode打分制来了,3分以上希望很大。 +3 Tide man 2026-08-12 4/200 2026-08-13 08:35 by ZJTJZ
[基金申请] 2019年青年基金涵评意见,大家看看几个A,几个B? +11 Tide man 2026-08-11 11/550 2026-08-13 07:35 by 撸猫猫
[基金申请] 帮忙看看fileCode +7 wwncly 2026-08-10 13/650 2026-08-11 19:36 by 冰心玉壶晴
[基金申请] 为什么网上很多人说本周 12号出结果 +6 瞬息宇宙 2026-08-10 7/350 2026-08-11 19:25 by Tide man
[基金申请] 什么时候出结果,有咨询渠道??? +3 Tide man 2026-08-11 3/150 2026-08-11 17:54 by kudofaye
[基金申请] 国自然结果 +4 Vierhys 2026-08-10 8/400 2026-08-10 15:06 by Vierhys
[基金申请] 据悉今年马上要出结果了 +7 瞬息宇宙 2026-08-10 8/400 2026-08-10 12:42 by Vivilian
信息提示
请填处理意见