matlab中svm时标签问题

关于SVM用法的一个简单的实例(训练集和测试集简单的划分):
参考http://blog.sina.com.cn/s/blog_71152aa70101tl62.html
我在win10系统用MATLAB2014a、VS2012、libsvm3.24写代码,做训练时没有问题,做测试出现以下问题
label (1st argument) should be a vector (# of column is 1).
标签应该是一个向量
我的标签是mat格式的excel表格,1和-1两种。现在mat下无法改成(0,1)和(1,0)格式,显示
MMATLAB数值数组中不允许使用此表达式
如果有解决办法的请评论或发送邮件到2528703035@qq.com,谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
SVM(支持向量机)是一种常用的机器学习算法,可以用于分类和回归问题。在MATLAB,可以使用内置的svmtrain和svmclassify函数来实现SVM。 首先,使用svmtrain函数来训练SVM模型。该函数的语法如下: ``` svmModel = svmtrain(trainingData, trainingLabels, '参数', 参数值); ``` 其,trainingData是训练数据,是一个n-by-m的矩阵,n表示样本数,m表示特征数。trainingLabels是训练数据的标签,是一个n-by-1的向量。参数可以是一个字符串,例如: - '-t 0'表示线性内核 - '-t 1'表示多项式内核 - '-t 2'表示径向基函数(RBF)内核 接下来,使用svmclassify函数来对测试数据进行分类。该函数的语法如下: ``` predictedLabels = svmclassify(svmModel, testData); ``` 其svmModel是训练好的SVM模型,testData是测试数据,是一个n-by-m的矩阵,n表示测试样本数,m表示特征数。predictedLabels是预测的标签,是一个n-by-1的向量。 以下是一个简单的例子: ``` % 创建训练数据和标签 trainingData = [1, 2; 3, 4; 5, 6]; trainingLabels = [1; 2; 1]; % 训练SVM模型 svmModel = svmtrain(trainingData, trainingLabels, '-t 0'); % 创建测试数据 testData = [2, 2; 4, 4]; % 对测试数据进行分类 predictedLabels = svmclassify(svmModel, testData); disp(predictedLabels); ``` 此例,训练数据有3个样本,每个样本有2个特征。训练标签是1和2。将训练数据和标签传入svmtrain函数,使用线性内核进行训练。然后,创建两个测试样本,并使用svmclassify函数对其进行分类。 以上是MATLAB使用SVM的基本步骤和例子,希望能对你有所帮助。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值