Python遙感資料主成分分析

2022-08-20 03:06:10 字數 1891 閱讀 8167

原文:

可是,從理論上感覺也說得過去,因為特徵向量本來就具有不唯一性。最讓人費解的是,就算兩者特徵向量不一致,可為什麼使用pca的結果卻反差很大呢?感覺上來看,好像是python的不準確性更大一點。

**如下:

#

-*- coding: utf-8 -*-

"""created on tue jan 12 21:45:57 2016

@author: leonwen

"""import

osfrom pil import

image

from numpy import *

from pylab import *

path = r'

d:\projects\pythonproj\imageprocessing\2012

'sst_dir =os.listdir(path)

file_len =len(sst_dir)

sst_list =

for i in

range(file_len):

str = path + '

\\' +sst_dir[i]

#txt = open(str).read()

immatrix =

for im in

sst_list:

text =loadtxt(im)

immatrix =array(immatrix)

#顯示輸出

figure()

gray()

for i in

range(file_len):

subplot(3,4,i + 1)

pic = immatrix[i].reshape(180,360)

pic = pic[::-1]

#picshow = rot90(pic,4)

imshow(pic)

colorbar()

show()

#轉換成樣本總體

x =immatrix.t

#獲取要本大小

m,n = x.shape[0:2]

#取得各個樣本均值

meanval = mean(x,axis =0)

#tempmean = tile(meanval,(64800,1))

#樣本矩陣去中心化

x = x - tile(meanval,(64800,1))

#計算協方差

s = dot(x.t,x) / (m - 1)

#計算特徵值eg和特徵向量ev

eg,ev =linalg.eig(s)

#eg1,ev1 = linalg.eigh(s) # 這兩種演算法存在排序區別,eigh返回結果由小到大

#計算新的成分

y =dot(immatrix.t,ev)

figure()

gray()

for i in

range(n):

subplot(3,4,i + 1)

out =y[:,i]

outpic = out.reshape(180,360)

outpic = outpic[::-1]

imshow(outpic)

colorbar()

show()

結果顯示:

原始資料顯示

pca主成分分析結果輸出

可能是我自己的原因吧,正在排查,哪位大神指導還望課指導鄙人一下~先就此謝過~o(∩_∩)o~

主成分分析

主成分分析 pca 分析乙個隨機向量的中的主成分 主成分一般不是隨機向量中的某乙個分量,而是不同分量的線性組合,根據資訊理論的觀點,資訊的多少與方差有關,所以 主成分是方差最大的幾個成分 主成分分析的方法是求隨機向量的協方差矩陣 用樣本協方差矩陣代替 對於差異較大的資料,可採用相關矩陣代替協方差矩陣...

主成分分析

理論要點 1 主成分分析是一種無監督學習,因此不能用交叉驗證來檢驗誤差 2 在處理資料之前,要對資料做中心化處理 3 p太大的話,做特徵分解用svd 4 一共有min n 1,p 個主成分,因為中心化以後,rank要降一維 5 主成分的載荷向量就是協方差矩陣的特徵向量,對應特徵值最大的是第一主成分,...

主成分分析

1.概念 將一組可能存在相關性的隨機變數轉變成互不相關的隨機變數。這個概念裡有三個地方需要理解清楚。1 隨機變數的指代 在資料集中,每乙個樣本,即將資料集理解成乙個 的話,乙個樣本就是一行,則每一列就是乙個特徵,也就是乙個隨機變數,一列的所有取值就是隨機變數的所有可能取值 說的所有可能取值只針對訓練...