2016-08-13 4 views
1

Я использую набор инструментов libsvm для классификации нескольких наборов классов. В моем случае У меня есть 9 классов. Ниже мой код:Как решить значение NaN в классификаторе SVM?

model = ovrtrainBot(trainLabel, trainData, type); 

[predict_label, accuracy, decis_values] = ovrpredictBot(testLabel, testData, model); 

я установить тип ядра для "1", который является полиномом, так как я нашел это даст лучшую точность классификации. Но проблема параметр accuracy дает все значения NaN в 3-й строке. Параметр "accuracy" представлена ​​следующим образом:

63.63% 92.56% 92.56% 92.56% 92.56% 92.56% 92.56% 92.56% 92.56% 
0.3636 0.0744 0.0744 0.0744 0.0744 0.0744 0.0744 0.0744 0.0744 
NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN NaN 

Если я использую ядро ​​t = 0(linear), то третья строка точности будет иметь значение, но точность классификации значительно ниже, чем я использую kernel t=1.

Может ли кто-нибудь помочь мне решить эту проблему?

+0

@Hoki, вы можете ответить на этот вопрос? Очень ценим! –

+0

Прошу прощения, но у меня нет абсолютно никакого знания предмета. Что означает третья строка? ... может быть, это нормально, если в каком-то случае они будут «NaN» ... или, по крайней мере, не беспокоятся, если конечная точность будет лучше. – Hoki

ответ

0

Это квадрат коэффициент корреляции (http://www.openpr.org.cn/files/help/rn01re18.html), который не имеет отношения к проблеме классификации

+0

Вы имеете в виду, даже если это NaN, это все еще в порядке? Не имеет значения? –

+0

Да, вы должны быть в состоянии игнорировать его – Richard

Смежные вопросы