2015-04-24 2 views
-3

Я использовал методы GLCM для выделения экстракта из изображений мамо, а затем я использовал классификацию наивных заливов для классификации,какое значение мы можем заменить для NaN в Matlab?

Почему выходной столбец включен NaN?

Какое значение мы можем заменить NaN, когда у нас есть 1 матрица вывода из наивной классификации байков (1 столбец Включен 0,1, NaN)?

код:

Train_Test(); 

nb = NaiveBayes.fit(Ytrain, Traininglabel); 

y = nb.predict(Ytest); 

confusionmat(Testinglabel,y); 

выход:

y= 
[NaN 
NaN 
NaN 
0 
0 
0 
NaN 
0 
0 
0 
0 
0 
0 
1 
0] 
+2

Обычно что-то пошло не так где-то в коде, когда вы получаете значения NaN! Вы должны сначала исследовать, как они попали туда, и если вы можете исправить проблему, если она есть. – Cat

+1

Опубликуйте значения ваших данных/меток обучения или проверьте, есть ли в них какие-либо NaN – krisdestruction

ответ

1

Когда наблюдения в данных учебных содержат значения NaN, по умолчанию NaiveBayes.predict не будет классифицировать их в любой класс, возвращая NaN в качестве прогнозируемого значения.

С помощью опции HandleMissing на номер predict вы можете изменить это поведение. По умолчанию он установлен в off, но если вы установите его на on, он прогнозирует использование только переменных с значениями, отличными от NaN, и не должен возвращать NaN в качестве предсказания (если только все переменными являются NaN).

Попробуйте

y = nb.predict(Ytest, 'HandleMissing', 'on'); 
Смежные вопросы