python 資料分析 PCA

2021-10-23 12:50:10 字數 1868 閱讀 2415

pca 主成分分析

將資料集標準化成均值為 0,標準差為 1

計算相關矩陣

將相關矩陣分解成它的特徵向量、特徵值

基於降序的特徵值選取 top —n 的特徵向量

特徵值標準。特徵值為1,意味著這個成分可以解釋乙個變數的變化價值。依據這個標準,需要採取特徵值大於或等於1的特徵值,可將1 作為特徵值的閾值。

import numpy as np 

from sklearn.datasets import load_iris

from sklearn.preprocessing import scale

import scipy

import matplotlib.pyplot as plt

# 匯入自帶的iris 鳶尾花資料

data = load_iris(

)x= data[

'data'

]y = data[

'target'

]# 將x 資料集標準化處理(均值為0 標準差為1)

# 因為pca是一種無監督的方法,不必處理目標值 y

x_s = scale(x,with_mean=

true

,with_std=

true

,axis=0)

# 計算相關關係矩陣

x_c =np.corrcoef(x_s.t)

# 從相關關係矩陣中找到特徵值和特徵向量

eig_val,r_eig_vec = scipy.linalg.eig(x_c)

print

("eign values \n%s"

%( eig_val)

)print

("\n eign vectors \n%s"

%(r_eig_vec)

)# 基於降序的特徵值的選擇 (大於等於1 )

w = r_eig_vec[:,

0:2]

# 通過特徵向量,將原來的資料集合將為 2維(原來是4維)

x_rd = x_s.dot(w)

# 畫出二維資料的散點圖

plt.figure(1)

plt.scatter(x_rd[:,

0],x_rd[:,

1],c=y)

資料降低維度後,利用2維度資料,也可以對目標值進行分類劃分。

# 普通pca方法是一種線性投射技術,只對資料是線性分布的情況有效

from sklearn.decomposition import pca

pca = pca(n_components =2)

pca.fit(x)

x_pca = pca.transform(x)

當資料不是線性分布時,需要使用非線性技術來給資料降維

from sklearn.decomposition import kernelpca

kpca = kernelpca(kernel =

"rbf"

)# kernel = "rbf" 徑向基函式

# kernel = "linear" 線性

# kernel = "poly" 多項式

# kernel = "sigmoid" 常見的s型函式

# kernel = "cosine" 余弦值

# kernel = "precomputed" 預先計算的

kpca.fit(x)

x_kpca = kpca.transform(x)

python資料分析

以網路爬蟲為例,網路爬蟲是乙個自動提取網頁的程式,爬蟲是搜尋引擎的第一步,也是最容易的一部。網頁搜尋,建立索引,查詢排序 用c c 效率高,速度塊,適合通用搜尋引擎做往往爬取。但是它的缺點也特別明顯 開發慢,寫起來又臭又長的。而python無論在資料分析還是在指令碼自動化編寫尚都是簡單,易學的。良好...

python資料分析

陣列間的算術運算 npwhere pandas的使用 np.random.rand 3,4 產生乙個3行4列的矩陣 0 1之間的 in 32 data1 1,2,3,4.0 in 34 arr1 np.array data1 in 35 arr1 out 35 array 1.2.3.4.in 37...

python資料分析

1.資料分析的含義與目標 2.python與資料分析 3.python資料分析大家族 4.python環境搭建 一 numpy 功能 ndarray 多維操作 線性代數 官網 numpy是python語言的乙個擴充程式庫。支援高階大量的維度陣列與矩陣運算,此外也針對陣列運算提供大量的數學函式庫。nu...