?大俠幸會(huì),在下全網(wǎng)同名[算法金] 0 基礎(chǔ)轉(zhuǎn) AI 上岸,多個(gè)算法賽 Top [日更萬(wàn)日,讓更多人享受智能樂(lè)趣] 1. 概念:數(shù)據(jù)降維的數(shù)學(xué)方法 定義 主成分分析(PCA)是一種統(tǒng)計(jì)方法,通過(guò)正交變換將一組可能相關(guān)的變量轉(zhuǎn)換為一組線性不相關(guān)的變量,這組新的變量稱為主成分。 大白話,PCA能夠從數(shù)據(jù)
?大俠幸會(huì),在下全網(wǎng)同名[算法金] 0 基礎(chǔ)轉(zhuǎn) AI 上岸,多個(gè)算法賽 Top [日更萬(wàn)日,讓更多人享受智能樂(lè)趣]
定義
特點(diǎn)
應(yīng)用領(lǐng)域
介紹一個(gè)用于主成分分析的 Python 庫(kù)
PCA的核心是構(gòu)建在sklearn功能之上,以便在與其他包結(jié)合時(shí)實(shí)現(xiàn)最大的兼容性。
除了常規(guī)的PCA外,它還可以執(zhí)行SparsePCA和TruncatedSVD。
其他功能包括:
pip install pca
from pca import pca # 導(dǎo)入PCA模塊
import numpy as np
import pandas as pd
# Dataset
from sklearn.datasets import load_iris # 導(dǎo)入鳶尾花數(shù)據(jù)集
# 從鳶尾花數(shù)據(jù)集中創(chuàng)建DataFrame對(duì)象
X = pd.DataFrame(data=load_iris().data, columns=load_iris().feature_names, index=load_iris().target)
# 初始化PCA模型,指定主成分?jǐn)?shù)量為3,并進(jìn)行數(shù)據(jù)標(biāo)準(zhǔn)化
model = pca(n_components=3, normalize=True)
# 擬合并轉(zhuǎn)換數(shù)據(jù)
out = model.fit_transform(X)
# 創(chuàng)建只包含方向的圖
fig, ax = model.biplot(textlabel=True, legend=False, figsize=(10, 6))
下面我們使用 sklearn 里面的 PCA 工具,在一組人臉數(shù)據(jù)上直觀感受下,
# 導(dǎo)入必要的庫(kù)
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import fetch_olivetti_faces
from sklearn.decomposition import PCA
# 加載Olivetti人臉數(shù)據(jù)集
faces_data = fetch_olivetti_faces()
X = faces_data.data
# 可視化原始圖像和對(duì)應(yīng)的主成分
n_images = 4 # 每行顯示的圖像數(shù)量
n_rows = 4 # 總共的行數(shù)
fig, axes = plt.subplots(n_rows, 2*n_images, figsize=(16, 10), subplot_kw={'xticks':[], 'yticks':[]})
# 使用PCA降維
n_components = 50 # 設(shè)置PCA保留的主成分?jǐn)?shù)量
pca = PCA(n_components=n_components, whiten=True, random_state=42)
X_pca = pca.fit_transform(X)
for r in range(n_rows):
for i in range(n_images):
index = r * n_images + i
axes[r, 2*i].imshow(X[index].reshape(64, 64), cmap='gray')
axes[r, 2*i].set_title(f'大俠 {index+1} 圖像', fontproperties='SimHei') # 手動(dòng)設(shè)置字體
axes[r, 2*i+1].imshow(pca.inverse_transform(X_pca[index]).reshape(64, 64), cmap='bone')
axes[r, 2*i+1].set_title(f'大俠 {index+1} 主成分', fontproperties='SimHei') # 手動(dòng)設(shè)置字體
plt.tight_layout()
plt.show()
我們保留了前 50 個(gè)主成分
通過(guò)可視化對(duì)比圖直觀感受下,信息保留了多多少,損失了多少
通過(guò)對(duì)比圖可以看到,某一張人臉的基本信息都保留了下來(lái)
如果保留 前 100 個(gè)主成分,那就更接近原始圖片了
你也可以試下,保留 1 個(gè)主成分會(huì)怎樣?通過(guò)保留的信息你還認(rèn)得出來(lái)哪過(guò)大俠是哪過(guò)嗎
煩請(qǐng)大俠多多 分享、在看、點(diǎn)贊,助力算法金又猛又持久、很黃很 BL 的日更下去;我們一起,讓更多人享受智能樂(lè)趣
同時(shí)邀請(qǐng)大俠 關(guān)注、星標(biāo) 算法金,圍觀日更萬(wàn)日,助你功力大增、笑傲江湖
小編推薦閱讀機(jī)器學(xué)習(xí):神經(jīng)網(wǎng)絡(luò)構(gòu)建(下)
閱讀華為Mate品牌盛典:HarmonyOS NEXT加持下游戲性能得到充分釋放
閱讀實(shí)現(xiàn)對(duì)象集合與DataTable的相互轉(zhuǎn)換
閱讀鴻蒙NEXT元服務(wù):論如何免費(fèi)快速上架作品
閱讀算法與數(shù)據(jù)結(jié)構(gòu) 1 - 模擬
閱讀升訊威在線客服與營(yíng)銷(xiāo)系統(tǒng)介紹
閱讀基于鴻蒙NEXT的血型遺傳計(jì)算器開(kāi)發(fā)案例
閱讀5. Spring Cloud OpenFeign 聲明式 WebService 客戶端的超詳細(xì)使用
閱讀Java代理模式:靜態(tài)代理和動(dòng)態(tài)代理的對(duì)比分析
閱讀Win11筆記本“自動(dòng)管理應(yīng)用的顏色”顯示規(guī)則
閱讀本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請(qǐng)發(fā)郵件[email protected]
湘ICP備2022002427號(hào)-10 湘公網(wǎng)安備:43070202000427號(hào)© 2013~2025 haote.com 好特網(wǎng)