import numpy as np

import matplotlib.pyplot as plt

from sklearn.decomposition import PCA

from skimage import io, color

# 加载图像

img = io.imread(r"D:\YWJ\6_jiaoben_set\10_20_18.jpg")

# 将图像转换为灰度图像

img_gray = color.rgb2gray(img)

# 将图像展平为一维数组

img_flat = img_gray.flatten()

# 对图像进行PCA降维

pca = PCA(n_components=0.95, whiten=True, random_state=40)

img_pca = pca.fit_transform(img_flat.reshape(-1, 1))

# 对降维后的图像进行反变换,得到原始图像矩阵

img_rec = pca.inverse_transform(img_pca)

img_rec = img_rec.reshape(img_gray.shape)

# 绘制原始图像和降维后的图像

fig, ax = plt.subplots(1, 2, figsize=(10, 5))

ax[0].imshow(img_gray, cmap="gray")

ax[0].set_title("Original Image")

ax[1].imshow(img_rec, cmap="gray")

ax[1].set_title("PCA Reconstruction")

plt.savefig("33333.png")

plt.show()

主成分分析(PCA)是一种常见的数据分析技术,它可以用于降维和特征提取。PCA 的作用包括以下几个方面:

数据降维:PCA 可以将高维数据降维到低维空间中,从而方便后续的数据分析和可视化。例如,可以将具有多个变量的数据集降维到仅有几个主成分,而这些主成分包含了原始数据的大部分信息。 数据可视化:由于 PCA 能够将高维数据降维到低维空间,因此可以将数据可视化为二维或三维图形。这有助于我们更好地理解数据之间的关系和分布。 特征提取:PCA 可以识别出数据中最重要的特征,即主成分。这些主成分可以用于数据分类、聚类等任务中,或者作为后续分析的输入特征。 去除数据噪声:通过PCA去除数据中的噪声,可以提高模型的预测准确度和稳定性。PCA 可以识别出数据中最相关的信息并过滤掉不相关的信息,从而提高数据的质量和准确性。

综上所述,PCA 在数据分析、数据挖掘、机器学习等领域中具有重要的应用价值

文章来源

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: