机器学习---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个特征将原始数据转换到新空间中,最后原始数据被重构后

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

相关推荐
敖行客 Allthinker5 分钟前
让 AMD GPU 在大语言模型推理中崭露头角:机遇与挑战
人工智能·语言模型·自然语言处理
赛逸展张胜16 分钟前
CES Asia是一个关于什么的展会?
大数据·人工智能·科技
Coovally AI模型快速验证1 小时前
YOLO11全解析:从原理到实战,全流程体验下一代目标检测
人工智能·yolo·目标检测·机器学习·计算机视觉·目标跟踪·yolo11
湫ccc1 小时前
《Opencv》基础操作详解(2)
人工智能·opencv·计算机视觉
羑悻的小杀马特1 小时前
【AIGC篇】畅谈游戏开发设计中AIGC所发挥的不可或缺的作用
c++·人工智能·aigc·游戏开发
火山方舟1 小时前
解密!企业级智能客服高效运营的秘密武器 | 大模型流程设计与Prompt模版
前端·人工智能·稀土
CES_Asia1 小时前
国资助力科技创新,闪耀CES Asia 2025
人工智能·科技·智能手机·智能音箱·智能电视
eric-sjq2 小时前
基于xiaothink对Wanyv-50M模型进行c-eval评估
人工智能·python·语言模型·自然语言处理·github
是十一月末2 小时前
机器学习之KNN算法预测数据和数据可视化
人工智能·python·算法·机器学习·信息可视化
工业互联网专业2 小时前
基于OpenCV和Python的人脸识别系统_django
人工智能·python·opencv·django·毕业设计·源码·课程设计