Это мой ARFF файл:Почему во время классификации в Weka возникает исключение UnsupportedAttributeTypeException?
@relation ClusterDistance
@attribute distance0 numeric
@attribute distance1 numeric
@attribute distance2 numeric
@data
3.501182,4.962404,4.921806
4.72434,3.817828,6.150944
3.625896,3.778409,4.707268
20.280764,20.484229,20.444962
6.862792,8.197314,5.97863
4.517184,6.252255,4.998582
4.788527,6.103926,5.57304
Я tryring использовать один класс SVM с использованием LIBSVM Weka обертку следующим образом:
DataSource source = new DataSource("resources/ClusterDistancesTraining.arff");
Instances data = source.getDataSet();
if (data.classIndex() == -1) {
data.setClassIndex(olddata.numAttributes() - 1);
}
LibSVM svmClassifier = null;
if (svmClassifier == null) {
svmClassifier = new LibSVM();
svmClassifier.setSVMType(new SelectedTag(LibSVM.SVMTYPE_ONE_CLASS_SVM, LibSVM.TAGS_SVMTYPE));
svmClassifier.setKernelType(new SelectedTag(LibSVM.KERNELTYPE_RBF, LibSVM.TAGS_SVMTYPE));
svmClassifier.buildClassifier(data);
}
Когда я бегу, я получаю эту ошибку:
Exception in thread "main" weka.core.UnsupportedAttributeTypeException: weka.classifiers.functions.LibSVM: Cannot handle numeric class! at weka.core.Capabilities.test(Capabilities.java:1136) at weka.core.Capabilities.test(Capabilities.java:1303) at weka.core.Capabilities.test(Capabilities.java:1208) at weka.core.Capabilities.testWithFail(Capabilities.java:1506) at weka.classifiers.functions.LibSVM.buildClassifier(LibSVM.java:1652) at de.tub.fak4.insin.gruppe3.util.SVM_Classifier.main(SVM_Classifier.java:70)
Поэтому я преобразовал значения в номинальные, используя weka.filters.unsupervised.attribute.NumericToNominal
; Это часть я добавил:
DataSource source = new DataSource("resources/ClusterDistancesTraining.arff");
Instances olddata = source.getDataSet();
if (olddata.classIndex() == -1) {
olddata.setClassIndex(olddata.numAttributes() - 1);
}
NumericToNominal converter = new NumericToNominal();
String[] options = new String[2];
options[0] = "-R";
options[1] = "1-3";
converter.setOptions(options);
converter.setInputFormat(olddata);
Instances data = Filter.useFilter(olddata, converter);
LibSVM svmClassifier = null;
if (svmClassifier == null) {
svmClassifier = new LibSVM();
svmClassifier.setSVMType(new SelectedTag(LibSVM.SVMTYPE_ONE_CLASS_SVM, LibSVM.TAGS_SVMTYPE));
svmClassifier.setKernelType(new SelectedTag(LibSVM.KERNELTYPE_RBF, LibSVM.TAGS_SVMTYPE));
svmClassifier.buildClassifier(data);
}
Но теперь я получаю эту ошибку:
Exception in thread "main" weka.core.UnsupportedAttributeTypeException: weka.classifiers.functions.LibSVM: Cannot handle multi-valued nominal class! at weka.core.Capabilities.test(Capabilities.java:1122) at weka.core.Capabilities.test(Capabilities.java:1303) at weka.core.Capabilities.test(Capabilities.java:1208) at weka.core.Capabilities.testWithFail(Capabilities.java:1506) at weka.classifiers.functions.LibSVM.buildClassifier(LibSVM.java:1652) enter code hereatde.tub.fak4.insin.gruppe3.util.SVM_Classifier.main(SVM_Classifier.java:85)
ли кто-нибудь пожалуйста, скажите мне, что случилось? С уважением С наилучшими пожеланиями