24小时热门版块排行榜    

查看: 959  |  回复: 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

银虫 (小有名气)

引用回帖:
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的回帖
查看全部 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的回帖

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的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 085600材料工程一志愿中科大总分312求调剂 +7 吃宵夜1 2026-02-28 9/450 2026-02-28 19:15 by 公瑾逍遥
[考博] 博士推荐 +5 花儿笑? 2026-02-21 6/300 2026-02-28 18:53 by nxgogo
[考研] 298求调剂 +6 人间唯你是清欢 2026-02-28 8/400 2026-02-28 18:52 by 人间唯你是清欢
[考研] 材料学调剂 +4 提神豆沙包 2026-02-28 4/200 2026-02-28 18:26 by houyaoxu
[考研] 高分子化学与物理调剂 +4 好好好1233 2026-02-28 5/250 2026-02-28 18:20 by liqiongjy
[教师之家] 版面费该交吗 +15 苹果在哪里 2026-02-22 18/900 2026-02-28 18:20 by mibaomingg
[考研] 材料类求调剂 +4 wana_kiko 2026-02-28 4/200 2026-02-28 18:08 by djennjx
[考研] 材料调剂 +3 爱擦汗的可乐冰 2026-02-28 3/150 2026-02-28 18:06 by houyaoxu
[考研] 求调剂 +3 repeatt?t 2026-02-28 3/150 2026-02-28 18:00 by houyaoxu
[考博] 博士自荐 +3 kkluvs 2026-02-28 3/150 2026-02-28 16:59 by StarAura
[高分子] 求环氧树脂研发1名 +3 孙xc 2026-02-25 11/550 2026-02-28 16:57 by ichall
[考研] 265分求调剂不调专业和学校有行学上就 +4 礼堂丁真258 2026-02-28 6/300 2026-02-28 16:18 by 求调剂zz
[考博] 26申博 +3 想申博! 2026-02-26 3/150 2026-02-28 16:07 by nxgogo
[考研] 295求调剂 +4 19171856320 2026-02-28 4/200 2026-02-28 13:39 by ms629
[考研] 0856调剂 +3 刘梦微 2026-02-28 3/150 2026-02-28 13:22 by houyaoxu
[考研] 304求调剂 +5 曼殊2266 2026-02-28 6/300 2026-02-28 12:44 by 迷糊CCPs
[考研] 298求调剂 +4 axyz3 2026-02-28 4/200 2026-02-28 11:21 by wang_dand
[基金申请] 什么是人一生最重要的? +10 瞬息宇宙 2026-02-21 10/500 2026-02-27 08:46 by tfang
[基金申请] 面上可以超过30页吧? +12 阿拉贡aragon 2026-02-22 13/650 2026-02-26 22:09 by Hahaxia
[硕博家园] 【博士招生】太原理工大学2026化工博士 +4 N1ce_try 2026-02-24 8/400 2026-02-26 08:40 by N1ce_try
信息提示
请填处理意见