手写pca

import numpy as np

# 10 samples, 15 features
batch = 20
data = np.random.rand(batch, 15)
mean = data.mean(axis=0)
data -= mean
cov = np.cov(data.T)
eigen_value, feature_vector = np.linalg.eig(cov)
eigen_value_part = eigen_value[:5]
feature_vector_part = feature_vector[:5]  # 5 15
# data 20 15
new_data = data @ feature_vector_part.T
print(new_data)
print(new_data.shape)

 

PCA(Principal Component Analysis,主成分分析)是一种常用的预处理技术,在计算机视觉中常用于手写数字识别的降维处理,以减少数据的维度和提取主要特征。以下是一个简单的PCA手写数字识别教程概述: 1. **数据准备**:首先,你需要一个包含手写数字样本的数据集,比如MNIST(Modified National Institute of Standards and Technology)数据集,这是经典的图像识别数据集,包含了60,000个训练样本和10,000个测试样本。 2. **数据加载和预处理**:使用Python的NumPy或Pandas库加载数据,然后对图像进行灰度化、归一化等操作,以便PCA更好地工作。 3. **PCA计算**:对预处理后的图像数据应用PCA算法,这会生成一组新的坐标轴,这些轴按照数据方差的大小排列。通常保留前n个主成分,n远小于原始特征数量,以达到降维目的。 4. **降维与投影**:将每个手写数字图像投影到这些主成分构成的新空间,这样每个样本就变成了n维向量。 5. **模型训练**:使用降维后的数据集训练一个简单的分类器,如支持向量机(SVM)、K近邻(KNN)或者神经网络。由于数据的维度降低,训练可能会更有效率。 6. **评估与测试**:在测试集上运行分类器,计算准确率或其他性能指标,评估模型的性能。 **相关问题**: 1. MNIST数据集的特点是什么? 2. 主成分分析如何帮助减少特征维度? 3. 选择保留多少主成分是基于什么考虑的? 4. 在实际应用中,如何优化PCA之后的模型性能?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值