python實現pca Python 實現 PCA

2021-10-11 14:55:26 字數 1296 閱讀 1113

實現

基於python帶有功能強大的sklearn庫,非常適合做機器學習,所以在此以python為例實現。

首先,訓練集有6組資料,每組資料有4個特徵,我們的目的是將其降到2維,也就是2個特徵。

#coding=utf-8

import numpy as np

from sklearn.decomposition import pca

x = np.array([[-1,2,66,-1], [-2,6,58,-1], [-3,8,45,-2], [1,9,36,1], [2,10,62,1], [3,5,83,2]]) #匯入資料,維度為4

pca = pca(n_components=2) #降到2維

pca.fit(x) #訓練

newx=pca.fit_transform(x) #降維後的資料

# pca(copy=true, n_components=2, whiten=false)

print(pca.explained_variance_ratio_) #輸出貢獻率

print(newx) #輸出降維後的資料

引數解釋:

n_components: 我們可以利用此引數設定想要的特徵維度數目,可以是int型的數字,也可以是閾值百分比,如95%,讓pca類根據樣本特徵方差來降到合適的維數,也可以指定為string型別,mle。

copy: bool型別,true或者false,是否將原始資料複製乙份,這樣執行後原始資料值不會改變,預設為true。

whiten:bool型別,是否進行白化(就是對降維後的資料進行歸一化,使方差為1),預設為false。如果需要後續處理可以改為true。

explained_variance_: 代表降為後各主成分的方差值,方差值越大,表明越重要。

explained_variance_ratio_: 代表各主成分的貢獻率。

inverse_transform(): 將降維後的資料轉換成原始資料,x=pca.inverse_transform(newx)。

結果分析:

[0.95713353 0.03398198]

[[ 7.96504337 4.12166867]

[ -0.43650137 2.07052079]

[-13.63653266 1.86686164]

[-22.28361821 -2.32219188]

[ 3.47849303 -3.95193502]

[ 24.91311585 -1.78492421]]

第一行為各主成分的貢獻率,可以看出第乙個特徵佔了很大比重 ,後面幾行是降維後的資料。

python實現線性回歸 python實現線性回歸

參考 機器學習實戰 machine learning in action 一 必備的包 一般而言,這幾個包是比較常見的 matplotlib,用於繪圖 numpy,陣列處理庫 pandas,強大的資料分析庫 sklearn,用於線性回歸的庫 scipy,提供很多有用的科學函式 我一般是用pip安裝,...

python爬蟲基礎實現 Python實現基礎爬蟲

初次使用urllib實現爬蟲的資料請求 urllib.request.urlopen url 發起get請求 urllib.parse.quote 將中文進行url編碼 from urllib.request importurlopen,urlretrieve,requestfrom urllib....

python實現快取 Python實現快取

注意 本文是乙個存根。稍會將發布有關不同的簡單快取實現的更詳細分析。請參閱下面的註解獲得大致的摘要。簡單快取實現 用法 注意,該實現使用普通列表來跟蹤訪問順序,以便能夠在快取填滿時丟棄最近最少使用的專案。列表型別沒有真正為此目的而優化,但是這種方法對於較小的快取非常有效,特別是當快取訪問遵循80 2...