当前位置: 首页 > 程序语言 >马氏距离剔除光谱数据异常值

马氏距离剔除光谱数据异常值

作者 张小小旭
来源: 小木虫 600 12 举报帖子
+关注

请问大家,我在应用马氏距离剔除光谱数据异常值,我看到关于马氏距离有这样的描述“求在计算马氏距离过程中,要求总体样本数大于样本的维数,否则得到的总体样本协方差矩阵逆矩阵不存在,这种情况下,用欧式距离计算即可”

对于光谱数据来说,一般样本数几百个,每个样本光谱数据超过一千个,我用pdist函数报错显示
错误使用 pdist (line 190)
the covariance matrix for the mahalanobis metric must be symmetric and positive definite.
出错 shishi (line 132)
dist= pdist(x,'mahalanobis')

我看到很多论文是应用马氏距离剔除光谱数据异常值,这种样本数小于样本的维数情况下,是否可以实现马氏距离计算呢?
我的代码如下:

meanx=mean(x); %求均值
[m,n]=size(x);
covx=cov(x);%求协方差矩阵
cov_x=inv(covx);%逆矩阵
for i=1:m
dist(i)=(x(i,: )-meanx)*cov_x*(x(i,: )-meanx)'%求出每个样本到u的马氏距离,
end
dist= pdist(x,'mahalanobis')

x数据120样本,1900吸光度,用定义计算出马氏距离平方有负数,用pdist函数计算报错如上。
谢谢大家共同讨论! 返回小木虫查看更多

今日热帖
  • 精华评论
  • 张小小旭

    可能是这样的方法《PCA结合马氏距离法剔除近红外异常样品 陈 斌 , 邹贤勇 , 朱文静》

  • wlpl

    要是不用pca降维的话,可以Covx加一个很小的单位阵,保证可逆。

  • 张小小旭

    引用回帖:
    3楼: Originally posted by wlpl at 2019-12-27 17:38:14
    要是不用pca降维的话,可以Covx加一个很小的单位阵,保证可逆。

    谢谢回复,请问是先求协方差矩阵cov,再加上单位阵,然后求逆矩阵吗?具体是如何加单位阵呢,多谢~

  • LWJL2019



猜你喜欢
下载小木虫APP
与700万科研达人随时交流
  • 二维码
  • IOS
  • 安卓