PCA数据降维

本文介绍了主成分分析(PCA)在人脸识别中的应用原理及其重要方法——特征脸方法。通过提取图像数据集中最重要的人脸结构信息,PCA能有效地进行降维处理,并在新图像的比较中衡量其与原有数据集的相似度。

http://blog.youkuaiyun.com/pipisorry/article/details/49235529

这个没时间写,下次有空写吧╮(╯_╰)╭

Anand.Rajaraman-Mining of Massive Datasets-mmds2014 11.2 Principal-Component Analysis



假设数据源是一系列的20幅图像,每幅图像都是 大小,那么它们都可以表示为一个 维的向量。将它们排成一个矩阵:       然后对它们进行PCA处理,找出主元。为什么这样做呢?据人脸识别的例子来说,数据源是20幅不同的人脸图像,PCA方法的实质是寻找这些图像中的相似的维度,因为人脸的结构有极大的相似性(特别是同一个人的人脸图像),则使用PCA方法就可以很容易的提取出人脸的内在结构,也及时所谓“模式”,如果有新的图像需要与原有图像比较,就可以在变换后的主元维度上进行比较,则可衡量新图与原有数据集的相似度如何。对这样的一组人脸图像进行处理,提取其中最重要的主元,即可大致描述人脸的结构信息,称作“特征脸”(EigenFace)。这就是人脸识别中的重要方法“特征脸方法”的理论根据。近些年来,基于对一般PCA方法的改进,结合ICA、kernel-PCA等方法,在主元分析中加入关于人脸图像的先验知识,则能得到更好的效果。



随机过程去相关操作
只有具有对称性的矩阵才可以进行特征分解吗?


from: http://blog.youkuaiyun.com/pipisorry/article/details/49235529

ref:数据分析领域中最为人称道的七种降维方法

Machine Learning - XIV. Dimensionality Reduction降维 (Week 8)


### PCA 数据的实际案例与实战代码 #### 实战案例:手写数字图片与分类 在手写数字识别任务中,PCA 可以用于低图像数据度,从而减少计算复杂度并提高模型训练效率。例如,在 MNIST 数据集上应用 PCA 后,可以显著减少特征数量,同时保留大部分信息[^3]。 #### 实战代码示例 以下是一个完整的 PCA 数据与分类的代码示例,使用 `sklearn` 库中的 `PCA` 和 `LogisticRegression` 模型对 Iris 数据集进行和分类: ```python # 导入必要的库 from sklearn.decomposition import PCA from sklearn.preprocessing import StandardScaler from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score import numpy as np # 加载 Iris 数据集 data = load_iris() X, y = data.data, data.target # 数据标准化处理 scaler = StandardScaler() X_scaled = scaler.fit_transform(X) # 初始化 PCA 模型,设置保留的主成分数目为 2 pca = PCA(n_components=2) X_pca = pca.fit_transform(X_scaled) # 输出后的数据 print("后的数据形状:", X_pca.shape) # 将后的数据划分为训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X_pca, y, test_size=0.3, random_state=42) # 使用逻辑回归模型进行分类 model = LogisticRegression(max_iter=200) model.fit(X_train, y_train) # 预测并评估模型性能 y_pred = model.predict(X_test) accuracy = accuracy_score(y_test, y_pred) print(f"模型在测试集上的准确率:{accuracy:.2f}") ``` #### 代码说明 - **数据标准化**:PCA 对特征的量纲敏感,因此需要对数据进行标准化处理[^2]。 - **PCA **:通过 `PCA` 类的 `n_components` 参数指定后的度数目。在此示例中,将数据从 4 到 2 。 - **模型训练与评估**:在后的数据上训练逻辑回归模型,并通过测试集评估其性能。 #### 实战案例:葡萄酒数据与可视化 在葡萄酒数据集中,PCA 可以用于并将高数据投影到二平面上进行可视化。这有助于理解不同类别之间的分布关系[^4]。 ```python # 导入必要的库 import matplotlib.pyplot as plt from sklearn.datasets import load_wine from sklearn.decomposition import PCA from sklearn.preprocessing import StandardScaler # 加载 Wine 数据集 data = load_wine() X, y = data.data, data.target # 数据标准化处理 scaler = StandardScaler() X_scaled = scaler.fit_transform(X) # 初始化 PCA 模型,设置保留的主成分数目为 2 pca = PCA(n_components=2) X_pca = pca.fit_transform(X_scaled) # 可视化后的数据 plt.figure(figsize=(8, 6)) for label in np.unique(y): plt.scatter(X_pca[y == label, 0], X_pca[y == label, 1], label=f'Class {label}') plt.xlabel('Principal Component 1') plt.ylabel('Principal Component 2') plt.title('PCA Visualization of Wine Dataset') plt.legend() plt.show() ``` #### 代码说明 - **数据标准化**:对葡萄酒数据集进行标准化处理。 - **PCA **:将数据从 13 到 2 。 - **可视化**:使用散点图展示后的数据分布,不同类别用不同颜色标记。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值