我们可以在matlab中替换NaN的价值是多少?

时间:2015-04-24 06:57:15

标签: matlab

我使用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]

1 个答案:

答案 0 :(得分:1)

当训练数据中的观察值包含NaN值时,默认情况下NaiveBayes.predict不会将它们分类为任何类,将NaN作为预测值返回。

通过HandleMissing使用predict选项,您可以更改此行为。默认情况下,它设置为off,但如果将其设置为on,则仅使用具有非NaN值的变量进行预测,并且不应将NaN作为预测返回(除非 all 变量是NaN)。

尝试

y = nb.predict(Ytest, 'HandleMissing', 'on');