PCA實現高維資料視覺化

2021-10-04 20:59:05 字數 2547 閱讀 5028

pca(principal component analysis)即主成分分析是最常見的降維方法, 它是一種統計方法。用於高維資料集的探索與視覺化,還可用於資料的壓縮和預處理。可通過正交變換把具有相關性的高維變數轉換為線性無關的低維變數,這組低維變數稱為主成分,它能保留原始資料的資訊。

1)輸入:樣本集d=;低維空間數d』

2)過程:

①對所有樣本進行中心化;

②計算樣本的協方差矩陣xx^(t);

③對協方差矩陣xx^(t)作特徵值分解;

④取最大的d』個特徵值所對應的特徵向量w1,w2,…,w(d』)

3)輸出:

投影矩陣w=(w1,w2,…,w(d』))

pca應用:

主成分分析作為基礎的數學分析方法,其實際應用十分廣泛,比如人口統計學、數量地理學、分子動力學模擬、數學建模、數理分析等學科中均有應用,是一種常用的多變數分析方法。 [1]

1)完整**如下(**可復現):

"""

pca實現高維資料視覺化 03.28

目標:已知鳶尾花資料是4維,共3類樣本,使用pca實現降維,

並在二維平面上視覺化

"""# 1 建立工程,匯入sklearn 相關工具包

import matplotlib.pyplot as plt

from sklearn.decomposition import pca

from sklearn.datasets import load_iris

# 2 載入資料並進行降維

data = load_iris(

)y = data.target

x = data.data

pca = pca(n_components =2)

reduced_x = pca.fit_transform(x)

# 3 按類別對降維後的資料進行儲存

red_x,red_y =

,[]blue_x,blue_y =

,[]green_x,green_y =

,[]for i in

range

(len

(reduced_x)):

if y[i]==0

:[0]

)[1]

)elif y[i]==1

:[0]

)[1]

)else:[

0])[

1])# 4 降維後資料視覺化

plt.scatter(red_x,red_y, c =

'r',marker =

'x')

plt.scatter(blue_x,blue_y, c =

'b',marker =

'd')

plt.scatter(green_x,green_y, c =

'g',marker =

'.')

plt.show(

)

(2)部分**解析:

1)載入資料集並進行降維操作

其中y為資料集中的標籤,x為屬性資料

指定主成分個數n_components 為2

對原始資料降維後儲存於reduced_x中

data = load_iris(

)y = data.target

x = data.data

pca = pca(n_components =2)

reduced_x = pca.fit_transform(x)

2)按類別對降維後資料儲存

先用紅藍綠三種顏色分別表示資料;

用for in 迴圈按標籤y分明類別0,1或其他,

將不同資料儲存在不同列表中

red_x,red_y =

,[]blue_x,blue_y =

,[]green_x,green_y =

,[]for i in

range

(len

(reduced_x)):

if y[i]==0

:[0]

)[1]

)elif y[i]==1

:[0]

)[1]

)else:[

0])[

1])

3)將降維後的資料視覺化,用plt.scatter(資料,標籤,顏色,標記型別)

處理分類圖,plt.show()繪出圖形

plt.scatter(red_x,red_y, c =

'r',marker =

'x')

plt.scatter(blue_x,blue_y, c =

'b',marker =

'd')

plt.scatter(green_x,green_y, c =

'g',marker =

'.')

plt.show(

)

參考文獻

[1]林海明,杜子芳. 主成分分析綜合評價應該注意的問題[j]. 統計研究,2013,30(08):25-31

小白一枚,求賜教

tSNE 高維資料降維視覺化(理論部分)

t sne是一種降維方法,pca主成分分析 lda等屬於線性降維,t sne屬於非線性降維,是一種流形學習方法 manifold learning 如圖所示的曲面上,兩點之間的歐式距離為紅色虛線所示,藍色實線為兩點之間的測地線距離,第二張圖為knn圖,展開後如第三張圖所示。兩點之間的最短距離為藍色實...

低維資料視覺化

知識要點 實現 import pandas as pd import matplotlib.pyplot as plt from sklearn.datasets import make circles from sklearn.datasets import make moons def draw...

高維聚類結果視覺化

利用sklearn包裡的birch演算法,以iris資料集,聚類結果視覺化 如下 import numpy as np import matplotlib.pyplot as plt from sklearn.datasets.samples generator import make blobs ...