matlab SVM 返回 NaN

Posted

技术标签:

【中文标题】matlab SVM 返回 NaN【英文标题】:matlab SVM returns NaN 【发布时间】:2016-02-28 13:54:13 【问题描述】:

这是我的问题:我正在尝试使用支持向量机对一些数据进行分类,特别是 MATLAB 实现 fitcsvm。但是,当我计算预测时,一些预测的后验概率设置为 NaN。那是什么意思?这是代码

% Training
model  = fitcsvm(trainX, trainY, 'KernelFunction', 'RBF', 'KernelScale', 'auto', 'Prior', 'empirical');
model = fitSVMPosterior(model, 'Leaveout', 'on');

% Prediction
[~,scores] = predict(model, testX);

【问题讨论】:

【参考方案1】:

很可能,testX 包含NaNs。如果testX 包含用作SVM 项的任何变量的NaN,则后验概率也将为NaN

【讨论】:

【参考方案2】:

这里描述了这可能是由于并行运行的 *** 软件造成的:

https://www.csie.ntu.edu.tw/~cjlin/libsvm/faq.html#f427

问:为什么代码给出 NaN(不是数字)结果?

这种情况很少发生,但很少有用户报告此问题。看起来 他们用于培训 libsvm 的计算机运行了 *** 客户端。这 *** 软件存在一些错误并导致此问题。请尝试 关闭或断开 *** 客户端。

【讨论】:

以上是关于matlab SVM 返回 NaN的主要内容,如果未能解决你的问题,请参考以下文章

无法理解 SVM 返回的混淆矩阵

matlab 如何用插值给NAN赋值

matlab 如何用插值给NAN赋值

matlab 判断两个矩阵是否相等

matlab里答案出现NaN是啥情况

在 matlab 中使用 perfcurve 和 SVM (fitcsvm) 的 ROC 和 AUC