• 大小: 2KB
    文件类型: .py
    金币: 2
    下载: 1 次
    发布日期: 2021-05-12
  • 语言: Python
  • 标签: 马氏距离  

资源简介

pca主成分按贡献率降维光谱数据 之后进行马氏距离和欧式距离的计算

资源截图

代码片段和文件信息

import numpy as np
import scipy.io as sio

def zeroMean(dataMat):
    meanVal=np.mean(dataMataxis=0)     #按列求均值,即求各个特征的均值
    newData=dataMat-meanVal
    return newDatameanVal

def percentage2n(eigValspercentage):
    sortArray=np.sort(eigVals)   #升序
    sortArray=sortArray[-1::-1]  #逆转,即降序
    arraySum=sum(sortArray)
    tmpSum=0
    num=0
    for i in sortArray:
        tmpSum+=i
        num+=1
        if tmpSum>=arraySum*percentage:
            return num

def pca(dataMatpercentage):
    newDatameanVal=zeroMean(dataMat)
    covMat=np.cov(newDatarowvar=0)    #求协方差矩阵return ndarray;若rowvar非0,一列代表一个样本,为0,一行代表一个样本
    eigValseigVects=np.linalg.eig(np.mat(covMat))#求特征值和特征向量特征向量是按列放的,即一列代表一个特征向量
    n=percentage2n(eigValspercentage)                 #要达到percent的方差百分比,需要前n个特征向量
    eigValIndice=np.argsort(eigVals)            #对特征值从小到大排序
    n_eigValIndice=eigValIndice[-1:-(n+1):-1]   #最大的n个特征值的下标
    n_eigVect

评论

共有 条评论

相关资源