24小时热门版块排行榜    

查看: 1096  |  回复: 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的回帖

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的回帖

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的回帖

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的回帖
相关版块跳转 我要订阅楼主 caucliushuai 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 时间戳又变了8-15 +11 archvillain 2026-08-15 20/1000 2026-08-15 17:47 by 医学老男孩
[博后之家] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +3 HFw0lei2R37i 2026-08-14 5/250 2026-08-15 17:42 by 7huP8NPKZCp9
[基金申请] 欢迎发来filecode的Mz6后的代码验证其规律 +27 医学老男孩 2026-08-13 58/2900 2026-08-15 15:57 by GZUZM
[基金申请] 哪位老哥知道今年的国自然具体哪一天放榜? +7 Ldrop2023 2026-08-13 7/350 2026-08-15 15:57 by mzhh2000
[考研] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 P4JhWrbJGjSe 2026-08-14 5/250 2026-08-15 15:46 by QXtWNz7PI7wZ
[考博] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 k0dTPqJtl0jt 2026-08-14 3/150 2026-08-15 12:33 by KxMI1BYBxWX1
[考研] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +5 HFw0lei2R37i 2026-08-14 9/450 2026-08-15 11:33 by KxMI1BYBxWX1
[教师之家] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +5 7lpolszZVXgi 2026-08-14 6/300 2026-08-15 09:28 by sunzitan
[公派出国] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 7lpolszZVXgi 2026-08-14 5/250 2026-08-15 04:41 by 4wMiSEwB6436
[硕博家园] 读博的好处 +4 lnee 2026-08-11 4/200 2026-08-14 10:20 by ahsoarli
[基金申请] filecode +15 documentary 2026-08-10 17/850 2026-08-14 10:08 by kissu88
[基金申请] FileCode能看出啥? +10 要乐观耀哥 2026-08-10 32/1600 2026-08-14 09:37 by 要乐观耀哥
[文学芳草园] 阿姨 +4 汪汪锅 2026-08-09 4/200 2026-08-13 19:43 by arzu_hma
[基金申请] 静等基金结果 +8 gjjjzhong 2026-08-10 21/1050 2026-08-13 17:56 by 且听虎啸
[基金申请] 不应该看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
[基金申请] 综述论文作为代表作会不会影响评审专家的印象分? +11 yufeiwaner 2026-08-09 13/650 2026-08-12 08:17 by yufeiwaner
[基金申请] 什么时候出结果,有咨询渠道??? +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
[基金申请] 面上项目filecode邪修 +5 西山十月 2026-08-09 7/350 2026-08-10 07:32 by 仁砚薪传
信息提示
请填处理意见