OpenCV PCA给出了nan值

时间:2017-04-21 11:35:25

标签: c++ opencv nan opencv3.0 pca

使用C ++ OpenCV 3.1.0 PCA。

实现给出nan值,我的PCA功能是

Mat PCA_doer(Mat& tdata, int feature_sel = 180)
{
Mat average;
PCA pca(tdata, average, CV_PCA_DATA_AS_ROW, feature_sel);
Mat newdata = Mat::zeros(tdata.rows, feature_sel,tdata.type());
pca.project(tdata,newdata);

return newdata;
}

数据(原始输入)是形式的(这是为了让您了解它以行主格式保存):

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

等等(大约9000个样本x 248个特征,减少到180个特征), 输入是一个标准的浮点矩阵,如果你可以想象-ve somthing和积极的东西之间的值那么它。矩阵太大了,不能在这里发布,所以上面应该给你一个想法

做PCA后

输出为nan

输出格式为:

 -nan, -nan, -nan, -nan, -nan, -nan, -nan, -nan, -nan, -nan, -nan,
 -nan, -nan, -nan, -nan, -nan, -nan, -nan, -nan, -nan, -nan, -nan, -nan, 
-nan, -nan, -nan, -nan, -nan, -nan, -nan, -nan, -nan, -nan, -nan, -nan, -nan]

(你明白了)

我做错了什么?

编辑:

是的,我正在取消这一点,以便如果有人遇到同样的问题,正如Micka所说,我的意见是南。 我正在通过矢量归一化进行特征缩放,矢量归一化将一些值转换为纳米,然后输入到pca。因此结果。

问题#2虽然,PCA恶化了结果,为什么会发生这种情况?

0 个答案:

没有答案