Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在libsvm-matlab中标记一类进行交叉验证_Matlab_Label_Libsvm_Outliers_Cross Validation - Fatal编程技术网

在libsvm-matlab中标记一类进行交叉验证

在libsvm-matlab中标记一类进行交叉验证,matlab,label,libsvm,outliers,cross-validation,Matlab,Label,Libsvm,Outliers,Cross Validation,我想在MATLAB中使用LibSVM进行一类分类 我想训练数据并使用交叉验证,但我不知道如何标记异常值 例如,如果我有以下数据: trainData = [1,1,1; 1,1,2; 1,1,1.5; 1,1.5,1; 20,2,3; 2,20,2; 2,20,5; 20,2,2]; labelTrainData = [-1 -1 -1 -1 0 0 0 0]; 前四个是1类的示例,其他四个是异常值的示例,仅用于交叉验证 我用以下方法训练模型: model = svmtrain(labe

我想在MATLAB中使用LibSVM进行一类分类

我想训练数据并使用交叉验证,但我不知道如何标记异常值

例如,如果我有以下数据:

trainData =  [1,1,1; 1,1,2; 1,1,1.5; 1,1.5,1; 20,2,3; 2,20,2; 2,20,5; 20,2,2];
labelTrainData = [-1 -1 -1 -1 0 0 0 0];  
前四个是1类的示例,其他四个是异常值的示例,仅用于交叉验证

我用以下方法训练模型:

model = svmtrain(labelTrainData, trainData , '-s 2 -t 0 -d 3 -g 2.0 -r 2.0 -n 0.5 -m 40.0 -c 0.0 -e 0.0010 -p 0.1 -v 2' );
我不确定使用哪个值来标记1类数据,以及使用什么来标记异常值。有人知道怎么做吗

提前谢谢。 -Jessica

根据,由于在 单类支持向量机,不可能对核进行优化 参数使用交叉验证。 然而,根据调查,这并不完全正确:

Q:由于训练数据仅在一个类中,如何为一个类的SVM选择参数? 您已经预先指定了真阳性率,然后搜索达到类似交叉验证精度的参数

此外,libsvm源的自述文件中还提到了输入数据: 对于分类,label是一个整数,表示类标签。。。对于一类SVM,它没有使用,所以可以是任意数字


我认为您的异常值不应包含在训练数据中-libsvm将忽略训练标签。您要做的是找到一个包含良好数据但不包含异常值的超球体。如果您在数据中使用异常值进行训练,LIBSVM将尝试找到一个包含异常值的超球体,这正是您不想要的。因此,您将需要一个没有异常值的训练数据集,一个用于选择参数的带有异常值的验证数据集,以及一个最终的测试数据集,以查看您的模型是否通用。

查看下面的帖子。一类svm,顾名思义,你在训练集中只有一个类,谢谢,但是,我还有下一个疑问。因此,不可能对1类/异常值?使用交叉验证?。我使用了weka包装器,如果我使用标有“?”的实例,它们在培训过程中会被忽略。另外,对于一个类,哪个标签是正确的?只是任何数字,还是应该严格使用-1或特定值?任何数字都可以,因为标签尝试使用不同的标签,看看这是否会改变您的分类器。。。但不确定交叉验证。