一、属性矩阵和标签:
一个班级里面有两个男生(男生1、男生2),两个弊散掘女生(女生1、女生2),其中
男生1 身高:176cm 体重:70kg;
男生2 身高:180cm 体重:80kg;
女生1 身高:161cm 体重:45kg;
女生2 身高:163cm 体重:47kg;
如果将男生定义为1,女生定义为-1,并将上面的数据放入矩阵data中,即
data = [176 70
180 80
161 45
163 47]
复制代码
在label中存入男女生类别标掘歼签(1、-1),即
label = [11-1-1]
复制代码
这样上面的data矩阵就是一个属性矩阵,行数4代表有4个样本,列数2表示属性有两个,label就是标签(1、-1表示有两个类别:男生、女生)。
二、有了上面的属性矩阵data,和标签label就可以利用libsvm建立分类模型了,简要代码如下:
model = svmtrain(label,data)
复制代码
有了model就可以做分类预测,比如此时该班级又转来一个新学生,其
身高190cm,体重租核85kg
想通过上面这些信息就给出其标签(想知道其是男【1】还是女【-1】)
比如 令 testdata = [190 85]由于其标签不知道,假设其标签为-1(也可以假设为1)
即
testdatalabel = -1
然后利用libsvm来预测这个新来的学生是男生还是女生,代码如下:
[predictlabel,accuracy] = svmpredict(testdatalabel,testdata,model)
复制代码
下面整体运行一下上面这段的背景数据和代码:
data = [176 70
180 80
161 45
163 47]
label = [11-1-1]
model = svmtrain(label,data)
testdata = [190 85]
testdatalabel = -1
[predictlabel,accuracy] = svmpredict(testdatalabel,testdata,model)
predictlabel
复制代码
运行结果如下:
Accuracy = 0% (0/1) (classification)
predictlabel =
您饥蚂好,很高兴为您解答。
a(1)=0for i=2:220
a(i)=0.6*a(i-1)+randn
end
train_t = 1:200
train = a(train_t)
train_t = train_t'
train = train'
test_t = 1:203
test=a(test_t)
test_t = test_t'
test = test'
[bestmse,bestc,bestg] = SVMcgForRegress(train,train_t,-3,11,-7,1,3,0.5,0.5,0.1)
cmd = ['-c ',num2str(bestc),' -g ',num2str(bestg),'凯芹 -p 0.01 -s 3']
model = svmtrain(train,train_t,cmd)
[trainpre,trainmse] = svmpredict(train,train_t,model)
figure
hold on
plot(train)
plot(trainpre,'r')
title('原来的训练数据的拟合1-200')
legend('原来的训练数据','训练数据预测拟合数据')
hold off
[testpre,testmse] = svmpredict(test,test_t,model)
figure
hold on
plot(test)
plot(testpre,'r')
title('测试数据的预测1-203')
legend('测试数据','测试数据预测拟合数据')
hold off
如若烂孙埋满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】
希望我的回答对您有所帮助,望采纳!
~ O(∩_∩)O~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)