24小时热门版块排行榜    

查看: 970  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 310求调剂 +3 baibai1314 2026-03-16 3/150 2026-03-21 03:56 by JourneyLucky
[考研] 299求调剂 +6 △小透明* 2026-03-17 6/300 2026-03-21 02:42 by JourneyLucky
[考研] 299求调剂 +4 shxchem 2026-03-20 5/250 2026-03-21 00:24 by 星空星月
[考研] 308求调剂 +3 阿姐阿姐家啊 2026-03-18 3/150 2026-03-20 23:24 by JourneyLucky
[考研] 药学383 求调剂 +3 药学chy 2026-03-15 5/250 2026-03-20 22:11 by 云游重阳
[考研] 0703化学调剂 ,六级已过,有科研经历 +13 曦熙兮 2026-03-15 13/650 2026-03-20 19:35 by Dream007008
[考研] 求调剂 +3 @taotao 2026-03-20 3/150 2026-03-20 19:35 by JourneyLucky
[考研] 086500 325 求调剂 +3 领带小熊 2026-03-19 3/150 2026-03-20 18:38 by 尽舜尧1
[考研] 286分人工智能专业请求调剂愿意跨考! +3 lemonzzn 2026-03-17 4/200 2026-03-20 11:04 by lemonzzn
[考研] 0703化学调剂 +10 妮妮ninicgb 2026-03-15 14/700 2026-03-19 22:59 by 学员8dgXkO
[考研] 320求调剂0856 +3 不想起名字112 2026-03-19 3/150 2026-03-19 22:53 by 学员8dgXkO
[考研] 生物学调剂招人!!! +3 山海天岚 2026-03-17 4/200 2026-03-19 21:34 by 怎么释怀
[考研] 266求调剂 +5 阳阳哇塞 2026-03-14 10/500 2026-03-19 15:08 by 阳阳哇塞
[考研] 材料与化工求调剂 +7 为学666 2026-03-16 7/350 2026-03-19 14:48 by 尽舜尧1
[考研] 一志愿福大288有机化学,求调剂 +3 小木虫200408204 2026-03-18 3/150 2026-03-19 13:31 by houyaoxu
[考研] 085600材料与化工求调剂 +6 绪幸与子 2026-03-17 6/300 2026-03-19 13:27 by houyaoxu
[考研] 268求调剂 +6 简单点0 2026-03-17 6/300 2026-03-18 09:04 by 无际的草原
[考研] 326求调剂 +5 上岸的小葡 2026-03-15 6/300 2026-03-17 17:26 by ruiyingmiao
[考博] 26申博 +4 八6八68 2026-03-16 4/200 2026-03-17 13:00 by 轻松不少随
[考研] 复试调剂 +3 呼呼?~+123456 2026-03-14 3/150 2026-03-14 16:53 by WTUChen
信息提示
请填处理意见