我使用GLCM技术来描绘mamo图像的提取,然后我使用朴素贝叶斯分类进行分类,
为什么输出列包含NaN?
当我们从朴素贝叶斯分类(1列包含0,1,NaN)中得到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]
答案 0 :(得分:1)
当训练数据中的观察值包含NaN值时,默认情况下NaiveBayes.predict
不会将它们分类为任何类,将NaN作为预测值返回。
通过HandleMissing
使用predict
选项,您可以更改此行为。默认情况下,它设置为off
,但如果将其设置为on
,则仅使用具有非NaN值的变量进行预测,并且不应将NaN作为预测返回(除非 all 变量是NaN)。
尝试
y = nb.predict(Ytest, 'HandleMissing', 'on');