山東網(wǎng)站域名備案時(shí)間廣州百度首頁(yè)優(yōu)化
1、概要
??本篇學(xué)習(xí)AI人工智能機(jī)器學(xué)習(xí)之降維和數(shù)據(jù)壓縮,以主成分分析(PCA, Principal Component Analysis)為例,從代碼層面講述機(jī)器學(xué)習(xí)中的降維和數(shù)據(jù)壓縮。
2、降維和數(shù)據(jù)壓縮 - 簡(jiǎn)介
在機(jī)器學(xué)習(xí)和數(shù)據(jù)分析中,降維(Decomposition)是一種重要的技術(shù),通常用于減少數(shù)據(jù)的維度、消除噪聲、提高模型的性能以及可視化高維數(shù)據(jù)。
降維是指將高維數(shù)據(jù)轉(zhuǎn)換為低維數(shù)據(jù)的過(guò)程, 常用的方法包括:
- 主成分分析(PCA)
- 線性判別分析(LDA)
- t-分布隨機(jī)鄰域嵌入(t-SNE)
- 核主成分分析(Kernel PCA)
- 獨(dú)立成分分析(ICA)
數(shù)據(jù)壓縮是指通過(guò)減少數(shù)據(jù)的冗余和不必要的信息來(lái)減小數(shù)據(jù)文件的大小。數(shù)據(jù)壓縮可以是無(wú)損的(不損失信息)或有損的(損失一些信息)。在機(jī)器學(xué)習(xí)中,數(shù)據(jù)壓縮通常是通過(guò)降維技術(shù)實(shí)現(xiàn)的
本篇,以兩個(gè)示例講述聚類分析使用方法:
- 示例1:主成分分析(PCA)對(duì)數(shù)據(jù)降維
- 示例2:主成分分析(PCA)對(duì)數(shù)據(jù)進(jìn)行壓縮
本篇相關(guān)資料代碼參見(jiàn):AI人工智能機(jī)器學(xué)習(xí)相關(guān)知識(shí)資源及使用的示例代碼
3、降維和數(shù)據(jù)壓縮
3.1、安裝依賴
python安裝機(jī)器學(xué)習(xí)庫(kù): pip install scikit-learn
3.2、示例1: 主成分分析(PCA)對(duì)數(shù)據(jù)降維
from sklearn.decomposition import TruncatedSVD, PCA
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt# 加載示例數(shù)據(jù)
iris = load_iris()
X = iris.data
y = iris.target# 創(chuàng)建 PCA 模型
pca = PCA(n_components=2) # n_components:要保留的主成分?jǐn)?shù)量。這里選擇前兩個(gè)主成分
X_reduced = pca.fit_transform(X)# 可視化結(jié)果
plt.figure(figsize=(8, 6))
plt.scatter(X_reduced[:, 0], X_reduced[:, 1], c=iris.target, cmap='viridis', edgecolor='k', s=100)
plt.title("PCA of IRIS Dataset")
plt.xlabel("Principal Component 1")
plt.ylabel("Principal Component 2")
plt.grid()
plt.show()
運(yùn)行上述代碼的輸出:
PCA是一種線性降維技術(shù),通過(guò)線性組合的數(shù)據(jù)主成分來(lái)解釋數(shù)據(jù)的方差。主要用于簡(jiǎn)單學(xué)習(xí)與可視化中數(shù)據(jù)壓縮、簡(jiǎn)化,但是PCA有一定的局限性,它需要你擁有特定領(lǐng)域的相關(guān)知識(shí)。對(duì)噪音比較多的數(shù)據(jù)并不適用
3.3、示例2:主成分分析(PCA)對(duì)數(shù)據(jù)進(jìn)行壓縮
from sklearn.decomposition import TruncatedSVD, PCA
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt# 加載示例數(shù)據(jù)
iris = load_iris()
X = iris.data
y = iris.target# 使用 PCA 進(jìn)行數(shù)據(jù)壓縮
pca = PCA(n_components=2) # 設(shè)置主成分?jǐn)?shù)量
X_reduced = pca.fit_transform(X)# 將壓縮后的數(shù)據(jù)恢復(fù)到原始空間(近似)
X_approx = pca.inverse_transform(X_reduced)# 可視化原始數(shù)據(jù)與壓縮數(shù)據(jù)
plt.figure(figsize=(12, 6))plt.subplot(1, 2, 1)
plt.scatter(X[:, 0], X[:, 1], c=iris.target, cmap='viridis', edgecolor='k', s=100)
plt.title("Original Data")
plt.xlabel("Feature 1")
plt.ylabel("Feature 2")
plt.grid()plt.subplot(1, 2, 2)
plt.scatter(X_approx[:, 0], X_approx[:, 1], c=iris.target, cmap='viridis', edgecolor='k', s=100)
plt.title("Compressed Data (PCA Approximation)")
plt.xlabel("Feature 1")
plt.ylabel("Feature 2")
plt.grid()plt.show()
運(yùn)行上述代碼的輸出:
4、 總結(jié)
本篇以主成分分析(PCA, Principal Component Analysis)為例,從代碼層面講述機(jī)器學(xué)習(xí)中的降維和數(shù)據(jù)壓縮。降維旨在提取數(shù)據(jù)中的重要特征,關(guān)注保留盡可能多的原始信息,以便更好地理解和處理數(shù)據(jù),通常使用方法如 PCA、LDA、t-SNE 等;數(shù)據(jù)壓縮旨在減小數(shù)據(jù)的存儲(chǔ)空間和傳輸成本,在某種程度上犧牲信息(如有損壓縮),以獲得更高的壓縮比,可以使用降維方法,但也可以使用其他技術(shù),如編碼、量化等。降維可以幫助我們理解數(shù)據(jù)的結(jié)構(gòu),而數(shù)據(jù)壓縮可以減小數(shù)據(jù)規(guī)模,提高計(jì)算效率,可以利用這些技術(shù)都能夠在實(shí)際應(yīng)用中提升模型的性能和效果。