PCA主成分分析-Python特征值分解

该博客介绍了PCA主成分分析的目的,即寻找向量W来得到线性可分的边界。文章详细阐述了两种求解W的方法:特征值分解和奇异值分解,并通过代码示例展示了如何进行PCA处理。在实际计算中,由于二进制精度问题导致的小数误差,作者使用round函数进行了四舍五入。此外,还讨论了列表和矩阵在numpy中的相互转换,如np.mat(list)和mat.tolist()。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PCA主成分分析

目的:找出向量W,得到线性可分的边界ZZ=W.T*X
步骤:在这里插入图片描述
在这里插入图片描述
w有两种求法
一个是特征值分解

一个是奇异值分解
在这里插入图片描述
代码部分最开始简单的计算结果有有这种小数,就查了一下,原因是二进制的问题
https://blog.youkuaiyun.com/weixin_44352981/article/details/111347026.最后还是靠round四舍五入了,只能保留的位数多写几位。
在这里插入图片描述
问题2:列表和矩阵的相互转换。np.mat(list)和mat.tolist()函数。

import numpy as np
from numpy.linalg import eig
x=[[4,8],[3.6,7.6],[4.4,8.4],
   [3.2,7.2],[4.8,8.8],[2.8,6.8]]
x1=0
x2=0
for i in range(len(x)):
    x1 +=x [i][0]
    x2 +=x [i][1]
    ex1=round(x1/len(x),5)
    ex2=round(x2/len(x),5)
x_=[]
for i in range(len(x)):
    a=[round(x[i][0]-ex1,5),round(x[i][1]-ex2,5)]
    x_.append(a)
x_=np.mat(x_)
xtx=np.dot(x_.T,x_)
#对xtx进行特征值分解,得到特征向量
vals,vecs = eig(xtx)
wt=vecs.T

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值