机器学习---PCA案例

1. PCA

python 复制代码
import numpy as np
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
from sklearn.datasets import load_digits

def pca(dataMat,topNfeat=9999999):
    meanVals=np.mean(dataMat,axis=0)
    # 去除平均值,实现数据中心化
    meanRemoved=dataMat-meanVals 
    covMat=np.cov(meanRemoved,rowvar=0)
    # 计算矩阵的特征值个特征向量
    eigVals,eigVects=np.linalg.eig(np.mat(covMat))
    eigValInd=np.argsort(eigVals)
    # 从大到小对N个值排序
    eigValInd=eigValInd[:-(topNfeat+1):-1]
    redEigVects=eigVects[:,eigValInd]
    # 将数据转换到新空间
    lowDDataMat=meanRemoved*redEigVects
    reconMat=(lowDDataMat*redEigVects.T)+meanVals
    return lowDDataMat,reconMat

dataMat = np.array([[1,2,3], [4,2,1], [3,2,1]])
X = load_digits().data[:, :]

lowDDataMat,reconMat = pca(X,topNfeat=2)
print(lowDDataMat)
print(reconMat)
plt.scatter(lowDDataMat[:,0].tolist(), lowDDataMat[:,1].tolist(),c = 'r',marker = 'o')

2个参数:一个参数是用于进行PCA操作的数据集,第二个参数是可选参数,即应用N个特征,首

先计算并减去原始数据集的平均值,然后计算协方差矩阵及其特征值,然后利用argsort函数对特征

值进行从小到大排序,根据特征值排序的逆序就可以得到最大的N个向量,这些向量将构成后面对

数据进行转换的矩阵,该矩阵则利用N个特征将原始数据转换到新空间中,最后原始数据被重构后

返回,同时,降维之后的数据集也被返回。

相关推荐
番茄不是西红柿kk1 小时前
AtomGit CodingPlan限时免费、限量 500 人/天
人工智能
深圳市益普科技有限公司1 小时前
SMT 产线 MES 怎么管“钢网、刮刀、feeder”这些易耗辅料:防错与寿命追踪
人工智能
科研小牛马1 小时前
北航何静:DeepSeek Harness,部署操作教程
人工智能
朝阳资本论1 小时前
机器人的智能短板,大晓世界模型补齐
人工智能
YFJ_mily1 小时前
9.24早鸟通道即将关闭|IMRA2026智能制造机器人自动化IEEE会议|往届EI稳定检索,设有学生专属投稿权益
人工智能·机器学习·机器人·自动化·智能制造·rdlink研发家·马鞍山会议
陌シ未央ゞ1 小时前
基于BM25算法和RRF实现的混合索引(java版)
人工智能·spring boot·后端·算法
jsl_jsl_jsl1 小时前
《Skill 与定时任务:让 Agent 在没人说话时也能干活》
人工智能
事界见闻1 小时前
网页版AI 3D工具通常能完成哪些基础工作?生成、处理与导出流程对比
人工智能·3d
renhongxia12 小时前
数字孪生不止在工厂:能源、医疗与农业
人工智能·深度学习·算法·机器学习·数字孪生
济南凡维2 小时前
CODESOFT中如何将标签保存为PDF文件
网络·人工智能·打印机·codesoft