Python處理高光譜資料 3 降維

2021-10-18 09:11:57 字數 1721 閱讀 1562

用到的庫:matplotlib、scipy、spectral

主要內容:主成分分析(pca)與線性判別(lda)

歡迎有興趣的朋友交流指點。最後,廢話不多說直接上**?

import matplotlib.pyplot as plt

from scipy.io import loadmat

import spectral as spy

# pca主成分分析

defpca_dr

(src)

: pc = spy.principal_components(src)

pc_98 = pc.

reduce

(fraction=

0.98

)# 保留98%的特徵值

print

(len

(pc_98.eigenvalues)

)# 剩下的特徵值數量

spy.imshow(data=pc.cov, title=

"pc_cov"

) img_pc = pc_98.transform(input_image)

# 把資料轉換到主成分空間

spy.imshow(img_pc[:,

:,:3

], stretch_all=

true

)# 前三個主成分顯示

return img_pc

# lda線性判別

deflda_dr

(src, gt)

: classes = spy.create_training_classes(src, gt)

fld = spy.linear_discriminant(classes)

print

(len

(fld.eigenvalues)

) img_fld = fld.transform(src)

spy.imshow(img_fld[:,

:,:3

])return img_fld

input_image = loadmat(

'd:/hyper/indian_pines_corrected.mat')[

'indian_pines_corrected'

]gt = loadmat(

"d:/hyper/indian_pines_gt.mat")[

'indian_pines_gt'

]pca_dr(input_image)

lda_dr(input_image, gt)

plt.pause(

60)

spy.principal_components計算資料的主成分,並返回乙個主成分的平均值、協方差、特徵值和特徵向量。該物件還包含乙個將資料旋轉到主成分空間的變換方法,以及乙個將特徵向量數量減小的方法。

python降維分析 Python資料降維

一些資料降維的特徵提取演算法,先導入包和資料 import numpy as np import pandas as pd import matplotlib.pyplot as plt from mpl toolkits.mplot3d import axes3d from sklearn.dec...

資源1號02D衛星的高光譜和多光譜資料介紹

資源1號02d衛星引數見下表 表1 zy1 02d高光譜資料看起來就像小號的gf5 ahsi,它的感測器其實也叫ahsi,不過將gf5的330個波段減少到了166個,其中vn 波段範圍76個,sw波段範圍90個。空間解析度仍然是30m。在rsd平台載入zy1 02d ahsi資料與gf5 ahsi類...

python3 pandas(處理丟失資料)

處理丟失資料nan主要有三種方法 pd.dropna,pd.fillna,pd.isnull 建立乙個包含nan not a number 的資料。import pandas as pd import numpy as np dates pd.date range 20130101 periods ...