我有(256 * 1)特征向量来自(16 * 16)灰度图像。向量的数量是550 当我计算这个向量的样本协方差并计算协方差矩阵行列式时 答案是inf
有限矩阵的可能决定因素是有限范围(0:255)的值是无限的还是我错误的某些地方?
事实上,我想要用贝叶斯估计进行分类,我的分布是高斯分布的 我计算行列式是inf和最终答案(似然)是零。我的代码的一部分:
Mean = mean(dataSet,2);
MeanMatrix = Mean*ones(1,NoC);
Xc = double(dataSet)-MeanMatrix; % transform data to the origine
Sigma = (1/NoC) *Xc*Xc'; % calculate sample covariance matrix
Parameters(i).M = Mean';
Parameters(i).C = Sigma;
likelihoods(i) = (1/(2*pi*sqrt(det(params(i).C)))) * (exp(-0.5 * (double(X)-params(i).M)' * inv(params(i).C) * (double(X)-params(i).M)));
变量我展示我的课程; 变量X显示我的特征向量;
答案 0 :(得分:6)
这种矩阵的决定因素可以是无限的吗?不,它不能。
它可以评估为无限吗?当然是。
这是一个具有有限数量元素的矩阵的例子,它不是太大,但行列式很少会被评估为有限数:
det(rand(255)*255)
答案 1 :(得分:1)
在你的情况下,可能发生的事情是你的数据点太少而不能产生全秩协方差矩阵。
例如,如果您有N
个示例,每个示例都包含维度d
和N<d
,那么您的d x d
协方差矩阵将不会满级,并且会有决定性为零。
在这种情况下,不存在矩阵逆(精度矩阵)。但是,尝试计算逆的行列式(通过取1/|X'*X|=1/0 -> \infty
)将产生无限值。
解决此问题的一种方法是将协方差设置为X'*X+eps*eye(d)
,其中eps
是一个较小的值。该技术对应于在X
的元素上放置弱先验分布。
答案 2 :(得分:0)
不,这是不可能的。它可能是单数,但是将元素作为一个较大的值会有一个决定性的价值。